【免费下载链接】oransim
Causal Digital Twin for Marketing at Scale · Predict any marketing decision before you spend a dollar.
做营销投放前,你敢直接相信一个"点预测"吗?Oransim(Causal Digital Twin for Marketing at Scale,营销因果数字孪生)给出的答案是:不给单值,给区间。它的LightGBM 分位数世界模型(LightGBM Quantile World Model)用一个约3MB的模型文件,在纯 CPU 上以亚毫秒速度输出每个 KPI 的P35/P50/P65 置信区间——零 GPU、零大模型依赖,却支撑着整个"花一分钱之前先推演"的预测链路。
为什么营销预测需要置信区间,而不是一个数字?
传统工具(MMM、AutoML、LLM 黑盒)只能给一个总量数字,回答不了"这组组合 ROI 到底稳不稳"。Oransim 的做法是:
- P50:中位数预期,用于排序比较;
- P35 / P65:保守与乐观边界,构成置信区间;
- 区间覆盖:官方试点退出条件就是——上线前 P35/P65 区间覆盖真实 KPI≥ 80%,不达标直接不收费。
实现上不是"先回归均值再套个方差",而是直接对每个分位数各训一个回归器(分位数回归 / Quantile Regression,Koenker 2005)。损失函数是pinball loss:分位数 q 下,"低估"和"高估"被不对称地惩罚,天然逼出区间端点,而不是只拟合中心。
3MB 的 pkl 里到底装了什么?
打开仓库自带的世界模型权重文件,核心内容一目了然:
| 项目 | 内容 |
|---|---|
| 模型文件 | world_model_demo.pkl(约 3.3 MB,feature_version: demo_v2) |
| 回归器数量 | 4 个 KPI × 3 个分位数 =12 个独立 LightGBM booster |
| KPI 覆盖 | impressions(曝光)、clicks(点击)、conversions(转化)、revenue(收入) |
| 分位数 | P35 / P50 / P65 |
| 特征维度 | 23 维(7 个标量 + 16 维文本嵌入 PCA) |
| 训练数据 | scenarios_v0_1.jsonl 的 2,000 条合成投放场景,seed=42,10% 验证集 |
源码入口在 lightgbm_quantile.py,其中LightGBMQuantileWorldModel维护一张kpi → quantile → Booster的嵌套表:预测时就是查字典 + 12 次独立的树评估,这就是"亚毫秒、零 GPU"的全部秘密——梯度提升树推理只做一次前向的路由查找,没有矩阵乘法,CPU 单核就绰绰有余。
23 维特征向量:7 个表格特征 + 16 维"文案"向量
这是该模型最有意思的设计:没有原始文案,模型照样能"读"创意。
7 个标量特征(train_lightgbm_demo.py 中的_vectorize):
| 特征 | 含义 |
|---|---|
platform_id | 投放平台 |
niche_idx | 赛道索引(10 个 demo 赛道) |
budget/budget_bucket | 预算金额 / 预算档位(小预算→超大预算) |
kol_tier_idx | KOL 层级(nano/micro/mid/macro/mega) |
kol_fan_count | KOL 粉丝数 |
kol_engagement_rate | 互动率 |
16 维文本嵌入:每个场景会被拼成一句确定性的中文 caption,形如"春季 美妆 新品种草 · 腰部 KOL · 中档预算"(模板逻辑见 scripts_helpers.py),再送入RealTextEmbedder生成向量:
- 配置了
OPENAI_API_KEY→ 走text-embedding-3-small; - 没配 key → 自动退化为确定性 SHA-256 哈希嵌入,离线训练/推理结果逐字节可复现。
随后 PCA 降到 16 维,且PCA 的组件矩阵和均值直接打进 pkl 内部,推理时自动加载应用——部署时不需要再跑一遍训练侧的降维流程。整条嵌入链路与 soul agent 人设匹配、kol_content_match共用同一个 UEB 嵌入总线,避免"两套特征各说各话"。
训练管线:2,000 条合成场景如何变成 12 棵树模型
训练脚本 train_lightgbm_demo.py 的关键步骤:
- 加载 2,000 条合成场景(由 gen_synthetic_data.py 以 seed 42 生成,校准到公开行业均值,非真实流量);
- 拼接 7 标量 + 16 维嵌入 PCA → 23 维特征矩阵;
- 对每个 KPI、每个分位数各调一次
lgb.train:objective=quantile、alpha=q(0.35/0.50/0.65)、300 轮、学习率 0.05、feature_fraction/bagging_fraction=0.9,配合 30 轮 early stopping; - 验证集上同时记录pinball loss与R²,并把 booster 以字符串形式序列化进 pkl(
model_to_string(),可移植、免 pickle 对象漂移)。
model_card.md 给出的合成验证集成绩(R² @ P50):
| KPI | R² (P50) | OrancBench v0.1(Easy / Medium / Hard)impressions R² |
|---|---|---|
| impressions | 0.886 | 0.976 / 0.599 / 0.413 |
| clicks | 0.778 | 0.909 / 0.426 / 0.409 |
| conversions | 0.727 | — |
| revenue | 0.687 | — |
需要诚实说明:这是闭环比对(同一条合成数据生成器产出训练与测试集),衡量的是"模型是否拟合了生成假设",而非真实流量精度。
推理四步走:从 HTTP 请求到 12 个数
以最快的 HTTP 路径POST /api/v2/world_model/predict?model=lightgbm_quantile(实现见 v2.py)为例,一次预测只做四件事:
- 查注册表——registry.py 中
get_world_model("lightgbm_quantile")按名懒加载,未装 PyTorch 也能跑; - 组特征——7 个标量直接取自请求(platform、niche、budget、KOL 层级/粉丝/互动率);
- 嵌入+PCA——caption 嵌入后乘上 pkl 内置的 PCA 组件(还带维度一致性检查,维度不匹配会返回可操作的 HTTP 400 而不是晦涩的广播错误);
- 12 次树预测——每个 KPI 的 P35/P50/P65 各取一次
booster.predict(),打包成kpi_quantiles返回。
也支持 Python API 一步调用:
from oransim.world_model import get_world_model wm = get_world_model("lightgbm_quantile") # 无需 PyTorch pred = wm.predict(features) # 输出各 KPI 的 P35/P50/P65和 Causal Transformer 是什么关系:分工,不是竞争
很多人会问:既然有 4.3M 参数的 Causal Transformer 世界模型,为什么默认还是 LightGBM?model_card.md 的解释很直白:当前合成数据生成过程(Hill 饱和 + 频率疲劳 + 高斯噪声)完全落在 LightGBM 的假设类内,Transformer 在此只会"参数更多、效果持平"。
lightgbm_quantile:开箱即用的 shipped 基线,CPU-only,/api/predict默认栈;causal_transformer:研究级主力,带 DAG 注意力 + per-arm 反事实头,预训练权重与 OrancBench v0.5 一起发布;未发布期间,LightGBM 就是 torch 缺席时的优雅降级路径。
两者共用同一套 SCM / agent / Hawkes 管道,通过/api/v2/*注册表即可 A/B 切换。
预测出的 P35/P50/P65 并不是终点:漏斗转化率会流入 IPF 校准的百万虚拟消费者 agent 层(如上图的 persona 星图),再经 64 节点因果图与 Hawkes 扩散外推,最终产出 14–19 个 schema 的结构化报告。LightGBM 分位数世界模型正是这条"因果数字孪生"链路的第一个可信数据源。
自己动手:3 条命令复现 3MB 模型
pip install lightgbm scikit-learn python -m backend.scripts.gen_synthetic_data --out data/synthetic python -m backend.scripts.train_lightgbm_demo --data data/synthetic/scenarios_v0_1.jsonl --out data/models/world_model_demo.pkl训练结束会打印每个 KPI 的 pinball loss 与 R²,产出的 pkl 与仓库内置版本同构(seed=42 下确定性复现)。想换数据源,参考 writing-a-provider.md 接上自己的 DataProvider 即可。
小结
- 3MB 装下 12 个分位数回归器:4 KPI × P35/P50/P65,一次请求输出完整置信区间;
- 零 GPU 的底气:树模型推理 = 查字典 + 树路由,亚毫秒级,无 PyTorch 依赖;
- 文本创意的巧解:确定性中文 caption → 统一嵌入总线 → PCA 16 维,离线可复现、上线可无缝切真嵌入;
- 可审计可复现:seed 42 全流程字节级复现,权重、PCA 组件、训练指标全部随 pkl 自描述,配合 data_card.md 可完整回溯生成过程。
一个 3MB 的文件,换来的不是"更准的猜测",而是"敢被审计的区间"——这正是 Oransim 把因果数字孪生做成开源基线的意义。
【免费下载链接】oransim
Causal Digital Twin for Marketing at Scale · Predict any marketing decision before you spend a dollar.
相关推荐
Kats 二次回归模型(QuadraticModel)实战指南:原理、参数、预测与置信区间
Kats 二次回归模型(QuadraticModel)实战指南:原理、参数、预测与置信区间 导读 本文聚焦 Kats 时序分析框架中的二次回归模型( kats.
数据分析机器学习数据科学LightGBM分位数回归:预测区间估计技术
LightGBM分位数回归:预测区间估计技术 引言 在传统回归分析中,我们通常关注的是条件均值预测,即给定特征X时目标变量Y的平均值。然而,在许多实际应用场景中
机器学习悟界·Emu3.5:原生多模态世界模型如何重塑AI与物理世界交互?
悟界·Emu3.5:原生多模态世界模型如何重塑AI与物理世界交互? 导语:从"看图说话"到"世界建模",智源发布新一代多模态AI里程碑 2025年10月30日,
大模型多模态深度学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考