跳到正文
    Ertas
    Back to blog

    LLM 路由策略:降低前沿模型 API 成本

    比較六種 LLM 路由策略在成本、延遲和風險上的差異,涵蓋依任務靜態路由、規則、語意路由、學習型路由器、級聯和跨供應商備援,並提供影子測試、金絲雀發布和逐步放量的流量遷移方法,協助您把流量安全地交給更便宜的模型,同時依路由衡量升級率和單一成功任務成本。

    A pale astronomical impression in graphite and copper, with a soft amber penumbra on warm paper.Two fine engraved orbital fields crossing in deep space, with cool cyan light and a warm distant seam.

    LLM 路由降低前沿模型 API 成本的方式,是把每個請求交給能達到其品質標準的最便宜模型。依從簡單到複雜排列,主要策略有:依任務靜態路由、規則、語意路由、學習型路由器和級聯,另外以跨供應商備援確保可靠性。把流量遷移到更便宜的模型時,要分影子測試、金絲雀發布和逐步放量幾個階段進行,並以評估集把關。

    價格差距正是值得建置路由器的原因。截至 2026 年 10 月,OpenAI 的定價是 GPT-6 Astra 每百萬輸入 token 10 美元、每百萬輸出 token 50 美元,GPT-6 Luna 分別為 0.10 美元和 0.50 美元。Anthropic 的定價是 Claude Opus 5 為 5 美元和 25 美元,Claude Haiku 4.5 為 1 美元和 5 美元。路由器每把一個請求降到更低一級,這個請求就只按原價的一小部分計費。

    本指南比較各種策略,說明如何組合使用,並提供一套在流量遷移過程中維持品質穩定的方法。路由是我們 12 種 LLM 成本最佳化技術排名中的第 3 項,那篇文章也談了級聯的算術。我們之前關於 SLM 優先的 80/20 路由模式和如何在微調模型、API 與 RAG 之間選擇的文章討論的是架構。同一筆帳單的管理視角,請見如何降低企業的 AI token 成本。

    什麼是 LLM 路由?

    LLM 路由是位於應用程式和模型之間的一層,逐一為每個請求決定由哪個模型回答。應用程式把請求連同它掌握的相關資訊一起送出,路由器選定一個目標,例如某個前沿模型等級、更便宜的等級、另一家供應商或一個客製化模型,再以統一的格式回傳答案。

    「路由」這個詞底下其實有三個不同的決策,各自依據不同的訊號。

    決策回答的問題依據的訊號
    路由請求先交給哪個模型?任務標籤、請求屬性或內容
    升級答案不合格怎麼辦?對答案的檢查
    備援供應商出問題怎麼辦?錯誤、逾時和速率限制

    把三者分開,每一項都能依自己的標準測試。路由規則看單一任務成本,升級檢查看它攔下了多少壞答案,備援看它從故障中恢復得多快。

    路由器本身也有成本。靜態規則不會為每個請求增加任何開銷;語意路由器和學習型路由器會為每個請求多加一次嵌入或一次分類器推論;級聯則為每次升級多加一次 API 呼叫。這些成本和延遲都要從路由器帶來的節省裡扣除,所以能拿到大部分節省的最簡單策略,往往就是最佳解。

    LLM 路由策略有哪些?

    六種策略幾乎涵蓋了所有正式環境中的路由器。它們的差別在於依據什麼做決定、為每個請求增加什麼,以及出錯時是什麼樣子。

    策略決策依據每個請求的額外開銷主要風險
    依任務靜態路由任務標籤或端點無整個任務只用一個模型
    規則與啟發式請求屬性幾乎為零流量變化後規則失準
    語意路由與已標註範例的相似度一次嵌入請求相似但不同的請求被誤路由
    學習型路由器以結果訓練的分類器一次分類器推論路由出錯卻沒有錯誤訊息
    級聯對便宜模型答案的檢查每次升級多一次 API 呼叫升級請求的延遲
    跨供應商備援錯誤和逾時出問題前沒有備援模型的品質不同

    1. 依任務靜態路由

    為工作流程的每一步設一條獨立的路由,並在設定檔中固定每條路由使用的模型。一條客服流程可能要先為工單分類,再擷取訂單資訊,接著草擬回覆,最後為真人客服摘要案件。每一步都是一條單獨的路由,有自己的模型、自己的評估集和自己的單一任務成本。

    Code example
    # 工作流程每一步一條路由。每條路由都有自己的評估集和預算。
    ROUTES = {
        "classify_ticket": {"model": "gpt-6-luna", "fallback": "claude-haiku-4-5"},
        "extract_order": {"model": "claude-haiku-4-5", "fallback": "gpt-6.1-sol"},
        "draft_reply": {"model": "claude-sonnet-5-5", "fallback": "gpt-6.1-sol"},
        "case_summary": {"model": "claude-opus-5", "fallback": "gpt-6-astra"},
    }
    
    def route(task: str) -> dict:
        return ROUTES[task]

    這裡的模型名稱僅為範例。每一步該用的最便宜合格模型,要用這一步的評估集把每個候選模型都跑過一遍才能確定。

    靜態路由以最小的風險拿到了很大一部分節省。應用程式本來就知道自己處在哪一步,不需要任何猜測,每條路由也可以憑自己的證據單獨換成更便宜的模型。它的侷限在於粒度:一條路由上的所有請求都交給同一個模型,偶爾出現的難題也一樣,所以靜態路由很適合在每條路由內部再搭配一個級聯。

    2. 規則與啟發式

    規則依據應用程式在任何模型執行前就能讀到的屬性來路由:輸入長度、語言、文件類型、客戶等級,以及是否涉及附件或工具。像「超過 50,000 token 的輸入交給已經測過長上下文品質的模型」這樣的規則,執行成本低,除錯也容易。

    每條規則都隱含著一個關於哪些請求比較難的假設,而流量會在它底下不斷變化。記錄每個請求觸發了哪條規則,用它所管轄那部分流量的評估結果去檢驗每條規則,並把規則集控制在一位工程師能完整讀完的長度。

    3. 語意路由

    語意路由先為進來的請求產生嵌入向量,再與每條路由各自的一組已標註範例比較。相似度超過門檻時,請求交給範例最接近的那條路由;哪條都沒超過時,交給預設路由。

    它適合只有一個入口、卻要接收多種請求的情境,例如一個聊天框或一個收件信箱。代價是每個請求都多一次嵌入請求和相應的延遲。風險在於近似比對:一個看起來像例行請求、實際需要別種處理的請求。把預設路由設為前沿模型,門檻訂得嚴格一些,低於門檻的請求一律視為超出便宜路由的範圍。

    4. 學習型路由器

    學習型路由器是一個分類器,逐一為每個請求估計更便宜模型的答案是否可以接受。它以您自己流量中記錄下來的結果訓練:哪些請求上便宜模型的答案合格,哪些不合格。

    已發表的基準測試結果令人鼓舞。LMSYS 的研究人員在 2024 年發表的 RouteLLM,以人類偏好資料訓練路由器,在較強和較弱的兩個模型之間做選擇。論文指出,在多個廣受認可的基準上,某些情況下成本降低超過 2 倍,且不影響回答品質;在測試時更換強、弱模型後,這些路由器仍維持原有表現。

    放到您自己的流量上,任何路由器的估計都會在一部分請求上出錯,而一次誤路由只會產生一個更差的答案,不會有任何錯誤訊息提醒。只有在累積了來自自己流量的帶標籤結果之後,才去訓練路由器;在它後面保留對答案的檢查;並且每週抽查一部分路由決策,用評估集核對。

    5. 以驗證決定升級的級聯

    級聯先把一條路由上的每個請求交給更便宜的模型,檢查答案,檢查不通過時再升級到更強的模型。級聯的好壞取決於它的檢查,而最可靠的檢查是程式碼能夠執行的那些。

    • **Schema 檢查:**輸出可以解析,必填欄位齊全,列舉值落在允許的集合內。
    • **一致性檢查:**擷取出的合計數字對得上,引用的 ID 在您的資料庫裡存在,日期落在合理範圍內。
    • **範圍檢查:**輸入屬於便宜模型接受過評估的那個任務。
    • **信心訊號:**token 機率或模型自評的分數。它們比上面幾種檢查弱,只應作為多個依據之一。
    • **評審模型:**由第二個模型為答案評分。它能攔下更多問題,但每個被評審的請求都要為它付費。

    史丹佛大學的研究人員在 2023 年發表的 FrugalGPT,把 LLM 級聯列為降低推論成本的三類策略之一,並學習為每個查詢選用哪種模型組合。在其實驗中,它在成本最多降低 98% 的情況下,達到了當時最好的單一模型 GPT-4 的表現。

    具體算術請見我們排名中的第 3 項技術。如果便宜模型的價格是強模型的 5%,並有 30% 的請求升級,級聯的成本就是全部交給強模型時的 0.35。升級率決定節省多少,而且升級的請求要等兩個模型,所以級聯適合偶爾慢一點也可以接受的工作。

    困難的案例正是透過這個機制交給前沿模型的,判斷依據是請求發生時已有的資訊。當答案沒有通過檢查、請求超出這條路由的範圍,或者任務標籤直接把它送往前沿路由時,這個請求就被視為困難的案例。

    6. 跨供應商備援

    備援處理的是供應商出問題的情況。它之所以出現在一篇談成本的指南裡,是因為沒有備援的便宜路由是單點故障,第一次故障就可能讓團隊從此退回昂貴的預設模型。Anthropic 的 API 錯誤參考列出了 429 速率限制錯誤和 529 過載錯誤,並說明後者可能在所有使用者的流量都很高時出現。每家供應商都有類似的錯誤。

    為每條路由在第二家供應商配一個備援模型,在切換之前先做帶退避的重試,並加一個斷路器,在某家供應商持續出錯時停止對它送出請求。有兩個細節常常讓團隊吃虧。

    • **備援模型也必須通過這條路由的評估集。**一個從未在該任務上評估過的備援模型,會把一次看得見的故障換成一次沒人察覺的品質下降。
    • **提示快取只屬於各自的供應商。**在一家供應商快取的前綴,請求轉到另一家時就失去了快取折扣,所以要為故障切換期間的成本上升預留預算。

    同一份參考文件也建議逐步提高流量,以免在用量驟增後觸發加速限制。這也是要分階段遷移流量的另一個理由,下面的方法正是這樣做的。

    如何組合使用路由策略?

    大多數正式環境的路由器會疊加六種策略中的三種。依任務靜態路由選定路由,每條路由內部的級聯把沒通過檢查的答案升級,備援則為每個模型在第二家供應商準備好替代方案。

    示意圖:分層的 LLM 路由器。一個標籤為 extract_order 的請求抵達任務路由器,路由器讀取標籤後,把它送往三條路由之一:用 GPT-6 Luna 分類、用 Claude Haiku 4.5 擷取,或用 Claude Sonnet 5.5 草擬回覆。在擷取路由上,通過檢查的答案直接回傳,沒通過的升級到 Claude Opus 5。下方的橫條表示跨供應商備援:遇到速率限制、過載或逾時時,每條路由都會改用第二家供應商的備援模型重試。
    每一層都可以單獨測試和回滾,不影響另外兩層,這正是安全遷移一條路由的前提。

    只有當一個入口要接收多種請求時,才在前面加語意路由。只有當一條路由的流量夠大、帶標籤的結果夠多,讓更準確的首選省下的錢超過路由器本身的成本時,才為它加學習型路由器。

    您的情況從這裡開始
    工作流程中有多個不同步驟依任務靜態路由
    一個入口,多種請求語意路由,預設交給前沿模型
    答案可以由程式碼檢查在路由內部加級聯
    流量大且有帶標籤的結果在檢查之前加學習型路由器
    所有路由都依賴同一家供應商先準備好備援

    如何安全地把流量遷移到更便宜的模型?

    分階段遷移流量,每個階段何時推進由一道關卡決定。無論更便宜的目標是更低一級的前沿模型、另一家供應商的模型還是客製化模型,階段都一樣:離線評估、影子測試、金絲雀發布、逐步放量,最後是持續評分的穩定運作。

    階段誰能看到候選模型的答案推進的關卡
    離線評估沒有人;它回答重播的請求在評估集上達到標準
    影子測試沒有人;只在背景評分在真實流量上維持標準
    金絲雀發布一小部分使用者升級和客訴沒有增加
    逐步放量越來越多的使用者每一步所有關卡都守住
    穩定運作這條路由上的所有請求持續評分保持在標準之上

    **離線評估。**用候選模型重播一批預留的歷史請求,並依這條路由的評估集評分。這是成本最低的階段,大多數候選模型在這裡就會被淘汰。

    **影子測試。**在現有模型繼續回答的同時,把真實請求的副本在背景送給候選模型。使用者永遠看不到候選模型的輸出。對同一批請求的兩份答案都評分,就能看到候選模型如何應對評估集從未涵蓋的真實輸入。影子流量要付兩次費用,所以路由流量很大時只鏡像一部分樣本。

    **金絲雀發布。**讓候選模型處理百分之幾的真實請求,並把級聯的檢查放在它和使用者之間。沒通過檢查的答案會在同一個請求內退回現有的前沿模型,所以一個能力不足的候選模型只會表現為升級和延遲的上升,使用者拿到的仍是通過檢查的答案。

    **逐步放量。**分幾步提高比例,每一步都維持足夠長的時間,涵蓋一個完整的流量週期,例如包含月底的一整週。只有所有關卡都守住時才繼續推進。

    **穩定運作。**繼續抽取候選模型的一部分真實答案依評估集評分,回滾觸發條件也維持有效。一條路由可能在放量幾週之後才開始退化,例如輸入發生漂移,或者某個模型別名開始指向新版本。

    長條圖:在一個範例計畫中,真實請求先交給候選模型的比例。影子測試階段為 0%,因為候選模型只在背景評分。金絲雀發布階段為 5%,沒通過檢查的答案退回前沿模型。逐步放量階段先到 25%,再到 50%。穩定運作階段為 100%,困難的案例仍然升級到前沿模型。
    即使全面放量,前沿模型仍在每個請求的升級路徑上,所以帳單上始終保留一筆前沿模型費用,大小由升級率決定。

    回滾要自動執行,並且依路由進行。升級率高於基線、評估分數低於標準、p95 延遲超出這條路由的預算,或者備援率突然上升,任何一項發生,都應把這條路由的流量切回現有模型,再由人員排查原因。

    每條路由應該量測什麼?

    每條路由都要單獨量測,因為路由器的平均值會掩蓋那條正在虧錢或品質下滑的路由。每次 API 呼叫記錄一筆紀錄,寫明路由、階段和結果。

    Code example
    log.info("api_call", extra={
        "task_id": task_id,
        "route": "extract_order",
        "stage": "canary",  # offline、shadow、canary、ramp 或 steady
        "model": model,
        "input_tokens": usage.input_tokens,
        "output_tokens": usage.output_tokens,
        "cost_usd": cost,
        "check_passed": passed,
        "escalated": not passed,
        "latency_ms": elapsed_ms,
    })

    接著依路由和階段彙整這些紀錄。

    指標代表什麼何時處理
    升級率便宜模型完成不了的比例高於基線時
    單一成功任務成本含重試和升級的單位成本超出路由目標時
    評估分數標準是否仍然守住低於標準時
    p95 延遲等待時間,含升級超出路由預算時
    備援率供應商的健康狀況突然上升時

    一條路由值不值得保留,由單一成功任務成本決定。升級率高的便宜模型,每個升級請求都要為兩個模型付費;一次重試則讓同一個請求付兩次錢。我們關於單一任務成本與 AI 單位經濟的指南談了如何為每條路由設定目標,代理式 AI 成本最佳化則把同樣逐步分析的視角用在 AI 代理上,AI 代理每執行一步,都是一次路由決策。

    客製化模型在路由策略中處於什麼位置?

    客製化模型只是又一個路由目標,放進上面這些策略裡,什麼都不用改。依任務靜態路由為一個高流量任務單獨設一條路由,客製化模型成為這條路由上更便宜的目標,前沿模型留在它身後作為升級路徑,再用上面的流量遷移方法把這條路由遷過去。

    它的價值展現在其他目標都無法壓低帳單的地方:一個流量高且穩定的單一任務,即使用通過評估集的最便宜前沿等級,它的花費仍然超過您執行的其他一切。為單一工作訓練的模型只帶有這項工作需要的能力,所以服務成本更低,回應也更快。我們關於客製化模型何時在成本上勝過前沿 API 的分析,詳細計算了損益平衡點。

    在我們的 QMSum 研究中,一個為依查詢產生會議摘要而訓練的 1.2B 模型,估算服務成本為每次查詢 0.00053 美元,而依同步定價計算,Claude Opus 5 為 0.104 美元,GPT-5.6 Luna 為 0.0130 美元。它在單張 GPU 上的回應時間為 0.39 秒,Claude Opus 5 透過 API 為 9.0 秒。這個估算不含訓練成本,而且品質因任務而異,所以只有在客製化模型通過您的評估集之後,這條路由才會遷移。

    自適應模型端點替您把這條路由包裝好。自適應模型端點是為您的某一項任務提供的單一 API 端點:起初由前沿模型回答,用您的請求和團隊回饋訓練出的客製化模型在通過您的評估集後接手,困難的案例繼續留在前沿模型上。

    整條路由都在一個端點之後,所以無論背後發布多少個版本,您的路由器裡這個任務都只需要一筆設定。

    它在這一條路由上執行上面的流程。客製化模型的每個新版本都會在背景用真實請求執行,並依您的評估集評分,這就是影子測試階段。未經您的核准,什麼都不會切換;版本通過後,越來越多的請求轉給它,這就是金絲雀發布和逐步放量。困難的案例繼續交給前沿模型。我們監控模型,並隨著您的任務變化重新訓練,每個新版本都要通過同樣的關卡。該端點目前僅限受邀企業使用,我們正在開發一個更精簡的版本,讓更多企業可以接入。

    對您的路由器來說,採用它只需要把一條路由指向一個新的模型名稱。模型可以由 Ertas 代管執行,也可以部署在您的雲端或地端,並且歸您所有。

    常見問題

    什麼是 LLM 路由器?

    LLM 路由器是位於應用程式和模型之間的一層,為每個請求選定由哪個模型回答。它可以依據任務標籤、請求屬性、與已標註範例的相似度或一個訓練好的分類器來決定。大多數路由器也負責在答案沒通過檢查時升級,以及在供應商出問題時切換到備援。

    LLM 路由器會增加延遲嗎?

    靜態路由和規則幾乎不增加延遲,因為它們讀取的是應用程式已經掌握的資訊。語意路由會多一次嵌入請求,學習型路由器會多一次分類器推論。級聯在升級請求上增加得最多,因為這些請求要先後等待便宜模型和更強的模型。

    學習型路由器比路由規則更好嗎?

    當學習型路由器有了來自您流量的帶標籤結果可供學習時,它能做出比規則更細的決策;RouteLLM 在 2024 年指出,在基準測試中某些情況下成本降低超過 2 倍。規則執行成本更低,也更容易除錯。先從依任務靜態路由開始,只有當某條路由的流量夠大時,才為它加學習型路由器。

    如何在 OpenAI 和 Anthropic 的模型之間路由?

    在兩者前面放一個統一的介面,統一回應格式,並為每條路由配一個主要模型和一個在另一家供應商的備援模型。用這條路由的評估集測試它可能用到的每個模型,備援模型也不例外,並且要預期流量從一家供應商轉到另一家時,提示快取的折扣會重新計算。

    LLM 路由和 LLM 級聯有什麼差別?

    路由在任何模型執行之前,根據已知的請求資訊選定模型。級聯則先執行更便宜的模型,答案沒通過檢查時再升級到更強的模型。大多數正式系統兩者都用:用路由選定路由,再在路由內部用級聯。

    如何在不影響品質的前提下把流量遷移到更便宜的模型?

    分階段進行:先用重播的請求做離線評估,再在真實流量上做影子測試,然後對一小部分使用者做金絲雀發布,最後逐步放量。每個階段都以評估分數、升級率和延遲作為關卡,在每個請求內部保留前沿模型作為備援,並在任何關卡失守時自動回滾。

    簡短版

    先依任務路由,因為應用程式本來就知道自己處在哪一步。在程式碼能檢查答案的地方,為每條路由內部加一個級聯;為每個模型在第二家供應商準備好備援;只有在流量足以支付成本的地方,才加語意路由或學習型路由器。把流量遷移到任何更便宜的目標時都要分階段、以評估集把關,並在每條路由上量測單一成功任務成本。

    如果某一條路由佔了您 token 帳單的大宗,預約通話,我們和您一起評估。


    資料來源:OpenAI API 定價、Anthropic 定價、Anthropic API 錯誤參考、RouteLLM(Ong 等,2024)和 FrugalGPT(Chen、Zaharia 和 Zou,2023)。價格核實於 2026 年 10 月 6 日。