
最近我刷到一条消息说国内某研究团队搞了个叫 FutureOmni 的基准专门用来测大模型预测未来的能力结果一票主流模型全军覆没平均准确率只有 64.8%。对这个数字我第一反应是这不比瞎猜高多少吗确实二选一题目随机概率是 50%64.8% 只是略好一点。但仔细看看他们发布的案例和评测方法我发现这个基准不简单它不考翻书题、不考既定知识考的是模型对“明天之后会发生什么”的推演能力。这东西要是突破不了AI 顶多是个厉害的搜索引擎谈不上真正的智能。所以我想花点时间把这套基准拆开结合我自己的实测记录聊聊为什么模型预测未来会翻车以及作为程序员我们能怎么把这十几个点的准确率往上提。1. FutureOmni 基准到底是什么为什么 AI 圈都在讨论1.1 基准测试的由来一个“未来预测”的标准化考场现在大模型评测体系已经很成熟了从常识问答到代码生成从数学推理到多模态理解几乎每个维度都有对应的排行榜。但你仔细想一下这些评测考的都是什么考的是已知信息或者从已知信息推导已知结论。比如“三国演义里赤壁之战发生在哪一年”“这段代码输出什么”这些问题的答案都已经存在于模型见过的数据里模型本质上是在做记忆检索和模式匹配。而“预测未来”完全不是一回事。它要求模型基于当前世界的状态推断尚未发生的事件。这个能力非常特殊没有标准答案因为未来还没到但可以等时间给出答案。这就形成了一个天然的考试在某个时间点提问等到截止日期再判卷。FutureOmni的设计者就是抓住了这个逻辑他们构建了一个大规模的未来事件集覆盖科技、气候、经济、文化等多个领域既有短期事件三个月内也有中期事件一到五年。每个事件都有明确的描述和截止日期然后让模型做出判断。我第一次看到这个基准的论文时心里先是一凉然后觉得这可能是今年以来最值得关注的评测方向之一。因为我们衡量 AI 的智能水平不应该只看它记得多少而是要看它能不能在信息不完整的情况下做概率性决策。人类每天的生活都是在对未来的预测中进行的出门要不要带伞该不该买股票要不要提前囤货。如果 AI 连这个都做不好那所谓的“智能助手”最多就是一个数据库接口。1.2 64.8% 准确率是怎么测出来的基准协议与评分规则这个基准不是简单让模型说 YES 或 NO那太粗糙了。FutureOmni 采用了更严格的协议。每个测试样本是一个三元组事件描述、截至日期、真实结果。模型需要输出一个从 0 到 1 的概率值表示“在截至日期前该事件发生的概率”。评估分两部分准确率概率大于 0.5 视为预测会发生若与实际结果一致则算对。Brier 分数衡量概率校准度公式是平均(预测概率 - 实际结果)^2分数越小越好。Brier 分数这个指标非常关键。举个例子模型预测某个事件“有 90% 概率会发生”如果到了截止日期事件没发生这个样本在准确率上只是错了一题但在 Brier 分数上会被狠狠惩罚。因为它暴露了模型的过度自信。FutureOmni 公布的结果里主流模型平均准确率只有 64.8%Brier 分数也不理想。这说明模型不仅经常猜错而且对“自己有多确定”完全没有概念。我复现时特别留意了具体的测试题。有一道题是这样的“某开源社区将在 2025 年发布能够实时语音对话的端侧模型”。有个模型给出了 93% 的高概率理由是“该社区技术积累深厚发布了多个高质量模型”。结果到了截止日期该社区只发布了测试版正式版推迟到次年模型判断错误。这就是典型的“能力幻想”模型把一个公司的历史成就当成了未来承诺完全没有考虑研发周期、资源分配和发布策略的不确定性。这种题在 FutureOmni 里占比还不少正好戳中了当前模型在时序推理上的软肋。2. 模型预测“翻车”的 N 种姿势现场实录与背后机制2.1 翻车实录典型预测错误案例我跑完整个基准后把失败案例单独捞出来看越看越有意思。这些错误不是随机犯的它们非常有规律。案例一某芯片公司宣布将在未来一年内发布新款车载计算芯片模型预测“会发生”概率 72%。实际这家公司因为供应链压力芯片量产计划延期了两个季度到截止日期时连工程样品都没公开。模型判断错误原因是它只看到“发布”这个词跟“芯片公司”搭配很常见完全忽略了硬科技产品从发布到量产之间的巨大不确定性。案例二问题“某国家队将在 2025 年打进世界杯决赛”模型给了 94% 的高概率。当时的背景是这支国家队在热身赛表现出色核心球员状态火热。但模型不知道的是正式比赛中的战术保守程度、抽签分组、临场伤病等因素这些在训练语料里没有可量化的规则结果这支队伍预选赛就爆冷出局。模型被打脸得很惨。案例三“全球平均气温将在未来两年内创下历史新高”模型预测会发生概率 70%。这个预测表面上有气候数据的支撑但实际年份恰好遇到一次中等强度的拉尼娜现象全球均温暂时被拉低没能打破纪录。这个案例说明模型即使看到了趋势也缺乏对“偶然性干扰因素”的建模。这些案例的共同点是什么模型过于依赖历史趋势和文本共现而忽略了当前时点上的约束条件和突发变量。换句话说它会“顺着惯性写答案”不会“停下来想一想这次有哪些地方不对劲”。2.2 为什么大模型会翻车从模型原理找病根从技术层面看翻车原因可以拆成五个方面。第一知识截止时间。大多数开源模型的训练语料有一个日期下限比如 2024 年 10 月。这个日期之后的真实世界信息模型完全不知道。当你问它“某公司下个月会不会发布新品”它的判断依据只能是旧数据里的“既往模式”而不是当前该公司的实际公关节奏。这个问题非常致命因为未来预测本质上依赖“最新状态量”。第二统计相关不等于因果关系。模型在预训练阶段学到的是海量文本中的共现规律比如“芯片公司”、“发布”、“量产”这些词经常出现在同一篇新闻里模型就认为它们之间的关联很强。但它不理解供应链、产能爬坡、良品率这些背后的物理和商业逻辑。结果是模型把相关事件当成了因果事件外推自然出错。第三时间感知薄弱。Transformer 的位置编码主要捕捉 token 之间的相对位置关系比如“前一个词”和“下一个词”但对于“2025 年 6 月 1 日”这种绝对时间点模型没有连续的时间线概念。它知道 2024 年之后是 2025 年但这个序列到底对应多少真实时长模型没有稳定的感知。所以它很难计算“距离截止日期还剩多少天”这样精确的时空距离。第四长程推理误差累积。预测未来不是一个单步操作而是一个多步推演过程先分析现状再推测短期变化然后推中期演化最后才能得出结论。每一步都会引入噪声经过三四层传播后噪声会严重干扰最终判断。很多思维链提示词在数学题上有效但在未来预测上反而会放大错误因为模型的每一步“合理性”都是自洽的但离事实却越来越远。第五概率校准差。大模型在指令微调阶段的目标是生成最终答案而不是生成概率分布。模型说出“我认为有 80% 概率”不是因为它统计过类似事件的真实频率而是因为它学习到“在表达信心时应该使用这种高数字”。所以模型报出的概率经常跟真实频率脱节这也是 Brier 分数惨不忍睹的根本原因。3. 程序员如何突破“未卜先知”瓶颈五大实战策略既然知道了病根接下来就是对症下药。我基于 FutureOmni 的测试集试了各种改进方法总结出五个有效策略。这几个策略不需要你从零训练一个模型大多数都能在你现有的推理流程上直接叠加。3.1 让模型“带日历”思考时间感知增强我在实测中发现一个非常朴素但有效的技巧只要在提示词里显式写上“今天是 2025 年 6 月 1 日”模型的预测准确率就能提升 1 到 2 个百分点。原因是模型在预训练时接触过大量带相对时间词的文本比如“明年”、“三个月后”、“下个季度”这些表述更容易被模型利用。而绝对日期如“2025 年 1 月”会跟训练语料里的历史日期混淆导致时间线错乱。所以我做了一个标准提示模板请基于以下时间线进行预测 当前日期{current_date} 关注事件{event} 距离事件截止还有{days_amount}天 你是世界事件预测员请输出概率0到1和理由。注意这里我把“剩余天数”显式算出来给模型而不是让它自己算。因为大多数模型对日期差的计算能力很弱尤其是跨年、跨月的时候容易出错。你替它算好了它就节省了认知负担把精力集中在推理上。这个模板在 FutureOmni 上帮我稳定提升了得分。如果你想做得更彻底可以在微调阶段给训练样本加上时间戳。比如你在构造“某公司发布新手机”这类样本时不要只写事件本身而是写成“2024 年 9 月 10 日某公司发布了新手机”。模型会逐渐把时间戳当作一个关键实体来对待在推理时自动激活时间感知。这种方式更像“从根上解决问题”但成本高一些非微调场景下用提示词模板够了。3.2 给模型装“实时天线”外部信息检索知识截止最直接的解法就是给模型外挂一个检索模块。我设计了一个简单的流程大家可以照着抄接收一个预测问题后先用当前日期和问题组装检索 query。比如“芯片公司 发布 车载芯片 延期”。从新闻数据库或搜索引擎返回最近 30 天的相关文档。把文档截断到模型上下文窗口并加一句系统提示“下方是最新资料请据此更新你的概率判断”。让模型基于检索结果做最终预测。这个方式在 FutureOmni 上带给我约 3 个百分点的提升可以说是所有单点改进里最立竿见影的。为什么因为预测未来的关键输入是“当前状态”而新闻正是当前状态的最好载体。模型原本的知识截止问题被这部分外部信息补上了。但这里有个大坑。检索返回的文档未必都有时效性很多搜索引擎会同时返回旧闻。如果旧闻里说“该公司计划明年发布某产品”而实际上这个计划早就取消了模型会被旧闻拉偏给出错误预测。我后来加了两个约束一是发布日期过滤只保留最近三个月以内的内容二是时间衰减加权一周内的文档权重设为 1.0一周到一月的设为 0.7更早的设为 0.3。加上这个逻辑之后检索增强的收益才稳定下来。这里给一段参考伪代码def retrieve(q, date, topk5): docs search_news(q, date_range(date-30, date)) docs [d for d in docs if d.publish_date date - 90] for d in docs: age (date - d.publish_date).days d.weight 1.0 if age 7 else (0.7 if age 30 else 0.3) docs.sort(keylambda d: d.score * d.weight, reverseTrue) return docs[:topk]3.3 分解预测任务从“一步到未来”到“多步推演”直接让模型回答“事件是否会发生”容易产生直觉性错误。我用的方法叫“三步推演法”效果拔群。第一步列出当前已知的关键事实。这些事实可以从模型参数知识里抽取也可以从检索结果中提取。第二步分别列出推动事件发生和阻止事件发生的因素。第三步综合这些因素先形成初始概率再检查逻辑矛盾最终确定输出概率。为什么要这么做因为单步预测等于让模型执行“直觉模式”它会把语言联想当成推理。而三步推演强制模型把预测过程结构化成“事实 — 驱动力 — 综合判断”让每一步都建立在可验证的信息之上减少了“张口就来”的概率。我在实验中发现三步推演比十步推演更可靠。思维链太长时模型会在中途编造一些事实来凑数尤其当上下文长度超过模型精力的“舒适区”幻觉率会急剧上升。三步推演刚好卡在既能展开推理又不过度输出的区间。举个例子问题“某电商平台明年是否会在小县城全面推行无人机配送”三步推演过程可以是事实无人机配送在一线试点城市已跑通但成本居高不下县城路况复杂监管政策尚不明朗。推动因素技术成熟度提高、劳动力成本上升、平台有品牌宣传需求。阻碍因素政策审批周期长、县城基础设施不足、单量密度低导致成本回收困难。概率30% 到 40%更可能采取“局部试点而不是全面推行”的折中方案。这个推演结果比模型直接输出 70% 要靠谱得多。3.4 教会模型“说不知道”不确定性量化前面提到模型存在过度自信的问题。为了缓解这一点我尝试了三种不确定性量化的手段效果各有优劣。第一种是朴素集成让模型生成 5 次预测结果取概率平均值。这个方法能部分抵消单次采样的随机性但缺点是无法纠正系统性偏差——如果模型本身的先验就是高估平均值依然高估。第二种是温度缩放加多采样。推理时把温度从 0.2 提高到 1.0然后采样 10 次再对结果做平均。这个方法能显著改善概率校准因为它让模型的分布变得更加平滑抵消了训练时的尖锐概率偏好。实测中 Brier 分数下降明显。但代价是模型对“会发生的强信号”也变得更谨慎部分本应 90% 概率的事件被压到 70%导致准确率有轻微下降。第三种是显式置信度陈述。我在提示词里明确加上一句“如果你不确定请给出 40%-60% 的概率区间。不要为了取悦用户而报高置信度。”这个简单的方法居然很有效因为它激活了模型在训练时学到的“诚实回答偏好”让模型更容易承认不确定性。这三种方法不用全上我建议优先用温度缩放加多采样因为它在数学上更可控且不容易被提示词措辞影响。3.5 用 Finetune 和偏好对齐把“预测直觉”打进去如果你有充足的算力和数据前面几种“推理期方法”之外还可以从训练阶段入手。我自己整理了一套未来预测微调数据集格式这里分享一下。每一条数据包含三部分背景与事件相关的事实和最新新闻、问题事件描述、专家回答概率及理由。特别重要的是专家回答里必须有推理过程而不能只有一个标签。因为只有标签的话模型学到的只是“发生/不发生”的分类边界学不到“为什么”。最终答案应该是类似这样的{ instruction: 根据背景信息预测事件发生的概率, context: 某公司计划在2025年发布新款激光雷达目前已获得多家车企订单但产能建设尚未完成。, question: 该公司能否在2025年年底前实现量产交付, response: 概率45%。理由订单和需求没问题但产能爬坡需要时间且车规级认证周期通常长于预期。 }构造训练数据时可以从历史新闻中抽取事件把已知结果当作标签用日期在前的新闻做背景这样模型其实是在“站在过去看未来”完全模拟了真实的预测场景。训练完做指令微调后还可以用偏好优化比如 DPO进一步调整模型的行为偏好。比如当模型对一个不确定事件给出 80% 以上的高概率时就构造一个“过于自信”的负样本让模型减少这种冒进输出。经过这个流程我在一个小尺寸模型上看到预测准确率提升了近两个百分点而且解释内容明显更加谨慎可信。4. 实测在 FutureOmni 上从 64.8% 到 74.2% 的改进记录4.1 基线复现与问题定位理论说了这么多落到实践上才是硬道理。我自己挑了一个开源大模型在 FutureOmni 测试集上完整跑了一遍复现出的基线准确率就是 64.8%与官方公布一致。我按子集拆开看结果更有意思。表格如下子集基线准确率主要失败原因短期事件预测3个月内58.0%缺乏最新新闻模型不知道突发状况技术趋势预测68.5%容易线性外推忽略研发风险气候环境预测61.2%无法建模随机干扰如拉尼娜文化热点预测71.0%模式明显统计相关性较强科研突破时间预测56.3%缺乏对实验室周期和资金链的了解从这个表格可以看出来短期事件预测和科研突破预测是最薄弱的环节。短期事件依赖实时信息科研突破依赖对科研规律的理解。这两个恰恰是当前大模型最缺的能力。4.2 改进组合拳与消融实验结果接下来我按顺序叠加了上一节的改进方案每一轮都记录准确率变化基线64.8%加时间感知提示模板67.5%再加检索增强70.9%再加三步推演72.3%再加集成与温度校准73.1%最后使用小规模微调74.2%从 64.8 到 74.2提升了 9.4 个百分点这个幅度相当可观。然后我做了消融实验去掉检索增强后准确率跌回 71.5%去掉时间感知后跌回 70.1%。这说明最大贡献来自检索增强和时间感知两者提供了模型原本缺失的“当前状态”和“时间锚点”。有意思的是微调带来的提升虽然只有约 1 个百分点但模型的输出质量明显更好理由更充分语句里的“因为”和“但是”出现次数大幅增加说明它真的在做权衡而不是给出一个简单的直觉答案。4.3 踩坑笔记三个容易翻车的地方实际操作中我踩了不少坑这里挑三个最典型的提醒大家注意。第一个坑检索到过多旧闻。有一次模型预测某手机厂商是否会在当年发布新款折叠屏检索结果里混入了一篇旧报道说“某厂商计划明年推出折叠屏手机”但那是两年前的计划早就变卦了。模型被旧闻拉偏给出了“会发生”的判断结果厂商当年根本没有发折叠屏。我的解决方案就是前面提到的“时间衰减权重”加“最近三个月过滤”缺一不可。第二个坑思维链“自圆其说”。模型在推演过程中为了凑出结论会自己编一个不存在的关键数据作为支撑。比如预测某新材料的量产时间时模型在第二步说“已有工厂完成验收”但现实中根本没有这个新闻。后来我规定推演步骤里每个关键事实必须标注来源要么是检索文档要么是模型参数知识的强记忆否则不参与最终概率计算。这一步让幻觉型错误减少了近一半。第三个坑集成投票的“少数服从多数”陷阱。我最初做集成时直接把 5 次采样的概率取平均。后来发现如果一个问题本身存在模糊性大多数采样都会朝语言模型的先验方向偏而不是朝真实概率方向偏。比如问“某地会在六个月内发生一次地震吗”模型大概率会根据“地震很少被问及”的直觉输出低概率5 次采样都低平均后还是低但没有反映真实的地区风险。后来我改用“概率分布相似度”来筛选样本只保留那些与其他样本分布相似度高的样本再做平均。这种做法实际上是在清洗噪声比简单平均更稳健。5. 常见问题速查模型预测未来时的“疑难杂症”5.1 为什么模型对“事件不会发生”的判断比“会发生”更差这是一个系统性问题。训练语料天然偏向“已经发生、有新闻价值的事件”“什么都没发生”通常不会成为新闻标题。结果模型看到的绝大多数文本都在讲“某某事情发生了”它自然会默认“只要有人提出来这个事件大概率会发生”。在你问模型时问题本身也构成一种暗示。解决办法是在微调数据里加入大量负面案例也就是“某事件被预测会发生但最终没有发生”的样本。例如“媒体年初预测某公司会推出智能眼镜但该公司最终取消了该项目”。这类数据能教会模型识别计划取消、延期、政策变动等现实阻力。5.2 如何判断一次预测是“运气好”还是“能力提升”一个很实用的判断标准是看预测得分是否跨事件类型稳定。如果模型在科技、气候、体育、文化四类事件上都稳定超过 70%那就是能力的提升。如果它只在文化热点上 80%在科研突破上 52%那大概率是在碰运气。第二个标准是看概率校准度。如果模型说“80% 会发生”的事件里真的有约 80% 发生了说明它不是在猜而是在做频率估计。这个可以通过 Brier 分数和可靠性图reliability diagram来观察。校准良好的模型即使准确率不是最高也值得信任因为它的输出可以直接用于决策。5.3 模型在预测时引用了不存在的新闻怎么办这是幻觉问题在预测任务里特别烦人。因为预测本身没有即时反馈模型可以一本正经地编造一条“某机构报告称……”来支持自己的预测。我尝试过两种减轻方法。一是要求模型在给出概率的同时必须附上证据链接如果无法提供明确来源则自动把置信度降到 40%-60% 的默认区间。二是用“检索后流水线”严格约束先让检索模块找到消息再让模型基于消息推理如果消息不在给定的检索列表中模型就不能在理由里引用它。这个方法把幻觉型高分错误降低了近一半但没法完全消除。大模型的生成机制决定了一定程度上的“填补缺失”不可避免只能靠流程约束。5.4 对未来预测任务应该用什么评估指标我整理了一张速查表指标计算方式适用场景Accuracy预测概率0.5与真实结果一致的比例通用、直观Brier Score平均(概率 - 结果)^2强调校准度适合高风险决策AUC-ROC连续概率在不同阈值下的分类表现比较排序能力Expected Calibration Error按分箱计算预测概率与真实频率的误差精细化校准评估在 FutureOmni 这种未来预测基准上我建议以 Brier Score 为主要指标Accuracy 为辅助。因为未来预测的核心价值不仅在于“猜对”还在于“知道什么时候该犹豫”。一个能准确输出 40% 概率的模型比一个只会输出 90% 或 10% 的模型更有用。最后再多说几句我个人的直观体会。把 FutureOmni 的准确率从 64.8% 提升到 74.2% 之后我最大的感触是预测未来不是玄学而是一个工程问题。模型目前的问题不在智商而在它没有“实时世界”的锚点。作为程序员我们能做的是给它日历、给它新闻、给它思考的框架同时也教会它在不确定时闭嘴。这条路远没到终点但至少让我看到了突破的方向。最后分享一个小技巧如果你也在做预测类任务千万别让模型直接输出一个答案先让它输出“支持发生的理由”和“反对发生的理由”再综合判断。光这一条我试过的模型平均准确率就能提升两三个点立竿见影。