DeltaMedia
2026-07-21
開源生態

異質性是產品:四間實驗室的小模型議會,工程教訓全在 serving 層

v1 的 Thousand Token Wood 是個沙盒:五隻森林動物共用一個微調過的 0.

異質性是產品:四間實驗室的小模型議會,工程教訓全在 serving 層

v1 的 Thousand Token Wood 是個沙盒:五隻森林動物共用一個微調過的 0.5B 模型,交易、囤貨、在衝擊下崩盤,你是觀眾,負責調參、觀看泡沫生成。它驗證了多 agent 經濟體的可行性,但本質上是個展示品。

v2 把觀眾席拆掉了。你現在是「庇護者」,一個影子金融家:放貸收息、散播真假消息、放空市場、行賄、撮合同盟,同時一名地方官員正在追查你的內線交易。動物角色記住你對它們的態度,並且策謀反擊。遊戲性完全不同,但最關鍵的改變在引擎蓋底下。

每個角色現在由不同實驗室的小模型驅動:gpt-oss-20b(OpenAI)、MiniCPM3-4B(OpenBMB)、Nemotron-Mini-4B(NVIDIA),加上作者自家微調的 Qwen 0.5B。四個模型,四套訓練資料,四種 post-training 哲學。

這不是為了新奇。作者的論點是:一個值得玩的市場,參與者必須真的不同。用同一個模型配不同 prompt,只是在模仿差異;用四個實驗室的模型,得到的是不同的歸納偏差、不同的風險傾向、不同的語言習慣。貓頭鷹囤積的方式和狐狸投機的方式,在生成層就已分道揚鑣。議會是真正的爭論,而不是一個聲音的獨白。

把四個來源各異的模型同時跑在一個平台上,才是真正的工程挑戰。作者的結論清楚:摩擦幾乎全發生在 serving 層,而非 modeling 層。以下是具體的坑。

第一個坑是環境。vLLM 0.22.1 在載入時會 JIT 編譯 kernel,這個過程需要 nvcc(CUDA toolkit 的編譯器)。標準的精簡 base image 不附帶 nvcc,結果四個模型全數以相同錯誤訊息失敗,「could not find nvcc」。這不是某個模型的特殊問題,而是當前 vLLM 版本對環境的統一要求。解法是換用 CUDA devel image,一個動作解開全部封鎖。

第二個坑在 gpt-oss-20b 的輸出格式。它以原生 MXFP4 量化執行,可以跑在 24GB 顯存的 L4 GPU 上還有餘裕,對想用中階硬體跑 20B 級模型的團隊,這是個值得注意的數據點。但它的回答被包在一個分析前言(analysis preamble)裡,呼叫端必須自行從 channel 格式中提取最終答案,否則會拿到整段結構而非乾淨回應。

第三個坑是 MiniCPM3-4B,它需要在載入時傳入 `trust_remote_code=True`,否則無法執行。Nemotron-Mini-4B 則沒有這個要求,乾淨載入。每個模型各有各的一行 config 陷阱,不事先讀 model card 就會逐一踩到。

讓四個異質模型在同一個系統裡協作的關鍵黏合劑,是一個容錯的 JSON 解析與修復層。不同的 tokenizer 和格式習慣會產生不同的輸出形狀,但所有模型的輸出都流經同一個修復管線,上層邏輯不必為每個模型分別寫解析器。這個層在 v1 就存在,v2 證明它同樣能撐住異質輸出。

對做多模型 agent 的團隊,這份工程報告等於一份避坑清單。基礎設施層先確認 vLLM 版本對 nvcc 的依賴,devel image 是最省時的選擇;每個模型的輸出格式要獨立測試,格式差異不代表模型有問題,只是實驗室慣例不同,需要在 parsing 層處理;`trust_remote_code` 這類設定要提前確認,別留到 production 部署時才踩。

更深層的推論是:異質性值得刻意設計。用不同訓練背景的模型組成決策群體,理論上可以讓系統具備真正意義上的多元觀點,而非同一個模型扮演多角色的自言自語。這對需要多元判斷的 agent 架構(金融模擬也好,市場分析也好)看起來是個值得驗證的方向。代價是 serving 層的複雜度,但如作者所示,這些複雜度大多有解,而且解法往往只要一行。

相關公司 OpenAI Nvidia Alibaba
本文由 DeltaMedia 編輯團隊審核後發布 · 編輯原則