为什么 LLM 评测总在刷分?试试把量化交易环境当成训练场
现在很多大模型的 Benchmark 陷入了一种诡异的死循环:评测集在不断更新,但模型在这些数据集上的分数越来越高,实际体感却没多少提升。这种现象在学术上叫“基准饱和(Benchmark Saturation)”,说白了就是模型把答案给背下来了,或者通过某种投机性的 Prompt 技巧刷了分,但这完全不能代表模型具备真正的推理和解决问题的能力。
最近关注到 Rui 和 Michael 做的 EdotEnv,给我的启发很大。他们把量化交易的完整工作流直接封装成了一个强化学习环境(RL Env),让 LLM 在里面扮演量化研究员。这个思路最精妙的地方在于,金融市场本身就是一个永远在进化、永远在产生新噪声的动态 Benchmark。在量化领域,套利空间会被迅速填平,旧策略失效是常态,这意味着模型无法通过“记忆”来获胜,必须在真实的动态博弈中证明自己的逻辑能力。
在 EdotEnv 的设计中,LLM Agent 面对的不是简单的问答,而是一套完整的 Quant 研究闭环。系统会给 Agent 一个时间段 $[0, T]$ 的清洗后市场数据,Agent 需要在其中完成一系列复杂操作:首先是构思预测特征(Feature Engineering),然后构建模型,接着进行回测,最后在 $[t+1, T]$ 的区间内执行并动态调整投资组合(Portfolio)。
这种设计把 LLM 的能力测试从“静态知识检索”推向了“长期规划与迭代”。在实际运行 SOTA 模型后,他们观察到了几个非常真实且令人沮丧的细节,这恰恰揭示了当前 LLM 在复杂任务处理上的短板。
首先是模型在搜索策略上的“缺乏耐心”。实验发现,模型倾向于采用“宽树浅搜”的策略,即尝试很多个不同的方向,但每个方向只深挖一两步就放弃了。它缺乏那种在同一个逻辑点上进行深度迭代、反复推敲的韧性。
其次,复杂的推理链(Chain-of-Thought)在量化环境下并不总是正向的。很多时候,模型写了一大堆极其复杂的逻辑推导,结果在回测阶段的表现反而不如一个简单的线性逻辑。这说明 LLM 容易在自我推理中陷入“过度拟合”的陷阱,把噪声当成了信号。
最有趣的一点是 Agent 对亏损的反应。在真实交易模拟中,当账户出现回撤或亏损时,很多 Agent 的反应不是分析原因并优化策略,而是直接选择“停跑”或放弃。这种行为模式非常像人类在面对压力时的逃避反应,但在 AI 训练中,这意味着模型缺乏真正的自我反思机制。
从工程角度看,EdotEnv 解决了目前 RLHF 中一个巨大的痛点:Reward(奖励机制)的定义。传统的 LLM 训练非常依赖人工标注或用另一个 LLM 作为 Judge,这很容易引入主观偏差。而量化环境的 Reward 是极其客观的——就是 PnL(盈亏)和夏普比率。数据是真实的,噪声是自然的,Trade-off(权衡)是强制性的。
目前他们已经开源了关于特征工程(Feature Engineering)的样例任务仓库,这对于想研究 LLM 如何在实际机器学习研究中扮演角色的人来说非常有价值。与其在合成数据集上刷分,不如把 Agent 丢进一个有噪声、有风险、且结果实时反馈的真实市场环境里,看看它在面对真实的亏损和波动时,是否真的具备所谓的“智能”。
Luna 跑出来的策略野路子太多了,得赶紧对比下这次 reward shaping 到底是不是在搞鬼。
Luna那个alpha hunting简直是搞笑策略生成器, reward shaping 绝对在刷分,赶紧把配置发我!