基本概念)
4.1 Token、分詞與逆分詞——模型不認識“文字”只認識編號人類輸入的是自然語言漢字、英文、標點、空格但大模型只能處理數(shù)字張量。所有文本進入模型前必須經(jīng)過**分詞器Tokenizer**完成轉(zhuǎn)換文本 → Token片段 → 整型Token ID。模型全程只根據(jù) Token ID 計算完全不認識原始文字。Token 定義模型語義處理的最小基本單元不可再拆分。糾正新手模糊認知英文/數(shù)字多為詞根、詞綴拆分一個長單詞會被拆為多個 Token例如 ChatGPT → Chat、GPT中文絕大多數(shù)情況下單字對應一個 Token極少多字合并標點、空格、換行、特殊符號全部獨立占用 Token會實打?qū)嵪纳舷挛拈L度。分詞器核心工作流程分詞Tokenize原始文本切割為模型預定義的子詞片段 → 查表映射為唯一整型ID逆分詞Detokenize模型輸出的Token ID序列 → 拼接還原為人類可讀文本。這里有個坑每一個模型必須配套專屬分詞器與專屬詞表Vocab。LLaMA 使用 SentencePiece、GPT 系列使用 BPE、GLM/Qwen 有自定義詞表。絕對不能跨模型混用分詞器否則Token ID完全錯亂語義徹底崩壞模型生成亂碼、胡說八道。詞表大小與推理性能的強關聯(lián)重點補強詞表大小Vocab Size直接決定最后一層 LM Head 的計算量與顯存開銷LLaMA232000 詞表Qwen151643 超大詞表GPT-4 級模型十萬級超大詞表。詞表越大LM Head 矩陣乘法維度越高單Token推理延遲越高、顯存占用越大。這也是 Qwen 推理同參數(shù)下比 LLaMA 略慢的核心原因之一。工業(yè)界會通過詞表裁剪、動態(tài)Vocab、LM Head優(yōu)化提速。4.2 詞嵌入與模型權重——模型的知識是怎么存儲的Token ID 只是一個純數(shù)字編號如 1234、5678沒有任何語義信息無法直接參與矩陣運算。模型需要把離散的整型 ID 映射為連續(xù)、稠密、攜帶語義的浮點向量這個過程就是詞嵌入Embedding。1. 嵌入層Embedding Layer本質(zhì)嵌入層就是一張巨大的可學習參數(shù)表[vocab_size, hidden_dim]。以 LLaMA-7B 舉例Vocab32000Hidden_dim4096嵌入層參數(shù)總量 32000 × 4096 ≈ 1.3億參數(shù)。查表邏輯輸入Token ID直接索引對應向量作為模型首層輸入。語義知識的底層基礎全部存儲在嵌入向量中。2. 模型權重Weight完整定義模型權重指訓練完成后全部凍結的可學習參數(shù)集合推理階段全程固定、不更新、不訓練。包含Embedding 嵌入權重每一層Transformer的 Q/K/V 投影權重、輸出投影權重FFN 兩層/三層門控權重SwiGLURMSNorm/LayerNorm 的縮放與偏置參數(shù)最終 LM Head 輸出權重。顯存占用硬核結論LLaMA-7B 共70億參數(shù)FP162字節(jié)/參數(shù)權重體積≈14GBINT81字節(jié)≈7GBINT40.5字節(jié)≈3.5GB。權重精度直接決定模型底顯存占用這是量化優(yōu)化的根基。推理全過程總結固定權重 動態(tài)輸入Token向量迭代計算 → 每步輸出新Token概率分布。所有推理優(yōu)化量化、算子融合、KV Cache、分頁注意力本質(zhì)都是更省顯存、更少訪存、更少冗余計算。4.3 LM Head 與 Logits——模型生成的最后一關經(jīng)過多層Transformer計算后模型得到當前時刻的隱藏層特征向量[B, D]這個向量是語義特征不能直接輸出文字。LM Head 精準作用通過一次線性變換將隱藏維度 D 映射到詞表維度 Vocab得到原始分數(shù) Logits。Logits Hidden × W_headLogits 是無界實數(shù)可正可負不滿足概率性質(zhì)無法直接采樣。必須經(jīng)過Softmax歸一化將值域壓縮到 [0,1] 且總和為1得到Token概率分布。為什么要Softmax不是“為了好看”是因為自回歸采樣算法必須基于合法概率分布TopK/TopP/Temperature全部依賴概率權重。權重綁定Weight Tying工程優(yōu)化大量開源模型LLaMA、Qwen做了Embedding與LM Head權重共享因為兩者形狀完全一致[Vocab, Hidden_dim]。收益節(jié)省大量參數(shù)與顯存、減少冗余計算、提升收斂與推理速度。這也是大模型輕量化的經(jīng)典基礎優(yōu)化。推理延遲真相超長詞表模型LM Head Softmax 會成為新的性能瓶頸很多人以為注意力最慢大詞表模型最后一層開銷占比極高。4.4 自回歸生成原理——Prefill與Decode的本質(zhì)差異1. 原始未優(yōu)化邏輯“原始未優(yōu)化邏輯在數(shù)學上等價于**‘每次重寫整本歷史書’**。它每一步都要把變長的上下文塞進巨大的方陣注意力中導致總計算量隨輸出長度呈立方級增長。這使得生成 128 個 Token 或許尚可忍受但當生成長度達到 2048 時計算量爆炸會直接導致延遲失控和顯存溢出——因此任何落地的 LLM 系統(tǒng)都必須引入 KV Cache 來打破這一僵局。”2. 工業(yè)真實推理雙階段階段一Prefill 預填充階段輸入Prompt階段一次性輸入完整Prompt序列全局并行計算一次性算出所有位置的 KV 并緩存。特點計算量大、訪存密集、并行度極高、速度快作用生成第一個新Token同時建好KV Cache緩存。階段二Decode 逐Token解碼階段循環(huán)生成階段后續(xù)每一步只輸入最新一個Token復用 Prefill 階段的全部歷史 KV Cache不需要重算過往上下文。特點計算量極小、迭代頻繁、訪存瓶頸極強是線上推理耗時、成本、顯存占用的絕對主力。結論沒有KV Cache推理計算量是O(L2)完全不可用有KV CachePrefillO(L2)DecodeO(L)。所有大模型推理優(yōu)化本質(zhì)都是優(yōu)化Prefill并行效率 極致壓低Decode單步延遲與顯存開銷。所有針對 Decode 的優(yōu)化量化、PagedAttention、算子融合本質(zhì)上都是在“以時間換空間”或“以計算換搬運”自回歸邏輯Prefill一次性讀完問題、建好緩存Decode每次只算一個新字、拼在后面、循環(huán)迭代、直到結束。4.5 推理停止條件——生產(chǎn)級多維度終止策略模型自回歸生成是無限循環(huán)過程必須設置多層級、兜底式停止條件否則會無限生成、耗盡顯存、觸發(fā)接口超時、造成線上事故。1. 核心終止條件EOS 結束符邏輯終止訓練階段模型學習到在語義完整、語句結束時輸出eos或/s等特殊 Token。推理時一旦采樣到 EOS應立即終止生成并在后處理中剔除該 Token 再返回用戶。存在問題模型在長文本、亂序 Prompt、低質(zhì)量輸入等場景下經(jīng)常失效不輸出 EOS表現(xiàn)為語義已完整但模型仍在繼續(xù)“硬編”。因此僅靠 EOS 完全不可靠必須疊加硬限制。2. 硬兜底終止max_new_tokens長度限制限制模型最多生成多少個新Token與輸入Prompt長度無關。生產(chǎn)環(huán)境必須強制配置是防止無限生成的第一道安全鎖。# Hugging Face / vLLM 標準用法max_new_tokens512# 絕對不能省略3. 業(yè)務自定義停止詞Stop Words針對結構化輸出場景JSON、代碼、對話回合可自定義終止字符串例如} # JSON 對象結束 ### # 章節(jié)分隔 /s # 顯式終止標記 |user| # 對話中下一輪開始引擎會實時匹配當前輸出后綴命中即截斷終止大幅提升結構化任務準確率避免模型“畫蛇添足”。4. 生產(chǎn)環(huán)境工程規(guī)則最大總長度限制必須同時限制 Prompt 長度和生成長度否則兩者疊加可能觸發(fā) OOMmax_seq_len8192# 模型支持的最大序列長度max_prompt_len4096# 截斷過長的用戶輸入max_new_tokens2048# 預留一半空間給輸出特殊控制Token過濾對話模型中的系統(tǒng) Token如|user|、|assistant|、|system|、PAD等屬于通信協(xié)議內(nèi)部標記推理后處理必須過濾絕對不能返回給用戶。重復懲罰終止模型易陷入“復讀機”狀態(tài)如“我是我是是的是的”生產(chǎn)中通常配置機制類型說明repetition_penalty軟約束修改 Logits 概率分布壓低重復 Token 的采樣概率不終止生成循環(huán)檢測硬截斷硬約束檢測到連續(xù)重復 N 次相同的 Token 序列如連續(xù) 3 次相同的 10 個 Token強行終止屬于兜底物理防護5.絕對物理超時Timeout以上所有策略均基于 Token 邏輯當模型陷入 GPU 卡死或無限循環(huán)不產(chǎn)生新 Token時邏輯層失效必須靠物理熔斷# FastAPI / Uvicorn 層timeout120# 秒強制終止該請求的 CUDA 內(nèi)核6.顯存水位熔斷在請求準入層實施 Admission Control預估 KV Cache 激活值 權重總和若超過顯存閾值如 90%直接拒絕新請求防止 OOM 拖垮整個進程ifrequired_kv_cache_memallocatedtotal_gpu_mem*0.9:raiseResourceExhausted(GPU memory insufficient, reject request)7.各條件執(zhí)行優(yōu)先級工程紅線在代碼執(zhí)行流中停止條件的觸發(fā)順序嚴格分層最高優(yōu)先級物理層 │ ├── 顯存 OOM系統(tǒng)強制中止不可控 │ ├── 物理時鐘超時GPU Kernel 熔斷 │ ▼ 次高優(yōu)先級引擎層 │ ├── max_new_tokens 計數(shù)器歸零 ← 第一道邏輯閘門 │ ├── 匹配 stop_strings業(yè)務停止詞 │ ▼ 最低優(yōu)先級模型層 │ └── 采樣到 EOS優(yōu)雅語義終止最理想情況關鍵事實max_new_tokens的優(yōu)先級高于EOS。若max_new_tokens128模型在第 50 步輸出 EOS → 優(yōu)雅終止若一直不輸出 EOS → 計數(shù)達 128 時硬性截斷絕不超 1 個 Token。8.完整防護體系架構圖┌─────────────────────────────────────────────────────────────────┐ │ 用戶請求準入層 │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 顯存水位檢查Admission Control→ 拒絕或排隊 │ │ │ └─────────────────────────────────────────────────────────┘ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 總長度限制截斷 Prompt 到 max_prompt_len │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ 自回歸生成循環(huán) │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 每步解碼 → 采樣 Logits │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌───────────┴───────────┐ │ │ ▼ ▼ │ │ ┌─────────────────────┐ ┌─────────────────────┐ │ │ │ 命中 EOS │ │ 達到 max_new_tokens│ │ │ │ → 優(yōu)雅終止 │ │ → 硬截斷 │ │ │ └─────────────────────┘ └─────────────────────┘ │ │ │ │ │ │ └───────────┬───────────┘ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 停止詞匹配檢查輸出后綴是否匹配 stop_strings │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌───────────┴───────────┐ │ │ ▼ ▼ │ │ ┌─────────────────────┐ ┌─────────────────────┐ │ │ │ 重復循環(huán)檢測 │ │ 物理時鐘超時 │ │ │ │ → 強行終止 │ │ → 熔斷終止 │ │ │ └─────────────────────┘ └─────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ 后處理輸出層 │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 1. 剔除 EOS Token │ │ │ │ 2. 過濾 |user|、|assistant|、PAD 等系統(tǒng) Token │ │ │ │ 3. 剔除 stop_strings 匹配的后綴部分 │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘核心總結層級策略作用邏輯層EOS 結束符語義完整時優(yōu)雅終止最理想情況引擎層max_new_tokens防止無限生成的第一道安全鎖業(yè)務層自定義停止詞結構化輸出的精準截斷規(guī)則層重復檢測 / 特殊 Token 過濾后處理保障輸出干凈度系統(tǒng)層物理超時 / 顯存水位熔斷最終兜底防止服務雪崩總結EOS 做優(yōu)雅終止max_tokens 做硬兜底stop_words 做業(yè)務定制Timeout 顯存熔斷做物理防護后處理做干凈輸出——五層保障才是線上可用的推理服務。本章總結模型只認Token ID分詞器、詞表、模型三者必須嚴格配套嵌入層把數(shù)字ID轉(zhuǎn)為語義向量權重是模型全部靜態(tài)知識Logits是原始分數(shù)Softmax生成概率分布詞表大小直接影響推理速度真實推理分為 Prefill并行、算全局/ Decode迭代、訪存瓶頸兩個階段KV Cache徹底改寫計算復雜度生產(chǎn)級推理必須多層停止條件兜底不能依賴模型自發(fā)EOS。