时间序列 Foundation 模型:Chronos 课堂作业
作业定位
这份作业直接接在下面两组材料之后完成:
23/2-prog:Chronos zero-shot demo
23/4-prog:Chronos 最小 fine-tune demo
目标不是让大家训练一个新模型,而是让大家亲手观察:
- 时间序列 foundation model 怎样进入真实行业场景
- zero-shot forecasting 在你自己的专业数据上到底表现如何
- 微调之后它会改善什么,又不会自动解决什么
作业目标
请基于现有的 Chronos 示例,完成一份 “本专业时间序列 zero-shot + fine-tune 对比实验”。
你需要:
- 先跑通 ETTh1 的最小 demo
- 再换成一条和自己专业 / 课题相关的时间序列
- 先做 zero-shot 对比
- 再完成一次最小 fine-tune 对比
- 分析模型真正学到了什么、又没有学到什么
数据要求
请至少准备 2 组时间序列:
第 1 组:课程提供的基线数据
这一步的作用是:
第 2 组:你自己的专业相关时间序列
这一组是本次作业的重点。
请尽量选和你自己的专业、课题或实验最接近的序列。
例如:
- 通信方向:流量序列、信道质量指标、误码率、吞吐量、时延
- 电力方向:负荷、电压、电流、设备温度、功率
- 电子信息方向:传感器输出、实验平台采样值、频谱强度、测量曲线
- 计算机方向:CPU、内存、网络请求量、日志计数
- 其他方向:任何按时间排序、可以做预测的数值序列
要求并不高:
- 一条单变量序列就够
- 数据长度最好大于
600
- 能清楚区分“历史窗口”和“未来窗口”
推荐完成路径
这份作业建议分成两个部分完成。
Part A:zero-shot 对比
第 0 步:先跑通示例
先运行:
cd 23/2-prog
./0-chronos-etth-demo.sh
确认你已经看懂:
- 输入是什么
- 输出图怎么看
history / future / median forecast / interval 分别是什么
第 1 步:复制一份自己的实验脚本
建议不要直接改原始示例。
你可以复制成一个新文件,例如:
然后把自己的数据接进去。
第 2 步:先在自己的数据上做最小预测
至少要明确下面几个量:
- 目标列是什么
- 历史窗口多长
- 预测未来多长
- 结果图是否能正常画出来
第 3 步:做一个最小 zero-shot 对比
至少比较下面两组结果:
ETTh1 + Chronos
你的专业序列 + Chronos
如果时间允许,可以再加一个简单 baseline,例如:
第 4 步:保留失败案例
请至少保留 2 个你认为不理想的结果。
例如:
- 趋势方向对了,但幅度明显不对
- 预测区间太宽
- 遇到突变点就崩
- 周期性没抓住
Part B:最小 fine-tune 对比
第 5 步:先跑通课程提供的 fine-tune demo
先运行:
cd 23/4-prog
./0-finetune-chronos-etth.sh
这一步的作用是:
- 看懂 Chronos tiny 的最小微调闭环
- 看懂“微调前 vs 微调后”的对比图
第 6 步:解释这套微调在做什么
请至少说清楚下面几件事:
- 输入为什么变成了滑动窗口
- 为什么要把数值序列 token 化
- 为什么这里本质上是在做 seq2seq teacher-forcing 训练
- 为什么微调后还要重新做预测比较
第 7 步:完成一个 fine-tune 结果分析
这里不要求你一定自己把专业数据也做成可训练脚本。
最低要求是:
- 跑通 ETTh1 上的 fine-tune demo
- 比较微调前后 MAE 和预测图
- 分析它改善了什么
如果你有能力,也可以进一步把自己的专业序列也接入这个 fine-tune 流程。
第 8 步:把 zero-shot 和 fine-tune 放在一起比较
请明确回答:
- zero-shot 的价值是什么?
- fine-tune 带来了什么额外收益?
- fine-tune 之后,哪些边界仍然还在?
建议提交内容
请提交一个压缩包,包含:
- 你的脚本或 notebook
- zero-shot 结果图
- fine-tune 结果图
- 一页到两页短报告
短报告建议结构
1. 数据说明
- 你选了什么专业数据
- 这条序列在你的场景里代表什么
- 为什么它值得预测
2. 实验设置
- 你选了多长的历史窗口
- 预测了多长的未来
- zero-shot 阶段是否加了简单 baseline
- fine-tune 阶段用了哪套默认设置
3. 结果分析
请明确回答:
- 在 ETTh1 上,zero-shot 表现得怎样
- 在你的专业数据上,zero-shot 表现得怎样
- fine-tune 后,ETTh1 上的表现有没有改善
- zero-shot 和 fine-tune 的差异最明显在哪里
4. failure case
请至少给出 2 个失败案例,并说明:
- 你觉得问题更像来自数据分布差异
- 还是来自模型本身的能力边界
- 微调之后,这些问题是否真的消失了
评分重点
这份作业不按“误差最低”评分,更看重下面几件事:
- 是否真的把模型迁移到自己的专业序列上
- 是否完成了和 ETTh1 的对比
- 是否能读懂 zero-shot 和 fine-tune 两类结果图
- 是否看到了 zero-shot forecasting 的真实边界
- 是否理解了 fine-tune 改善了什么、又没改善什么
你真正要带走什么
如果做完后只记住一句话,那应该是:
时间序列 foundation model 的价值,不只是“能预测”,而是先给出一个可迁移 baseline,再看有没有必要继续微调。
所以这份作业真正训练的是:
- 迁移判断
- 结果解读
- 微调前后比较
- 行业问题里的工程直觉