Lag-Llama: 面向概率时间序列预测的基础模型
Lag-Llama是首个开源的时间序列预测基础模型!
[推特主题]
[模型权重] [Colab演示1: 零样本预测] [Colab演示2: (初步微调)]
[论文]
[视频]
更新:
- 2024年6月27日: 修复了kv_cache实现中的关键问题,提高了预测准确性。修复包括:全局重置self.y_cache标志,在kv_cache初始化过程中正确使用因果注意力,以及调整连接后的旋转嵌入。由@KelianM贡献。
- 2024年4月16日: 发布了预训练和微调脚本,以复现论文中的实验。详见复现论文中的实验。
- 2024年4月9日: 我们在YouTube上发布了一个关于Lag-Llama的15分钟视频🎥。
- 2024年4月5日: 在Colab演示1中添加了一个章节,讨论调整上下文长度对零样本预测的重要性。在README中添加了最佳实践章节;增加了微调建议。这些建议将很快在Colab演示2中通过示例演示。
- 2024年4月4日: 我们更新了requirements文件,包含某些包的新版本。如果您之前在本地使用过该代码,请更新/重新创建您的环境。
- 2024年3月7日: 我们发布了一个初步的Colab演示2用于微调。请注意这是一个初步教程。如果您正在微调模型或将其用于基准测试,我们建议您查看最佳实践。
- 2024年2月17日: 我们发布了一个新的更新版Colab演示1,用于零样本预测,展示了如何加载不同格式的时间序列。
- 2024年2月7日: 我们发布了Lag-Llama,包括开源模型检查点和用于零样本预测的Colab演示。
当前特性:
💫 使用Colab演示1对任何频率的数据集进行任何预测长度的零样本预测。
💫 使用Colab演示2在数据集上进行微调。
💫 使用发布的脚本复现论文中的实验。详见复现论文中的实验。
注意: 在进行零样本预测和微调时,请参阅最佳实践章节。
复现论文中的实验
要复现论文中使用的预训练设置,请参见预训练脚本。一旦模型预训练完成,可以在微调脚本中找到使用论文中的设置进行微调的说明。
最佳实践
以下是使用Lag-Llama的一些通用技巧。
一般信息
- Lag-Llama是一个概率性预测模型,经过训练可以为每个预测时间步输出概率分布。对于您的具体用例,我们建议先对您的数据进行零样本性能基准测试,如有必要再进行微调。正如我们在论文中所示,Lag-Llama具有强大的零样本能力,但经过微调后表现最佳。微调的数据越多,效果越好。有关零样本应用或微调的具体建议,请参阅下面的章节。
零样本预测
- 重要的是,我们建议尝试不同的上下文长度(从训练时使用的$32$开始),并确定哪种最适合您的数据。正如我们在零样本预测演示的这一部分所示,随着上下文长度的增加,模型的零样本性能会提高,直到达到可能特定于您数据的某个上下文长度。此外,我们建议启用RoPE缩放,以使模型能够更好地处理大于训练长度的上下文。
微调
如果您想基准测试模型在微调下的性能,或尝试从模型中获得最佳性能:
- 我们建议针对每个微调数据集调整两个重要的超参数:上下文长度(建议值:$32$、$64$、$128$、$256$、$512$、$1024$)和学习率(建议值:$10^{-2}$、$5 * 10^{-3}$、$10^{-3}$、$5 * 10^{-3}$、$1 * 10^{-4}$、$5 * 10^{-4}$)。
- 我们还强烈建议使用数据集的验证集来进行早停,早停耐心值设为50个epoch。
联系方式
我们致力于确保我们结果的可复现性,并乐意帮助解答有关对我们模型进行基准测试或论文中实验的问题。 最快的联系方式是通过电子邮件。请同时发送邮件给:
- Arjun Ashok - arjun [点] ashok [at] servicenow [点] com
- Kashif Rasul - kashif [点] rasul [at] gmail [点] com
如果您对模型使用(或)代码(或)有特定错误(例如,与您自己的数据集一起使用时),最好在GitHub仓库中创建一个问题。
引用本工作
请使用以下Bibtex条目来引用Lag-Llama。
@misc{rasul2024lagllama,
title={Lag-Llama: Towards Foundation Models for Probabilistic Time Series Forecasting},
author={Kashif Rasul and Arjun Ashok and Andrew Robert Williams and Hena Ghonia and Rishika Bhagwatkar and Arian Khorasani and Mohammad Javad Darvishi Bayazi and George Adamopoulos and Roland Riachi and Nadhir Hassen and Marin Biloš and Sahil Garg and Anderson Schneider and Nicolas Chapados and Alexandre Drouin and Valentina Zantedeschi and Yuriy Nevmyvaka and Irina Rish},
year={2024},
eprint={2310.08278},
archivePrefix={arXiv},
primaryClass={cs.LG}
}