2024 年,LMSYS 發表了一個叫 RouteLLM 的研究。做法是在模型前面放一個分流器:每個問題進來,先判斷它夠不夠難,難的交給 GPT-4 Turbo,簡單的交給便宜很多的 Mixtral 8x7B。
研究團隊公布的結果裡,最常被引用的是 MT Bench 這組對話題:成本比全部丟給 GPT-4 少了八成五以上,分數還維持在 GPT-4 的九成五。這是分數的比值,不是答對率,而 Mixtral 自己跑的分數本來就不低。
同一份結果的另外兩組數字比較少人提:MMLU 知識題省了 45%,GSM8K 數學題只省了 35%。研究團隊給的解釋在分流器身上:它是用聊天資料訓練的,碰到知識題時判斷得幾乎跟亂猜差不多,補進這類題目的資料之後才明顯改善。
能省多少,很大一部分取決於負責分流的那一方,看不看得懂這類工作。
醫療系統很早就面對過同一個問題。
醫學中心的醫生和病床是最稀缺的資源。如果每個感冒都擠去醫學中心,重症病人反而排不到。所以很多國家的醫療制度都有分級的設計,一般的病先看基層診所,診所處理不了再轉診到大醫院。台灣的健保從 2017 年起推動分級醫療,沒有轉診就直接去醫學中心看門診,部分負擔比較高。
分級的重點不是大醫院比較好,是它的量能要留給真正需要的人。大多數的病,本來就在診所的能力範圍內。
Claude Code 可以用的模型不只一個。haiku 快又便宜,適合簡單任務;sonnet 適合日常寫程式;opus 處理複雜推理;更高一階還有處理最難、最長任務的 fable。打 /model 就能切換,沒改過設定的話,就走帳號方案的預設模型。
有一種分級是依工作的階段。plan mode 是先規劃、不動檔案的模式,用 Shift+Tab 在幾種模式之間切換就能進去。搭配 opusplan 這個設定,規劃時用 Opus 想清楚架構和做法,切回執行時自動換成 Sonnet,照著計畫寫程式。
另一種分級是依工作的類型。Day 11 講過,Claude Code 可以把一件事交給 subagent。自訂的 subagent 可以在設定裡寫明要用哪個模型,主模型派出分身時也能替它挑。要注意的是,沒有另外設定時,分身會沿用主對話的模型,不會自動換成便宜的。搜尋檔案、摘要文件這種工作,明確指定 haiku 才省得到。
同一個模型裡面也能分級。/effort 調整的是模型思考的深度,從 low 往上到 max。官方文件的建議是:範圍小、要求速度的任務用 low;在意成本的工作用 medium,這也是 Opus 5.5 的預設值;max 則容易想太多,建議先試過再大量使用。文件還提到,在 Anthropic 針對程式和知識工作的測試中,Opus 5.5 用 medium 就能追上或超過上一代 Opus 5 用 high 的表現。
這個類比有一個地方會斷。
診所醫生看到超出能力的病,會主動開轉診單。小模型不會。haiku 碰到超出能力的問題,通常不會說「這題請交給 opus」,而是照樣交出一份答案。Claude Code 少數會自動換模型的情況,例如服務過載時改用備援模型,都跟題目難不難無關。
所以分流的判斷得在前面做。opusplan 是用工作階段替你判斷,subagent 的模型設定是用任務類型替你判斷,其餘時候,判斷的是使用者自己。
判斷的方式可以很簡單:這件事做錯了,代價是什麼?
改一個錯字、找一個檔案,做錯了一眼就看得出來,重來也只要幾秒,用小模型、低 effort 就好。設計資料庫結構、找一個跨模組的 bug、決定 API 的形狀,做錯了可能幾天後才發現,改起來牽一髮動全身,就值得用最強的模型想清楚。
往下分錯的代價最明顯。難題交給小模型,它交出一份看起來完整、其實方向錯的答案,接著是檢查、發現不對、重做。算下來花的時間和 token,常常比一開始就交給強模型還多。在寫程式的情境裡,一個被分錯的任務,可能就是一個上線後才爆的 bug。
往上分錯的代價比較隱形,但一樣存在。什麼都丟給最強的模型、把 effort 開到最高,額度會提早用完,簡單的任務還可能被想得太複雜、改得太多。這正是分級醫療想避免的另一種失控:大家都擠去醫學中心,最後排不到的是重症。
RouteLLM 的「九成五」也該這樣讀。那不是意外,是研究團隊挑來報告的一個取捨點:分流的門檻往一個方向調,省得多、品質掉;往另一個方向調,省得少、品質回來。分流從來不是找到一個不會錯的方法,而是決定願意用多少品質換多少成本。
醫療系統花了幾十年才建立起分級轉診,因為最好的醫生和病床永遠不夠所有人用。AI 工具現在碰到的是同一個限制,只是稀缺的東西換成了旗艦模型的額度和 token。
診所醫生不會把每個咳嗽的病人都轉去醫學中心,也不會把胸痛的病人留在診間觀察。用 Claude Code 需要的,是同一種判斷。
延伸閱讀