标题:MoiraiAgent: An Agentic Framework for Context-Aware Time-Series Forecasting
作者: Hanshu YAN(严汉书), Hong-Quang Pham, Ibrahim Taha Aks u, Jun Hao Liew, Caiming Xiong, Silvio Savarese,Doyen Sahoo
机构:Salesforce
博客链接:www.salesforce.com/blog/moiraiagent
Hugging Face: huggingface.co/datasets/Salesforce/GIFT-CTX
关键词:时间序列预测、智能体框架,上下文(context),模型选择
说明:本文是对MoiraiAgent的博客译文,翻译技术支持来源于豆包AI和谷歌翻译。
先聊聊 MoiraiAgent 这个自带故事感的名字 —— 它的灵感源自希腊神话中极具分量的 “摩伊拉(希腊语:Μοιραι,英语:Moirai)”,别名摩伊赖,是掌管万物命运的三位女神的统称(摘自百度百科)。她们手握生命之线,洞悉因果脉络,早已在神话叙事里成为 “预判事物走向” 的象征。也正因这份寓意与 “时间序列预测” 的核心目标巧妙契合,笔者便为 MoiraiAgent 赋予了 “摩伊拉特工” 的亲切称呼:既保留了神话符号中 “洞察趋势” 的内核,又用 “特工” 的意象,暗合其作为智能体框架 “精准捕捉信息、高效执行预测” 的特性。
而 “摩伊拉” 这一名称,并非首次出现在 Salesforce的技术探索中,Salesforce已经围绕Moirai打造了一系列时间序列与大模型结合的前沿成果:
ICML 2024 [Oral] | Unified Training of Universal Time Series Forecasting Transformers
论文:https://proceedings.mlr.press/v235/woo24a.html
代码:https://github.com/SalesforceAIResearch/uni2ts
TL; DR:本文为Moirai 1.0,试图解决的问题是如何构建一个通用的时间序列预测模型,该模型能够在多样化的下游任务中进行有效的预测。提出了一种新的Transformer架构,称为Masked EncOder-based UnIveRsAl TIme Series Forecasting Transformer (MOIRAI),并引入了一个大规模的开放时间序列数据集集合,称为Large-scale Open Time Series Archive (LOTSA)。MOIRAI模型在LOTSA上进行训练,以实现零样本(zero-shot)预测,即在没有针对特定任务进行额外训练的情况下,直接对新的、未见过的数据进行预测。

ICML 2025 | Moirai-MoE: Empowering Time Series Foundation Models with Sparse Mixture of Experts
论文:https://openreview.net/forum?id=SrEOUSyJcR
TL; DR: 提出 MOIRAI-MoE,彻底摒弃人工定义的频率分组,转而利用 Transformer 内部的稀疏混合专家(MoE)结构,在token 级别自动学习多样化的时序模式,实现数据驱动的专业化,同时保持计算高效与可扩展性。

Moirai 2.0: When Less Is More for Time Series Forecasting
论文:https://arxiv.org/abs/2511.11698
Hugging Face:https://huggingface.co/Salesforce/moirai-2.0-R-small
TL; DR:提出 Moirai 2.0,通过“更少即更多”的设计——解码器-only 架构 + 单 patch + 分位数量化损失 + 多 token 预测——在保持或提升预测精度的同时,把模型体积缩小 30×、推理速度提升 2×,并在 GIFT-EVAL 基准上进入前五,验证了“轻量架构+大规模数据”即可实现强泛化。

GIFT-Eval: A Benchmark for General Time Series Forecasting Model Evaluation
论文:https://arxiv.org/abs/2410.10393
代码:https://github.com/SalesforceAIResearch/gift-eval
Hugging Face:https://huggingface.co/spaces/Salesforce/GIFT-Eval
TL; DR:介绍了一个专门为时间序列基础模型设计的新基准,该基准具有多样化的时间序列特征,并采用预训练和训练 \ 测试拆分的结构,以避免数据泄露。(目前该榜单已经成为时序基础模型最为主流的评测榜单之一。)

准确的预测是从全球金融到气候科学等各个领域战略决策的支柱。在企业环境中,它为早期预警系统提供支持,通过销售预测优化库存,并通过劳动力容量规划确保运营效率。
传统的时间序列模型通常依赖历史数值数据,识别趋势和季节性等模式来预测未来。虽然在稳定环境中有效,但这种“仅靠数字”的方法在现实世界中往往会失灵。现代结果很少仅由过去的数据驱动,它们还受到外部冲击、政策变化、设备故障以及新闻或报告中的定性见解的影响。为了保持准确性,预测必须超越电子表格,考虑那些真正推动变革的不可预测因素。

图1:一座城市的每日电力需求受多种因素影响。除了历史数据中的模式外,合理的预测还需要考虑天气、节假日、法规等因素
为了弥补这一差距,提出了MoiraiAgent,这是一个用于时间序列预测的自动化框架。与仅依赖数值输入的传统模型不同,MoiraiAgent整合了广泛的信息来源——包括历史数值和丰富的上下文信号——以生成更可靠的预测。它会随着新信息的出现不断进行推理,实时更新其预测,从而在动态环境中实现更具适应性和稳健性的性能。
MoiraiAgent的核心在于利用强大的大语言模型(LLMs)和复杂的数据分析工具,来理解、整合并推理异构数据。这使得它在情景规划(scenario-planning)用例中特别有价值,在这些用例中,背景和变化与历史趋势同等重要。通过突破传统预测的边界,MoiraiAgent所提供的预测不仅以数据为驱动,还能感知背景并响应现实世界的情况。

图 2:MoiraiAgent 对输入的数值和上下文信息进行分析和理解。然后,它制定计划(例如,调用历史数据修剪和预测工具),并自动决定在预处理 / 后处理和预测阶段使用哪些工具
预训练时间序列基础模型的格局迅速多元化。像Chronos-2和Moirai-2这样的模型在GIFT-Eval基准测试中始终名列前茅,但它们并非万能的赢家。它们的优势具有领域特异性:Chronos-2在Web/CloudOps和能源领域表现出色,但在处理自然数据时却存在困难。这种“异质性(heterogeneity)”源于预训练数据的差异,这使得单个模型几乎不可能在所有场景中都占据主导地位。
为了应对这一挑战,MoiraiAgent 1.0引入了一种 intelligent expert-selection mechanism( intelligent expert-selection mechanism)。MoiraiAgent没有依赖单一的预测模型,而是使用一个轻量级的30亿参数大语言模型(LLM)来为每个预测任务自动选择最佳专家。
选择模型将一系列全面的特征作为输入:历史数值、时间特征(时间戳和记录频率)、候选模型的预测结果,以及基于短期回溯窗口计算的交叉验证误差。通过对这些多方面信号进行推理,选择模型会为每个特定的预测任务输出最合适的专家模型。
专家池包含三个最先进的模型,它们在GIFT-Eval基准测试中名列前茅:Chronos-v2(亚马逊)、TimesFM-2.5(谷歌)和Tirex(NXAI)。为了训练专家选择器,构建了一个包含200万个训练样本的数据集,使MoiraiAgent能够在各种现实世界的时间序列中学习稳健的选择模式。结果如何呢?MoiraiAgent不仅能与最佳的单个模型相媲美,还能持续超越所有这些模型。在GIFT-Eval基准测试中,MoiraiAgent实现了0.679的MASE,超过了Chronos-v2(0.698)、TimesFM-2.5(0.705)、Tirex(0.716),甚至超过了Moirai2(0.728)。这些结果确立了MoiraiAgent作为最先进的时间序列预测模型的地位(state-of-the-art time-series forecasting model),并且是在实践中朝着更具适应性、更具上下文感知的预测迈出的有力一步。

图3:GIFT-Eval基准测试的预测误差表现,数值越小越好
虽然传统的预测模型擅长从数值时间序列中提取模式,但现实世界的系统很少孤立运行。外部环境——如政策变化、市场事件或运营转变——可能从根本上改变未来的轨迹,而仅靠历史数据无法捕捉到这些变化。MoiraiAgent通过将自然语言环境与数值时间序列数据相结合来弥补这一差距,从而实现更准确、更具适应性的预测。
确定了上下文影响预测的三种主要方式:

图 4:上下文表明历史上的一个相变(phase transition)。MoiraiAgent 为预测选择了合适的回溯窗口

图 5:上下文告知了非持续性的附加(additive)趋势。MoiraiAgent 使用 python-sandbox 来消除异常影响

图 6:上下文暗示未来影响。MoiraiAgent会相应地修改原始预测
为了支持这些多样化的场景,MoiraiAgent采用了一个灵活的、工具协同的流程,其中强大的大语言模型(LLM)充当核心协调者。该大语言模型会根据每项任务的需求,动态决定要执行的操作和要调用的工具——这些工具既包括先进的预测模型,也包括Python代码沙箱。
然而,一些预测问题需要将上下文因素更深入地直接整合到数值建模过程中,而不是进行简单的预处理或后处理。例如,长期GDP预测取决于理解人口结构变化(如出生率的变化)如何重塑经济基本面,如劳动力供给和消费能力。应对这类挑战需要端到端模型,将上下文信号嵌入预测模型本身——这是未来研究的一个重要且有前景的方向。
Hugging Face: https://huggingface.co/datasets/Salesforce/GIFT-CTX
尽管人们对上下文时间序列预测的兴趣日益浓厚,但系统性评估仍然有限。为了填补这一空白,引入了GIFT-CTX,这是一个新的基准,旨在评估能够对数值时间序列和自然语言上下文进行联合推理的预测系统。GIFT-CTX中的每个样本都是精心构建的,因此仅使用历史值或仅上下文(context alone)情景都无法做出准确的预测——两者都是必不可少的。
作者们从上下文是关键(Context is Key, CIK)基准开始研究,发现它有许多样本要么仅通过上下文就能轻松预测,要么需要超出所提供上下文的额外知识。此外,CIK中的样本在季节性或序列长度方面缺乏多样性。因此,构建了GIFT-CTX,首先从CIK中选取了120个定义明确的样本,并补充了125个人工创建的合成样本。由此产生的基准包含245个样本,涵盖了不同的季节性、序列长度和上下文信息场景。这种设计专门测试模型整合异构输入以及对数值模式和自然语言上下文进行联合推理的能力,反映了现实世界预测挑战的复杂性。
ICML 2025 | Context is Key: A Benchmark for Forecasting with Essential Textual Information
论文:https://arxiv.org/abs/2410.18959
在GIFT-CTX 基准上对 MoiraiAgent 与领先的竞争对手进行了评估,其中包括专门的基础预测模型和前沿的通用大型语言模型。如图 7 所示,MoiraiAgent 取得了最佳的整体性能,优于所有基线模型。MoiraiAgent 的加权归一化平均绝对误差(NMAE)为 0.124,加权归一化均方根误差(NRMSE)为 0.184,大幅超过了时间序列基础模型,如 Moirai2(0.226/0.377)和 Chronos2(0.192/0.327),以及通用基线模型,如 GPT-5.2(0.247/0.376)、Claude Opus 4.5(0.171/0.262)和 Gemini 3.0 Pro(0.146/0.223)。请注意,所有方法都使用了中等推理力度。

图7:不同方法在GIFT-CTX基准上的加权归一化平均绝对误差(NMAE)和加权归一化均方根误差(NRMSE)
MoiraiAgent代表着从静态数值模型向智能、具有智能体(agentic)的框架的转变。通过将最先进的专家选择机制与对现实世界情境的推理能力相结合,弥补了历史数据与未来不确定性之间的差距。 GIFT-CTX基准测试的结果证明,最准确的预测不仅仅是数据驱动的,还需要具备上下文感知能力。MoiraiAgent提供了突破数值孤岛的工具,所做出的预测能够像它们所描述的世界一样,既具有响应性又复杂多样。
from agent import MoiraiAgentTimeSeriesForecast
moirai_agent = MoiraiAgentTimeSeriesForecast()
time_series_data = {
'history_seq': [1,2,3,4,5,6],
'history_window': ['2026-01-01 00:00:00', '2026-01-01 06:00:00'],
'frequency': 'H',
'future_window': ['2026-01-01 07:00:00', '2026-01-01 10:00:00'],
'pred_length': 4,
}
pred, _, _ = moirai_agent(time_series_data)
input_info = {
"history_values": history_values,
"history_start": history_start,
"history_end": history_end,
"history_frequency": history_frequency,
"context_info": context_info,
}
user_instruct = "Predict [k] future values in the range from [future_start] to [future_end]. \nThe final result must be enclosed by '\\boxed{' and '}', and where values are separated by ','."
asyncdef main(input_info, user_instruct):
from src.ctx_forecast.mcp_client import MCPClient
client = MCPClient(CONFIG)
try:
await client.connect_to_servers()
history_info = json.dumps(input_info)
parsed_values, all_logs, _, _ = await client.make_forecast(history_info, user_instruct)
print(parsed_values)
print(all_logs)
finally:
await client.cleanup()
asyncio.run(main(input_info, user_instruct))
维度 | 传统时间序列预测 | 上下文预测 |
|---|---|---|
实现方式 | 本地类实例直接调用(同步) | 通过网络客户端(MCPClient)异步调用外部服务 |
输入数据结构 | 简化结构: history_seq(序列)+ history_window(时间窗口) | 详细结构: history_values(值列表)+ history_start/history_end(时间边界)+ context_info(额外上下文) |
上下文支持 | ❌ 无上下文信息 | ✅ 支持 context_info(如天气、事件等外部信息) |
预测长度指定 | 显式参数:pred_length=4 | 隐式指令:在 user_instruct 中用 [k] 占位符指定(需替换) |
输出格式要求 | 无特殊格式要求 | 强制格式:结果必须包裹在 \\boxed{} 中,值用逗号分隔 |
执行模式 | 同步(阻塞式) | 异步(async/await) |
依赖 | 仅需本地 MoiraiAgentTimeSeriesForecast 类 | 依赖外部服务(MCPClient 需连接服务器) |
AI论文速读 | 深度时间序列预测的未来走向:精度定律的发现与应用
此公众号的文章皆系本人原创,辛苦码字不易!如需转载,引用请注明出处。如商用联系作者。
如果觉得有帮助还请分享,在看,点赞