TimeCMA - LLM-Empowered Multivariate Time Series Forecasting via Cross-Modality Alignment
Skill-TimeCMA-LLM-Forecasting · 03-时间序列
causalexperimentforecastingmulti_agent供应链与补货推荐与搜索MAS与智能体工程WF-A 智能补货WF-H 复购增长
年化 ROI5,000 万
实现难度⭐⭐⭐☆☆
业务视角
适用角色供应链负责人 / 采购负责人 · 运营负责人 · 财务负责人
适用平台Amazon FBA · 海外仓 · 多市场多仓
什么情况下用大促前备货总是不是多了就是少了;新品上线第一个月断货,再补又积压;年底预算不知道各月目标怎么定
成功是什么样的提前 4-8 周准确预判各 SKU 需求峰值,库存积压减少 30%,断货率降低 50%
业务痛点
1. 解决的问题
如何让 LLM 的世界知识真正改善时间序列预测,而不仅仅是把数值序列塞进 Prompt 让 LLM 凑答案。
2. 核心算法逻辑
TimeCMA 解决的核心问题是:如何让 LLM 的世界知识真正改善时间序列预测,而不仅仅是把数值序列塞进 Prompt 让 LLM 凑答案。传统纯数值模型(Prophet、TFT)只认识历史数字,一旦遭遇"超级碗促销"、"政策限令"等文本事件就彻底失效;直接把序列转文本输入给 LLM 则会导致语义噪声污染数值周期信号。TimeCMA 通过双分支编码 + 跨模态对齐精确解决了这对矛盾。
3. 业务应用场景
业务问题: 跨境出海零食/母婴类目在"超级碗"、"感恩节"、"母亲节"前后会出现脉冲式销量暴增,但纯数值模型把这类暴涨视为"异常值"过滤掉,导致严重缺货。需要提前 7 天预测超预期涨幅并触发补货。
数据要求: - 历史数值:过去 90 天的日销量、页面浏览量、购物车添加数(3 个变量)。 - 事件 Prompt:人工或 NLP 从节日日历 / 新闻中抽取,如:`"超级碗本周日举行,薯片、饮料类目预计销量增加 30%"`。 - 格式:`(seq_len=90, n_vars=3)` 数值数组 + 字符串 Prompt。
预期产出: - 未来 7 天各变量预测值(归一化空间,可反归一化为实际销量)。 - 有/无事件 Prompt 的对比预测,量化"LLM 语义增益"。
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
5,000 万
7. 代码模板
代码块数量:1 · 路径:未检测到
from paper2skills-code.03-时间序列.time_cma_llm_2025.model import (
TimeCMA,
generate_ecommerce_data,
train_timecma,
evaluate_timecma,
predict_with_event,
encode_prompt,
)
# ── 1. 初始化模型 ──────────────────────────────────────────────
model = TimeCMA(
seq_len=96, # 历史序列长度(天)
pred_len=7, # 预测步数(天)
n_vars=3, # 变量数:[销量, PV, 加购数]
patch_len=16, # Patch 长度
d_model=128, # 数值分支维度
d_llm=256, # LLM 分支输出维度
d_align=128, # 对齐空间维度
prompt_dim=64, # Prompt 向量维度
alpha=0.1, # 对比损失权重
)
# ── 2. 生成模拟数据(含业务事件 Prompt)──────────────────────
data = generate_ecommerce_data(
n_samples=200, seq_len=96, pred_len=7, n_vars=3, prompt_dim=64
)
# ── 3. 训练 ───────────────────────────────────────────────────
losses = train_timecma(model, data, n_epochs=20, batch_size=32, lr=1e-3)
# ── 4. 评估 ───────────────────────────────────────────────────
metrics = evaluate_timecma(model, data)
print(f"MAE={metrics['MAE']}, MSE={metrics['MSE']}, MAPE={metrics['MAPE_pct']}%")
# ── 5. 带业务事件的单次预测(生产接口)───────────────────────
import numpy as np
history = np.random.randn(96, 3).astype("float32") # 替换为真实归一化数据
pred = predict_with_event(
model,
history_data=history,
event_description="超级碗本周日举行,零食类目销量预计上涨 30%",
prompt_dim=64,
)
print(f"未来 7 天预测 (归一化空间): {pred}")
8. 论文来源
- 2406.01638