paper2skills Playbook

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%
业务痛点
备货总是压货或断货旺季淡季波动太大预测不准补货周期 30 天但预测只看 7 天

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