五实验室五团队:用小模型打造多模型金融剧集
速览
五家实验室联合打造了一部多模型金融题材剧集。该项目展示了如何利用小模型技术进行复杂内容的生成与协作。这一案例为AI在创意产业中的应用提供了新的实践路径。
AI 深度解读
五间实验室,五种思维:在小型模型上构建多模型金融戏剧
背景
Thousand Token Wood(千代币森林)最初是一个基于单一微调 0.5B 模型的“气象之神沙盒”。在这个版本中,五种森林动物在一个模型的控制下进行商品交易,玩家通过注入外部冲击来观察泡沫和崩盘的涌现。这虽然是一个有趣的玩具,但它更像是一个供人旁观的系统,而非一个玩家可以深度介入的游戏。
v2 版本彻底重构了这一体验,将其转变为一个由玩家主导的游戏。玩家扮演“森林的庇护者”(Patron),一位影子金融家:你可以放贷收息、散布真假难辨的内幕消息、做空市场、行贿或撮合联盟。与此同时,一名执法官(Magistrate)正在追捕你,因为你利用了不该知道的信息进行交易。动物们会记住你对待它们的方式并伺机报复。
v2 版本最核心的底层变革在于:每一只动物现在都使用来自不同实验室的小型模型进行思考。本文作为工程报告,详细阐述了这一多模型架构的设计哲学、技术挑战及解决方案。
核心内容
异质性是产品特性,而非约束
运行智能体委员会的直观做法是使用同一个模型,通过不同的提示词(Prompt)来区分角色。然而,v2 版本运行了四个截然不同的模型:
- gpt-oss-20b (OpenAI)
- MiniCPM3-4B (OpenBMB)
- Nemotron-Mini-4B (NVIDIA)
- Qwen 0.5B (经过作者微调)
这种设计的目的并非为了标新立异。市场的趣味性在于参与者的真正差异。这四个实验室的模型基于不同的数据训练,并采用了不同的后训练(post-training)策略,代表了小型模型所能达到的最大差异度。例如,猫头鹰的囤积行为与狐狸的投机行为截然不同。这个委员会是一个活生生的辩论场,而非预设的脚本。
服务层而非模型层的摩擦
将四个distinct模型部署在同一平台上揭示了真正的工程教训:摩擦几乎完全存在于服务层(serving layer),而非建模层(modeling layer)。
- vLLM 的依赖问题:当前版本的 vLLM (0.22.1) 在加载时会 JIT 编译内核,并需要 CUDA 工具包(
nvcc)。由于精简的基础镜像不包含该工具,所有四个模型最初都因“找不到 nvcc”而失败。这并非 gpt-oss 的特例,而是该版本 vLLM 的普遍问题。最终,基于 CUDA devel 镜像修复了所有模型。 - 硬件与格式适配:gpt-oss-20b 原生支持 MXFP4 量化,可以轻松运行在 24GB 显存的 L4 GPU 上,无需高端显卡。但它采用了一种特殊的通道格式,将答案包裹在分析前言中,消费者必须提取最终通道。
- 配置陷阱:MiniCPM3 需要设置
trust_remote_code,而 Nemotron 则可以直接加载。每个模型都有其特定的配置陷阱,但通常只需一行配置即可解决。
宽容的 JSON 解析与修复层
使四个异构模型变得可行的关键原语,与 v1 中使单一模型可行的原语相同:一个宽容的 JSON 解析和修复层。所有模型的输出都流经这一层。由于不同模型的词表(tokenizers)和格式化习惯不同,会产生各种格式错误;该解析器会丢弃无法挽救的部分,确保模拟不会崩溃。构建这一层一次后,添加新模型只需增加一个配置项,而无需重构代码。
信息不对称需要防火墙
v2 的戏剧核心在于“内幕消息”。玩家可以向动物传递真实(基于下一轮市场狂热预测的真实边缘信息)或虚假(诱饵)的消息。利用真实消息获利会增加玩家的“热度”,一旦超过阈值,执法官将展开调查,导致罚款、资产冻结或流放。
为了让游戏具有真实性,内幕消息的真伪必须对动物隐藏。动物只能看到谣言文本,绝不能看到标记(flag)。这是一个安全属性,而非 UI 优化。由于小型模型智能体会重复提示词中的所有内容,因此隐藏标记必须完全脱离提示词存在(存储在玩家的账本中),在构建公共事件记录时将其剥离,叙述者仅总结公共事件。
作者编写了一个测试,扫描每个动物每一轮的全部提示词,检查是否包含被禁止的令牌。这是测试套件中最重要的测试。当给智能体秘密信息时,必须假设它会泄露,除非有测试证明它不能。
记忆是廉价的戏剧,但需加以限制
动物携带持久的人际关系:对庇护者和其他动物的情感倾向,由事件推动(如你做空了我的作物、你偿还了贷款、你与竞争对手结盟)。敌对的动物会拒绝贷款并给出更差的报价;结盟的动物则停止恶性竞争,表现得像卡特尔。
主要的陷阱是提示词膨胀(prompt inflation)。原始历史无限增长,小型模型会被其淹没。解决方案是永远不要将历史放入提示词:模型只能看到一行分桶摘要(例如“你对 Oona 感到温暖,对庇护者保持警惕”),限制在最强烈的少数情感上,这些情感源自整数情感值。笔记仅用于追踪,但受到限制且从不展示。行为偏差部分是涌现的(摘要引导模型),部分是机械的(敌对动物确定性拒绝),因此它是可观察和可测试的,而非一种奢望。
实际运行结果
在完整的 v2 机制下,进行了一次代表性的委员会运行。这次运行涵盖了庇护者、信息战、关系和杠杆效应的端到端练习。
关键要点
- 小型模型是可靠的格式生成器,但不可靠的推理器:通过结构化、提示工程和小型微调来弥补差距,而不是依靠规模。
- 异构委员会更具趣味性:一旦服务层稳固,异构性带来的额外成本仅为配置项。
- 秘密信息是防火墙问题:防火墙应位于数据流中,并通过测试证明,而不是依赖于提示词中的指令。
- 持久记忆让智能体“活”起来:只要提示词只看到有界的摘要,持久记忆就是让智能体显得生动的最廉价方式。
- 工程重点在于服务层适配:处理不同模型的量化、格式和依赖关系是主要挑战,但通过统一的解析修复层和标准化配置可以解决。
意义与影响
这篇文章展示了如何利用小型模型构建复杂、动态且具有高重玩价值的模拟环境。其核心贡献在于证明了异构性可以作为一种设计优势,通过引入不同模型带来的行为差异,创造出比单一模型更丰富、更不可预测的社会互动。
此外,文章强调了在构建基于 AI 的智能体系统时,工程稳健性(如宽容的解析层、严格的测试驱动开发以验证信息隔离)比模型本身的规模更为重要。这种“小模型,大冒险”的方法不仅降低了计算成本(如使用 L4 GPU 即可运行),还为研究多智能体交互、信息不对称博弈以及持久记忆机制提供了一个开放且可复现的实验平台。整个委员会的代码和追踪数据均已开源,为社区进一步探索小型模型在复杂模拟中的应用奠定了基础。
