跳到正文
北京时间
原文
Hugging Face:Blog(RSS)·· 2026-06-07精选AI 评分66

五个实验室,五个心智:用小模型构建多模型金融剧情游戏

Five labs, five minds: building a multi-model finance drama on small models

AI 导读

Thousand Token Wood v2使用四个不同实验室的小模型(gpt-oss-20b、MiniCPM3-4B、Nemotron-Mini-4B及微调Qwen 0.5B)驱动金融模拟游戏的智能体。核心发现是异构服务层摩擦在于vLLM 0.22.1需CUDA工具包,而非模型本身。通过容忍性JSON解析层,添加模型只需一条配置。信息隔离确保内幕标志不在提示词中,扫描测试验证无泄露。记忆用情绪摘要截断避免淹没。微调0.5B模型实现0%自成交、100%有效报价,真相防火墙零泄露。小模型是可靠格式生成器但不可靠推理器,可通过结构化、提示词和微调弥补。

推荐理由

不是那种「我用 GPT 写了个游戏」的浅显分享,真在四个小模型上跑出了博弈感,里面 vLLM 踩坑和防火墙测试方法可以直接抄作业。

正文 · AI 翻译

第二份 Build Small Hackathon 现场报告:当一个涌现经济体中每个智能体都运行在不同实验室的小模型上,而玩家成为幕后操盘的出资人时,会发生什么。

Thousand Token Wood 的第一个版本是一个天气之神沙盒:五只林地生物运行在一个微调过的 0.5B 模型上,彼此交易货物,你用冲击去戳这个世界,然后看着泡沫与崩盘涌现出来。那是个不错的玩具。但它也是你旁观而非游玩的东西。

v2 把它重构成了一个由你操作的游戏。你是林地的赞助人,一位影子出资人:你放贷收息,低声传递可能为真也可能是刻意散布的线报,做空市场,行贿,撮合联盟,而一位地方法官则因你利用本不该知道的信息交易而追捕你。那些生物会记得你如何对待它们,并反过来算计你。而最大的变化在底层:每只生物现在都用不同实验室的小模型来思考。这是工程报告。

异质性是产品本身,而非约束条件

运行一个智能体议事会最显而易见的方式是一个模型、多种提示词。v2 运行了四个:gpt-oss-20b(OpenAI)、MiniCPM3-4B(OpenBMB)、Nemotron-Mini-4B(NVIDIA),以及我自己微调的一个 Qwen 0.5B。重点不是为了新奇而新奇。当参与者真正彼此不同时,市场才有意思,而四个实验室的模型在不同数据上训练、经过不同的后训练,已经差不多是小模型所能达到的最大差异了。猫头鹰囤积的方式和狐狸投机的方式不同。这个议事会是一场鲜活的争论,而不是一份脚本。

把四个不同的模型部署在同一个平台上,揭示出了真正的教训:摩擦几乎完全出在服务层,而不是建模层。

  • 当前的 vLLM(0.22.1)在加载时对 kernel 进行 JIT 编译,并且需要 CUDA toolkit(nvcc)存在。精简的基础镜像并不包含它,所以四个模型都以完全相同的方式失败,报出 "could not find nvcc",直到我把它们基于 CUDA devel 镜像构建才解决。这不是 gpt-oss 的怪癖;这是该 vLLM 版本的普遍问题。一次镜像修复就解除了所有阻塞。
  • gpt-oss-20b 以其原生 MXFP4 量化运行,能装进一块 24GB 的 L4 且还有余量;不需要高端 GPU。它还使用一种 channel 格式,会把答案包裹在一段分析性前言中,因此消费方必须提取出最终的 channel。
  • MiniCPM3 需要 trust_remote_code;Nemotron 则顺利加载。每个模型各有各的坑,每个都只需一行配置。

让四个异构模型变得可驾驭的关键,与 v1 中让单个模型变得可驾驭的是同一个基础组件:一个容错的 JSON 解析与修复层,每个模型的输出都流经它。不同的 tokenizer 和格式化习惯会产生不同的畸形输出;解析器会丢弃无法挽救的部分,而模拟永远不会崩溃。把这个层构建一次,之后添加一个模型就只是一条配置项,而不是一次重构。

信息不对称需要一道防火墙

v2 的戏剧性核心在于内幕消息。你可以向一个生物低声透露一条消息,这条消息可以是真实的(对牌组接下来将抽出的下一轮市场狂热的真实预测,你真正的优势),也可以是虚假的(诱饵)。依据真实消息行动并获利会提升你的热度;一旦越过某个阈值,地方官就会启动调查,最终以罚款、冻结资产或流放收场。

要让这成为一个真正的游戏,消息的真假必须对生物保密。它们能看到传闻文本,但绝不能看到那个标记。这是一项安全属性,而非界面上的小细节,而小模型智能体让这一点变得尤为尖锐:模型能复述回来的一切,都只是你放进它提示词里的东西。因此,那个隐藏标记完全存在于提示词之外(存放在玩家的账本上),它在构造时就从公开事件记录中剥离,而叙述者唯一会总结的内容就是公开事件。有一个测试会扫描每个生物每一回合的完整提示词,查找被禁的 token。这个测试是整个测试套件中最重要的一个。当你把秘密信息交给一个智能体时,除非有测试证明它不会泄露,否则就要假定它一定会泄露。

只要加以约束,记忆就是廉价的戏剧张力

生物之间携带着持久的关系:对赞助人以及对彼此的一种带符号的情感倾向,会被各种事件轻轻推动(你做空了我的庄稼、你还了我的贷款、你把我拉去和一个对手结盟)。转为敌对的生物会拒绝你的贷款并给你报更差的价;结盟的生物则停止互相压价,表现得像一个卡特尔。

陷阱在于提示词膨胀。原始历史会无限制增长,小模型会淹没其中。解决办法是绝不把历史放进提示词:模型只看到一行分桶摘要(“你对 Oona 感到亲切,对 Patron 保持警惕”),上限为少数最强烈的情感,由整数情感值推导而来。笔记被保留用于追踪,但有界且从不展示。行为偏差一部分是涌现的(摘要会引导模型),一部分是机械的(一个强烈敌对的生物会确定性地拒绝),因此它是可观察、可测试的,而非一种期望。

实际发生了什么

一次具有代表性的议会运行,完整的 v2 机制全部启用:

杠杆 结果
参与议会的模型 4 个实验室,全部低于 32B 上限,部署在 Modal 上
微调后的 0.5B 可靠性 0% 自购,100% 有效报价(超越其 3B 教师模型)
真相防火墙 在所有扫描的提示词中,0 次泄露提示的隐藏标记
内幕消息优势 真实的提示预先布局能带来正的盈亏;虚假的提示则不能
升温至调查 两场干净的可疑胜利越过了地方法官的红线
毁灭 一次追加保证金通知和一次贷款违约放逐了一个生物,而它在后一章回归

一次单一固定种子的运行,端到端地演练了赞助人、信息战、人际关系和杠杆手段。

用小模型构建的经验教训

小模型是可靠的格式生成器,却是不可靠的推理者;你靠结构、提示词和一次小规模微调来弥合差距,而不是靠规模。异构的议事会比同构的更有意思,而且一旦服务层稳固,你只需付出配置成本。交给智能体的秘密信息是一个防火墙问题,而防火墙属于数据流,要靠测试来证明,而不是靠提示词指令。持久记忆是让智能体显得有生命力的最廉价方式,只要提示词始终只看到有界的摘要。

小模型,大冒险。整个议事会都是开放的,轨迹也是。

来源:Hugging Face:Blog(RSS) · huggingface.co