
大語言模型底層原理全解析從Token生成到智能體演進當我們熟練地調(diào)用 ChatGPT、DeepSeek 或千問的 API 時可曾想過模型背后并非“思考”而是在進行一場精密且瘋狂的數(shù)學運算這一系列課堂筆記將帶大家穿透黑盒看清 LLM 從“說第一個字”到“進化為機器人”的完整旅程。一、核心工作原理一場“滾雪球”式的概率游戲大語言模型LLM interaction 的流程可以極度簡化為三段式Prompt → LLM → Token。用戶輸入的指令叫做提示詞Prompt。比如問“什么是大語言模型”這句話就是 Prompt。模型拿到后并不會直接“理解”這句話而是做一道數(shù)學題基于當前詞表計算下一個最應該出現(xiàn)的詞元Token。1.1 Token 的本質(zhì)“詞”而非“字”這里老師特別強調(diào)了一個易錯點模型生成的最小單位是Token詞元/代幣它通常是一個詞而非單個漢字。例如“我愛北京天安門”中每個詞可能對應一個或多個 Token“西紅柿炒雞蛋”里“西紅柿”“炒”“雞蛋”各自可能是獨立的 Token。老師用“這件衣服很漂亮”與“這件衣服很帥氣”舉例說明模型會根據(jù)上文計算概率為后續(xù)拼接不同的詞語。1.2 自回歸生成像滾雪球一樣循環(huán)模型的工作方式是自回歸Auto-regressive用老師的話說就是“滾雪球”。以“中國的首都是哪里”為例課堂上的推演非常經(jīng)典模型一通概率計算發(fā)現(xiàn)下一個概率最高的 Token 是“北”但它不會停而是把“中國的首都是哪里 北”作為新的輸入再次喂給自己模型繼續(xù)算得出下一個高概率 Token 是“京”再把“中國的首都是哪里 北京”拼回去模型判斷句子完整于是輸出句號或特殊的EOSEnd of Sentence結(jié)束標記最終整段回答是由這一個個 Token 依次拼接而成的。老師形象地說道這個過程如同滾雪球上一步生成的內(nèi)容會反饋回模型成為生成下一步的語境。1.3 Token 的選擇策略不只“選最像的”那么模型如何從動輒 10 萬 的詞表中挑選下一個 Token課堂上介紹了從“最老實”到“最天馬行空”的幾種策略貪婪策略Greedy Search每次都選概率最高的那個。好處是結(jié)果固定、穩(wěn)定壞處是缺乏多樣性無法解釋為什么同一個問題偶爾會給出不同回答。隨機策略像擲骰子、抽撲克牌一樣完全隨機選。極具不確定性現(xiàn)實里基本不單獨使用。溫度系數(shù)Temperature這是控制“貪婪”與“隨機”之間平衡的旋鈕。低溫傾向選高概率 Token適合數(shù)學題等邏輯性強、答案唯一的場景高溫增加低概率詞被選中的機會回答更發(fā)散適合創(chuàng)意寫作。老師補充很多可視化平臺里的“邏輯性強”或“發(fā)散思維”選項底層其實就是調(diào)節(jié) Temperature只是加了一層遮罩。Top-K 采樣只從概率最高的前 K 個如前 50 個Token 里選縮小候選范圍過濾掉極低概率的不合理詞匯。Top-P 核采樣Nucleus Sampling動態(tài)選擇累積概率達到閾值 P如 0.9的最小 Token 集合。與 Top-K 固定數(shù)量不同Top-P 固定的是“概率質(zhì)量”。老師舉了一個直觀的例子如果是“112”“2”的概率可能占 99%此時 Top-P 可能只選 1 個詞如果概率分布均勻則可能選數(shù)千個詞。綜合流程課堂零碎知識點實際應用中往往是組合拳——先 Top-P 縮小范圍再 Top-K 篩選最后結(jié)合 Temperature 做加權(quán)隨機選擇。在選定候選集后還會對其概率進行重新歸一化放大至 100%再依據(jù)溫度系數(shù)抽樣。這個“概率重校準”的細節(jié)是很多初學者容易忽略的。二、認識 Token模型的“原子”與經(jīng)濟賬本理解了生成機制后課程進入了更微觀的層面Token 到底是什么為什么模型非得用 Token 說話2.1 Token 的形態(tài)與分詞差異Token 是模型處理的最小基本單位不可再分。它的形態(tài)多樣一個完整的英文單詞如 believe中文里的一個字單詞的一部分子詞單元標點符號、表情符號老師特別提到“一個笑臉也是一個 Token”所以模型能生成表情。課堂上用實際工具對比了分詞差異這些例子非常經(jīng)典值得記住英文“Believe”在 GPT-4 和 GPT-5 中都被切分為 3 個 Token但切分位置和 Token ID 并不完全相同中文“我愛大模型開發(fā)”在 GPT-4 中是 4 個 Token老師提到當時測試還出現(xiàn)了亂碼而在千問Qwen模型中則是 5 個 Token。這說明不同模型擁有獨立的詞表和分詞策略Token ID 對應的就是模型內(nèi)部的“字典頁碼”。2.2 為什么非要引入 Token 機制老師歸納了兩大核心原因第一數(shù)字化與語義保留。大模型底層是復雜的矩陣運算必須把文本轉(zhuǎn)成向量。如果直接把整句“我愛你”映射為一個 ID會丟失內(nèi)部詞匯的組合關(guān)系。拆成“我”“愛”“你”三個 Token模型才能學會“我”和“你”之間可以放“愛”或“喜歡”從而保留語義靈活性。第二避免計算量與詞表爆炸。若以單個字母為基本單位雖然基數(shù)只有 26 個但任意長度拼接會導致組合數(shù)量天文數(shù)字般增長計算效率極低若以完整單詞為基本單位英語單詞本就數(shù)十萬再加上多語言混合詞表規(guī)模會極其龐大。Token 是介于“字/字母”與“完整單詞”之間的折中方案既控制詞表規(guī)模如 LLaMA 約 12 萬、Qwen 可達 25 萬又保證計算效率因此被稱為“詞元”。2.3 輸入 Token 為什么比輸出 Token 便宜課堂后半段揭秘了一個行業(yè)現(xiàn)象輸出 Token 的價格通常遠高于輸入 Token比如某旗艦模型輸出約 6 元/百萬 Token輸入僅約 3 元/百萬若緩存命中輸入甚至低至 0.025 元/百萬。根本原因不在軟件而在GPU 硬件計算特性顯存帶寬瓶頸GPU 計算需要把數(shù)據(jù)從顯存VRAM搬運到高速內(nèi)存SRAM/SM中運算。輸入階段所有 Token 一次性并行加載耗時極短但輸出階段是自回歸的每生成一個 Token 都要把之前的歷史上下文從顯存反復搬運到 SRAM。這種頻繁的“搬運-計算-等待”導致 GPU 算力閑置且占用了昂貴的顯存帶寬。KV Cache(鍵值緩存) 累積為避免重復計算模型會把已算好的 Key-Value 緩存到顯存中。隨著輸出長度增加KV Cache 不斷累積占用大量顯存空間。每次生成新 Token 都要讀取這些龐大的 KV 數(shù)據(jù)進一步加劇資源消耗。老師用了一個生活化比喻輸入就像把一車貨一次性拉到工地輸出則是每砌一塊磚都要把之前砌好的所有磚再搬過來參考一遍自然又慢又貴。三、詞表LLM 的“新華字典”與 OOV 困境如果說 Token 是原子那詞表Vocabulary就是元素周期表。老師將其本質(zhì)一語道破詞表是一個映射字典類比 Java/C 里的 Map或 Python 里的 Dict。3.1 詞表的工作流輸入端文本先被分詞為 Token再轉(zhuǎn)為唯一的數(shù)字 ID如“LM”對應 10001因為模型只認數(shù)字輸出端模型輸出的是一系列 ID系統(tǒng)再查詞表把 ID 翻譯回人類可讀的 Token。老師特別強調(diào)了一個邊界模型無法生成詞表范圍之外的內(nèi)容。所有輸出都受限于這張“字典”。3.2 字節(jié)級回退遇到生僻字的“兜底方案”課堂上拋出了一個現(xiàn)實問題如果遇到詞表沒收錄的新詞、生僻字甚至“火星文”怎么辦這就是 OOVOut-of-Vocabulary問題。解決方案是字節(jié)級回退Byte-level Fallback系統(tǒng)將 0x00 到 0xFF 的所有字節(jié)值預設為獨立的 Token遇到未知字符時將其拆成單個字節(jié)如一個 UTF-8 字符可能由多個字節(jié)組成每個字節(jié)映射為已知 Token再基于這些字節(jié) Token 做預測。優(yōu)點保證模型遇到任何字符都不會完全失效。缺點效率低。一個常規(guī) Token 可能被拆成多個字節(jié) Token老師舉例說“一個字符可能消耗 5 個 Token”Token 消耗量顯著增加既拖慢速度又增加成本。四、多人對話的真相模型沒有記憶只有“上下文拼接”課程進入應用層首先打破了一個常見幻覺大模型沒有記憶力。4.1 無狀態(tài)本質(zhì)y 2x 1老師用了一個極其精準的數(shù)學比喻大模型就像函數(shù)y 2x 1它不會對輸入值有任何記憶只負責對當前輸入做復雜計算。課堂實驗也很直接先問模型“我叫小明今年 6 歲”再問“我叫什么”它能答出來但新開一個會話直接問“我叫什么”模型完全不知道。這就是所謂的“記憶”把歷史對話記錄History與當前新問題拼接后一并發(fā)送給模型。用戶感覺模型記住了其實只是因為它在每次提問時都讀到了完整的“劇本”。4.2 為什么人類需要多輪對話既然模型沒記憶那為什么要設計多輪對話老師總結(jié)了三個深層原因上下文依賴Context Dependency自然語言充滿代詞和隱喻。比如先問“龍是什么”再問“它的頭像”單輪對話無法解決這種指代關(guān)系。復雜問題的澄清與拆解人類溝通遵循“省力原則”初始指令往往信息不全。老師舉了一個非常貼近實際的例子讓 AI 做“用戶管理系統(tǒng)”。模型不會直接上手寫代碼而是會通過多輪反問來明確需求——包含哪些字段需要新增/刪除/修改/查詢嗎經(jīng)過多輪對齊最終才輸出完整方案。糾錯與對齊大模型是概率模型會犯錯。比如課堂上討論的數(shù)學問題0.999... 1引發(fā)的爭論。用戶需要通過多輪對話指出錯誤、要求修正才能對齊結(jié)果。4.3 引入多輪后的三大挑戰(zhàn)與解決方案這部分是課程的“干貨中的干貨”老師講得非常細致挑戰(zhàn) 1上下文管理瓶頸模型有上下文長度上限如 DeepSeek 支持 1M tokens輸出限制 384k。若對話過長會撐爆這個“容器”。對話摘要讓模型把長對話壓縮成核心信息。老師舉了代碼工程的例子先讓 AI 分析整個項目目錄并形成摘要后續(xù)開發(fā)時只攜帶摘要而非千萬行代碼?;瑒哟翱谥槐A糇罱?N 輪如 20-30 輪丟棄早期記錄。老師提示這個 N 可以通過運營數(shù)據(jù)統(tǒng)計出合理值不是拍腦袋定的。RAG檢索增強生成把海量數(shù)據(jù)如《西游記》全文存入向量數(shù)據(jù)庫。問“牛魔王與孫悟空的關(guān)系”時只把相關(guān)片段如牛魔王結(jié)拜、紅孩兒章節(jié)檢索出來喂給模型避免全量投喂。挑戰(zhàn) 2推理效率與成本上下文越長生成每個字都要重算前文速度慢、電費高。KV Cache緩存已計算好的 Key-Value 值生成新字時無需重復計算前文剪枝Pruning直接刪除對話中的冗余信息和廢話減少輸入長度。挑戰(zhàn) 3中間遺忘Lost in the Middle老師引用了一篇經(jīng)典論文模型對上下文首尾信息記憶較好但容易遺忘中間部分呈 U 型記憶曲線。根本解決把上下文長度從 1M 擴展到 10M——但這訓練成本極高動輒數(shù)百萬美金周期長。外掛狀態(tài)存儲終極方案引入外部數(shù)據(jù)庫如 PG、MySQL。老師舉了旅游計劃的例子當家庭出游計劃發(fā)生變更爸爸要看老虎兒子要看斑馬AI 助手檢測到狀態(tài)變化后不把希望寄托在模型回憶上而是將最新計劃寫入數(shù)據(jù)庫。后續(xù)查詢時直接從數(shù)據(jù)庫讀取最新狀態(tài)注入 Prompt徹底規(guī)避遺忘問題。五、提示詞工程給模型設定“人設”與“邊界”課程接下來剖析了提示詞的分類與系統(tǒng)提示詞System Prompt的核心作用。5.1 用戶提示詞 vs 系統(tǒng)提示詞User Prompt用戶直接說的話如“北京的天氣怎么樣”System Prompt預先設定且置于最前端的頂層指令由開發(fā)者設定對用戶不可見且貫穿整個對話始終。5.2 系統(tǒng)提示詞的四大作用1. 定義角色和行為邊界可以把“全科博士”塑造成特定專家。老師演示了引導式教學人設設定模型為“一步步引導小朋友且不直接給出答案的老師”。面對2x 3 7模型不會直接報答案而是像教小朋友一樣提問“觀察天平右邊是什么我們第一步先做什么”邊界劃定設定為“數(shù)學老師”并規(guī)定“不回答其他科目問題”。當用戶要求寫一篇春天的作文時模型幽默拒絕“抱歉你走錯教室了?!?. 穩(wěn)定模型行為模型基于概率生成本質(zhì)上帶有“搖色子”般的隨機性回復風格可能波動。通過系統(tǒng)提示詞限定“回復非常專業(yè)”或“語氣溫柔”可以約束輸出保持一致。3. 安全與合規(guī)充當安全護欄拒絕制作炸彈、涉黃涉政等請求。同時防御提示詞攻擊如用戶試圖套取系統(tǒng)提示詞本身。4. 彌補知識短板和提供上下文模型訓練數(shù)據(jù)有截止日期。老師展示了 ClaudeSOP 公司公開的系統(tǒng)提示詞案例其中明確寫入了當前美國總統(tǒng)及其就職時間等實時政治信息以彌補模型訓練數(shù)據(jù)的滯后。此外還包含模型名稱、官網(wǎng)、兒童安全策略、惡意代碼處理原則等。5.3 開發(fā)框架的抽象在實際開發(fā)框架如 LangChain中這些概念被抽象為MessageSystem Message系統(tǒng)提示User Message用戶輸入AI Message模型回復注意回復本身不屬于 Prompt所以統(tǒng)稱 MessageTool Message工具調(diào)用及返回六、聊天模板格式化的“安全藍圖”當用戶輸入變得復雜、模型版本快速迭代時直接把 JSON 發(fā)給模型會很危險——如果用戶輸入里帶了引號極易導致模型把用戶內(nèi)容和系統(tǒng)指令搞混。這就是聊天模板Chat Template存在的意義。6.1 核心機制用特殊 Token 劃定邊界聊天模板本質(zhì)上是一種格式藍圖。它把 JSON 轉(zhuǎn)換成帶特殊標記的字符串例如用|start|表示系統(tǒng)指令開始|end|表示結(jié)束。模型只需識別這些特定標記就能清晰區(qū)分“哪里是系統(tǒng)指令、哪里是用戶輸入”避免沖突。6.2 模型間的格式鴻溝不同模型家族的模板差異巨大甚至同一系列不同版本如 Qwen 2.5 與 2.7都有細微差別。硬編碼 Python 字符串拼接來適配維護成本極高。6.3 為什么推薦 Jinja2課堂上力薦Jinja2作為模板引擎三大優(yōu)勢解耦通用性模型格式微調(diào)時只需改模板文件無需改動核心業(yè)務代碼動態(tài)邏輯控制支持 if-else 判斷可根據(jù)是否有系統(tǒng)指令、是否有工具調(diào)用靈活生成不同結(jié)構(gòu)安全防護防注入Jinja2 的自動轉(zhuǎn)義Escape能力能處理用戶輸入中的復雜特殊字符防止惡意構(gòu)造字符串破壞解析邏輯。6.4 實際應用路徑云端調(diào)用如 LangChain 阿里云 QwenJSON 到模板的轉(zhuǎn)換在服務端黑盒完成開發(fā)者無感知本地復現(xiàn)/調(diào)試建議使用 Hugging Face Transformers 庫的apply_chat_template方法輸入 JSON 消息列表觀察渲染后的完整字符串驗證 Start/End Token 格式。七、從“大腦”到“機器人”大模型的未來演進課程最后做了一次系統(tǒng)性回顧并指明了演進方向。7.1 機制閉環(huán)一條完整的 LLM 交互鏈是用戶輸入 → 系統(tǒng)提示詞注入 → 聊天模板格式化 → 詞表數(shù)字化/概率計算 → 自回歸生成 Token → 查表解碼 → 多輪上下文循環(huán)7.2 可能性之海老師用一組驚人的數(shù)字解釋了為什么 LLM 能不斷“創(chuàng)造”新內(nèi)容假設詞表 10 萬10?生成第一個字有 10? 種可能第二個字又有 10? 種可能……生成 500 字時累積的可能性呈指數(shù)級增長甚至遠超宇宙原子總數(shù)約 10??。有限的詞表通過組合產(chǎn)生了近乎無窮的回答空間。7.3 當前局限與智能體Agent目前的大模型主要局限于“回答問題”相當于只有大腦缺乏對外部世界的實際操作能力。下一步的核心演進路徑是掛載工具Tools——為大模型裝上“四肢”讓它不僅能思考還能調(diào)用API、查詢數(shù)據(jù)庫、執(zhí)行代碼。屆時語言模型將從單純的問答系統(tǒng)進化為能夠完成任務的類機器人智能體。寫在最后回望這一系列課程從“中國的首都是哪里”的 Token 拼接到旅游計劃變更時的外掛數(shù)據(jù)庫從詞表里一個生僻字的字節(jié)回退到 Claude 系統(tǒng)提示詞里對總統(tǒng)信息的精準修補——大語言模型看似“聰明”的背后其實是一套極其嚴謹?shù)母怕使こ?、?nèi)存工程與提示工程的綜合體。理解這些底層邏輯不僅能幫我們更高效地調(diào)用模型更是在為即將到來的 Agent 時代打下認知地基。畢竟只有先理解大腦如何工作才能真正設計出四肢與大腦協(xié)調(diào)的機器人。