化實(shí)戰(zhàn):把單位 Token 成本降下來的六條路徑)
LLM 推理成本優(yōu)化實(shí)戰(zhàn)把單位 Token 成本降下來的六條路徑一、成本問題為什么是生產(chǎn)落地的頭號(hào)敵人很多團(tuán)隊(duì)在 Demo 階段從不擔(dān)心成本一旦進(jìn)入生產(chǎn)環(huán)境賬單會(huì)教做人。大模型服務(wù)的成本結(jié)構(gòu)里輸入 token 常常占總消耗的 80% 以上——而這部分大部分是幾乎不變的系統(tǒng)提示詞、知識(shí)庫(kù)片段和對(duì)話歷史。與此同時(shí)不同請(qǐng)求對(duì)模型能力的需求差異極大簡(jiǎn)單問答和復(fù)雜推理用同一個(gè)模型等于為 80% 的簡(jiǎn)單請(qǐng)求支付了 100% 的算力。本文整理六條經(jīng)過驗(yàn)證的成本優(yōu)化路徑從不換模型就能省到換架構(gòu)才能省按實(shí)施難度排序你可以根據(jù)自己的階段逐步落地。二、路徑一前綴緩存Prompt Caching——性價(jià)比最高的第一刀真實(shí)在線推理請(qǐng)求通常長(zhǎng)這樣System Prompt800 token 多輪歷史2000 token 新消息50 token。多輪對(duì)話的后續(xù)輪次、RAG 場(chǎng)景的文檔問答、模板批處理任務(wù)都存在大量共享前綴。如果每次都從頭重算這些前綴的 KV Cache浪費(fèi)巨大。vLLM 的自動(dòng)前綴緩存APC把 token 序列切成固定大小的塊默認(rèn) 16 token每個(gè)塊用鏈?zhǔn)焦Nㄒ粯?biāo)識(shí)維護(hù)全局哈希表新請(qǐng)求到達(dá)時(shí)逐個(gè)查哈希命中的塊直接引用物理塊只計(jì)算未命中的部分。實(shí)測(cè)效果多輪對(duì)話同會(huì)話前綴命中率 80%-95%后輪 prefill 時(shí)間趨近于零RAG 文檔問答命中率 60%-85%模板批量處理 1000 個(gè)相同模板請(qǐng)求只算一次前綴命中率 90%。實(shí)踐要點(diǎn)靜態(tài)內(nèi)容放前面系統(tǒng)指令、文檔放在 prompt 開頭動(dòng)態(tài)的用戶消息放后面避免前綴里有動(dòng)態(tài)元素時(shí)間戳、隨機(jī)數(shù)會(huì)讓整條緩存鏈?zhǔn)Х诺?prompt 末尾調(diào)大 gpu-memory-utilization 讓緩存池更大、LRU 淘汰更少。開啟方式–enable-prefix-cachingV1 引擎默認(rèn)開啟、–enable-prompt-tokens-details 可在 usage 里返回 cached_tokens 字段。云廠商同樣提供 prompt cachingDeepSeek 的上下文硬盤緩存、OpenAI 的自動(dòng)緩存緩存命中價(jià)格約為 1/10——命中部分按緩存價(jià)計(jì)費(fèi)長(zhǎng)期穩(wěn)定前綴的成本可以降到十分之一。三、路徑二模型分層路由——讓合適的模型干合適的活一個(gè)被嚴(yán)重低估的杠桿80% 的請(qǐng)求可能只需要小模型大模型只處理復(fù)雜子集。生產(chǎn)實(shí)踐中按任務(wù)復(fù)雜度路由到不同模型綜合成本能再降 40%。落地方式在網(wǎng)關(guān)層加一個(gè)路由決策器先讓一個(gè)小模型或規(guī)則對(duì)請(qǐng)求做分類——簡(jiǎn)單查詢天氣、FAQ、格式轉(zhuǎn)換走小模型復(fù)雜推理代碼生成、長(zhǎng)文分析、多步任務(wù)走大模型。也可以用級(jí)聯(lián)模式先小模型嘗試置信度低再升級(jí)到大模型。模型分層 前綴緩存組合成本可以降到原來的 1/10 以下。實(shí)測(cè)原則先統(tǒng)計(jì)你線上請(qǐng)求的分布——如果 60% 是短輸入短輸出的事實(shí)性問題換小模型的收益立竿見影。注意小模型選型要匹配任務(wù)中文場(chǎng)景 DeepSeek、Qwen 系列小模型效果已經(jīng)很能打。四、路徑三量化——顯存和帶寬雙降量化把權(quán)重從 FP16/BF16 壓到 INT8、INT4 等格式減少顯存占用和內(nèi)存帶寬。以 Qwen2.5-7B 為例FP16 約 14GBINT8 約 8GB精度損失極小INT4 約 4.5GB精度損失可接受。70B 級(jí)別模型 4-bit 量化把顯存需求從 140GB 降至 35GB。量化不是免費(fèi)午餐精度和兼容性要實(shí)際測(cè)試不要只看顯存下降。vLLM 原生支持 AWQ、GPTQ、FP8社區(qū)反饋 AWQ 略快于 GPTQ差距 5% 以內(nèi)。本地部署跑不動(dòng)完整精度模型時(shí)量化是最直接的方案量化后同樣的 GPU 能承載更多并發(fā)單位 token 成本隨之下降。五、路徑四KV Cache 優(yōu)化——長(zhǎng)上下文的隱形殺手KV Cache 是推理顯存占用的大頭大小和序列長(zhǎng)度成正比。越長(zhǎng)的對(duì)話、越大的并發(fā)KV Cache 越恐怖。優(yōu)化方向有三個(gè)KV Cache 量化對(duì) KV Cache 做低比特量化FP8、INT8幾乎不損失精度的情況下把顯存占用降低一半支持更長(zhǎng)上下文或更高并發(fā)。KV Cache 共享多個(gè)請(qǐng)求共享相同前綴system prompt、few-shot 示例時(shí)可以物理共享同一塊顯存——這正是 vLLM PagedAttention 的核心能力配合前綴緩存大幅降低重復(fù)計(jì)算。上下文管理應(yīng)用層的長(zhǎng)上下文不一定要全量傳給模型。生產(chǎn)經(jīng)驗(yàn)保留 system 消息和最近幾輪對(duì)話中間部分讓模型生成摘要既省 token 又不丟關(guān)鍵信息。RAG 場(chǎng)景更要控制送入的片段數(shù)量和長(zhǎng)度避免上下文窗口溢出和 token 浪費(fèi)。六、路徑五批處理與調(diào)度優(yōu)化——把 GPU 喂飽GPU 是成本的大頭喂飽 GPU 就是省錢。vLLM 的連續(xù)批處理Continuous Batching在 token 級(jí)別動(dòng)態(tài)調(diào)度請(qǐng)求生成完立刻釋放資源、新請(qǐng)求馬上補(bǔ)進(jìn)來GPU 幾乎一直在算有效 token。實(shí)測(cè)吞吐相比 HuggingFace Transformers 提升 24 倍同樣的 GPU 資源承載數(shù)倍請(qǐng)求量。Chunked Prefill 把長(zhǎng) prompt 拆成小塊避免一個(gè)超長(zhǎng)輸入獨(dú)占 GPU 數(shù)百毫秒卡住其他請(qǐng)求在線服務(wù)的延遲和吞吐同時(shí)受益。離線批處理按輸入長(zhǎng)度分組分批避免長(zhǎng)輸入讓 batch 里短輸入的 padding 變多max_tokens 按業(yè)務(wù)分開設(shè)置不要統(tǒng)一設(shè)很大。七、路徑六評(píng)估驅(qū)動(dòng)的成本治理成本優(yōu)化最怕省了錢丟了質(zhì)量。必須建立量化評(píng)估體系任務(wù)成功率、工具調(diào)用準(zhǔn)確率、答案忠誠(chéng)度、延遲P50/P95在優(yōu)化前后都要對(duì)比。沒有評(píng)測(cè)集就上線等于裸奔??捎^測(cè)性必須埋點(diǎn)每條請(qǐng)求記錄 trace_id、調(diào)用的模型、輸入/輸出 token 數(shù)、延遲和成本。用 LangSmith、Langfuse、Phoenix 追蹤完整鏈路。建立 token 成本預(yù)算和告警按天/按用戶/按場(chǎng)景統(tǒng)計(jì)成本異常突增時(shí)能定位到具體功能。RAG 應(yīng)用里輸入 token 常常占總消耗的 80% 以上其中大部分是幾乎不變的系統(tǒng)提示詞和知識(shí)庫(kù)片段——前綴緩存 模型分層是優(yōu)先級(jí)最高的兩刀。八、計(jì)費(fèi)與監(jiān)控的實(shí)操細(xì)節(jié)自托管推理的計(jì)費(fèi)有深坑緩存命中 token 你的實(shí)際成本是正常價(jià)的 1/10 甚至更低但用戶按全量 prompt_tokens 計(jì)費(fèi)——prompt_tokens 是用戶計(jì)費(fèi)基礎(chǔ)cached_tokens 是你的實(shí)際成本基礎(chǔ)中間差價(jià)就是自托管服務(wù)的利潤(rùn)空間。中間件應(yīng)該同時(shí)記錄兩個(gè)字段。監(jiān)控指標(biāo)前綴緩存命中率用 PromQLrate(vllm_prefix_cache_hits[5m]) / rate(vllm_prefix_cache_queries[5m])、KV Cache 內(nèi)存塊命中率90% 為優(yōu)、批處理效率有效 token 占比、單位請(qǐng)求成本。命中率偏低時(shí)檢查前綴是否被動(dòng)態(tài)內(nèi)容污染、緩存池是否太小、模板是否沒放在 prompt 開頭。九、綜合案例一個(gè) RAG 應(yīng)用的降本路徑一個(gè)典型的企業(yè) RAG 問答應(yīng)用優(yōu)化前每請(qǐng)求約消耗 4000 輸入 token 200 輸出 token成本大頭在知識(shí)庫(kù)片段和系統(tǒng)提示詞。降本路徑第一步開前綴緩存系統(tǒng)提示詞 高頻文檔片段命中后輸入成本降到原來的 1/10第二步模型分層簡(jiǎn)單 FAQ 走小模型復(fù)雜分析走大模型綜合再降 40%第三步控制檢索數(shù)量Top-K 從 8 收到 3-5減少無效片段第四步上下文壓縮長(zhǎng)片段先生成摘要再拼接。四步疊加單位請(qǐng)求成本通常能降到原來的 1/20 以內(nèi)而評(píng)測(cè)指標(biāo)答案忠誠(chéng)度、相關(guān)性保持不降。十、寫在最后成本優(yōu)化的核心不是摳門而是讓每一分算力都產(chǎn)生價(jià)值。優(yōu)先做不換架構(gòu)就能生效的優(yōu)化前綴緩存、上下文壓縮、檢索數(shù)量控制再逐步引入架構(gòu)級(jí)優(yōu)化模型分層、量化、批處理調(diào)優(yōu)。每一步優(yōu)化都要用評(píng)估數(shù)據(jù)驗(yàn)證防止省了錢丟了質(zhì)量。記住推理成本的可控性本身就是企業(yè)級(jí) LLM 應(yīng)用的競(jìng)爭(zhēng)力之一。