本文由 Salesforce、新加坡国立大学、香港科技大学(广州)共同完成。其中,第一作者柳旭是 Salesforce 亚洲研究院实习生、新加坡国立大学计算机学院四年级博士生。通讯作者刘成昊是 Salesforce 亚洲研究院高级科学家。该工作的短文版本已被 NeurIPS 2024 Workshop on Time Series in the Age of Large Models 接收。
时间序列预测是人类理解物理世界变化的重要一环。自去年底以来,时序预测领域正在经历重大转型,从传统的「单一数据集训练单一模型」的模式逐步转向「通用预测基础模型」。目前虽然有不少基础模型已经提出,但如何有效地在高度多样化的时序数据上训练基础模型仍是一个开放问题。
近期,来自 Salesforce、新加坡国立大学、香港科技大学(广州)的研究者以模型专家化这一全新视角作为抓手,设计并提出了下一代时序预测基础模型 Moirai-MoE。该模型将模型专业化设计在 token 这一细粒度运行,并且以完全自动的数据驱动模式对其赋能。模型性能方面,不同于仅在少量数据集上进行评估的已有时序基础模型,Moirai-MoE 在一共 39 个数据集上进行了广泛评估,充分验证了其优越性。
训练通用基础模型的一大挑战在于适应时间序列数据的高度异质性,这种时序数据的独特特性凸显了设计专业化模块的必要性。现有的解决方案主要分为两种。第一种是通过基于语言的提示来识别数据源,从而实现非常粗粒度的数据集级别模型专业化。第二种方案利用了时序数据的频率这一元特征实现了更细粒度的专业化:该方法为特定频率设计单独的输入 / 输出投影层,从而实现特定频率的模型专业化。
作者认为,这种人为强加的频率级专业化缺乏普适性,并引入了一些局限性。(1)频率并不总是一个可靠的指标,无法有效地捕捉时序数据的真实结构。如下图所示,具有不同频率的时间序列可以表现出相似的模式,而具有相同频率的时间序列可能显示出多样且不相关的模式。这种人为强加的频率和模式之间的不匹配削弱了模型专业化的有效性,从而导致性能下降。(2)现实世界的时间序列本质上是非平稳的,即使在单个时间序列的短窗口内也会显示出不同的分布。显然,频率级专业化的粒度无法捕捉这种程度的多样性,这凸显了对更细粒度的建模方法的需求。
为了解决上述问题,作者提出了全新的时间序列统一训练解决方案 Moirai-MoE,其核心思想是利用单个输入 / 输出投影层,同时将各种时间序列模式的建模委托给 Transformer 层中的稀疏混合专家。通过这些设计,Moirai-MoE 的专业化以数据驱动的方式实现,并在 token 级别运行。
Moirai-MoE 构建在它的前序工作 Moirai 之上。虽然 Moirai-MoE 继承了 Moirai 的许多优点,但其主要改进在于:Moirai-MoE 不使用多个启发式定义的输入 / 输出投影层来对具有不同频率的时间序列进行建模,而是使用单个输入 / 输出投影层,同时将捕获不同时间序列模式的任务委托给 Transformer 中的稀疏混合专家。此外,Moirai-MoE 提出了一种新型的利用预训练模型中知识的门控函数,并采用自回归的训练目标来提高训练效率。下面简要介绍 Moirai-MoE 的模块。
Moirai-MoE 采用切块(patching)技术将时间序列输入切成没有重叠的小块,而后对小块进行标准化来缓解分布迁移的问题。为了在自回归模型中获取准确、鲁棒的标准化统计值,作者引入掩蔽率 r 作为超参数,它指定整个序列中专门用于正则化器计算的部分,不对这些 patch 计算预测损失。最后,一个输入投影层来负责把 patch 投影到和 Transformer 一样的维度,生成时序 token。
通过用 MoE 层替换 Transformer 的每个 FFN 来建立专家混合层。该 MoE 层由 M 个专家网络和一个门控函数 G 组成。每个 token 只激活一个专家子集,从而允许专家专注于不同模式的时间序列数据并确保计算效率。在 Moirai-MoE 中,作者探索了不同的门控函数。首先使用的是最流行的线性投影门控函数,它通过一个线性层来生成专家子集的分配结果。此外,作者提出了一种新的门控机制,利用从预训练模型的 token 表示中得出的聚类中心来指导专家分配。这一方法的动机是,与随机初始化的线性投影层相比,预训练 token 表示的聚类更接近数据的真实分布,可以更有效地实现模型专业化。
为了同时支持点预测和概率预测两种预测模式,Moirai-MoE 的训练目标设定为优化未来混合分布的对数似然函数。
作者在 39 个数据集上的进行了广泛测试评估来验证 Moirai-MoE 的有效性。
上图展示了在 Monash 基准中 29 个数据集上进行的分布内预测评估。结果表明,Moirai-MoE 击败了所有竞争对手。相比前序工作 Moirai,Moirai-MoE 的提升幅度达到了 19%。与 Moirai 无法超越的基础模型 Chronos 相比,Moirai-MoE 成功弥补了差距,并相比它少 65 倍激活参数,这带来了巨大的推理速度的优势。
上表展示了在零样本预测设定时,Moirai-MoE 在 10 个数据集上的点预测和概率预测的表现。Moirai-MoE-Base 取得了最佳的零样本性能,甚至超越了 Google 的 TimesFM 和 Amazon 的 Chronos(他们在预训练语料库中已包含了部分评估数据,因此存在数据泄露)。与所有规模的 Moirai 相比,Moirai-MoE-Small 在 CRPS 方面提高了 3%-14%,在 MASE 方面提高了 8%-16%。考虑到 Moirai-MoE-Small 只有 11M 激活参数(比 Moirai-Large 少 28 倍),这些进步是非常显著的。
在这篇研究中,作者还对时序 MoE 基础模型的内部工作机制进行了首次探索。上图是对 Moirai-MoE 的专家分配分布进行的可视化。基于此,作者总结了以下观点:
1. 在浅层中,不同频率的数据在专家选择的分布上呈现多样化。随着层数的加深,模型将重点转移到更通用的时间依赖性,例如更广泛的趋势和长期模式,这些依赖性可以在不同频率之间共享。到最后一层(第 6 层),专家分配在所有频率上变得几乎相同,表明模型已将时间序列抽象为与频率基本无关的高级表示。这一证据表明 Moirai-MoE 学习到了频率不变的隐层表示,这对于模型泛化至关重要。
2. 随着层数增加专家选择逐渐收敛的行为与 Large Language Models 中观察到的模式完全相反。这种分歧可能源于时间序列 token 的动态和噪声特性,它们是由小时间窗口生成的,不像从固定词汇表中派生的语言 token。研究结果表明,随着层数增加,模型实际上是在进行逐步去噪过程。这一观察结果与 GPT4TS 的结论一致:随着层深度增加,token 会被投影到输入的低维顶部特征向量空间中。
更多实验结果,可参考原论文。
文章来自于微信公众号“机器之心”
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI