第 1 章 — AI 工程作為一門學科
LLM Primer V: Building Real-World LLM Applications 章節走讀的第一篇。這一章的主張是:你的 demo 會動、生產系統不會動,原因不是模型 — 是工程問題,而且那門工程有名字。
這一章為什麼存在
每一個把 LLM 功能送上線的團隊都會撞到同一個縫。Demo 在團隊選的那二十個輸入上跑得很好;生產系統在它從沒看過的兩萬個輸入上跑得很糟。模型沒變差。團隊只是走出了「單次輸出看起來像樣就算成功」的區域,走進負載、漂移、對抗性輸入、以及那些抱怨指標很不寬容的付費使用者的區域。第 1 章給那個區域取名字、給它一門學科。AI 工程既不是訓練模型的科學,也不是寫個聰明 prompt 的手藝。它是把機率性核心包在確定性系統行為之外的那門工程。剩下的章節是走過那門學科存在的每一個表面;這一章立框。
1.1 Demo 跟生產之間那條可靠性裂縫
Demo 跟生產系統在架構圖上長得一模一樣。它們差在負載、差在輸入分布的長尾、差在延遲預算、差在成本壓力、差在失敗模式。最主要的差別是統計上的:demo 跑幾十個手挑的輸入,生產系統跑幾百萬個對著長尾丟過來的請求 — 語法怪、部分是別的語言、缺 context、或故意帶惡意的那些。可靠性是關於尾巴的問題,不是關於平均值的問題。疊在那上面,模型本身還是非決定性的 — 取樣、供應商端的負載平衡、供應商悄悄換模型的動作 — 通通疊上去,而失敗是安靜的。錯的答案 parse 得乾淨、通過團隊寫的所有 type check、也送到使用者面前沒有觸發任何警報。傳統的可觀測性靠數 HTTP 200 是看不到這種失敗模式的。團隊的第一步是認清:可重複性、正確性、成本都是要建構出來的工程性質,不是從傳統堆疊裡繼承下來的假設。
1.2 圍繞著機率核心的確定性包裝
架構上的回應是:讓模型維持機率性,把它包在傳統軟體裡。包裝負責輸入形狀、輸出形狀、驗證、重試、退場、快取、可觀測性、成本記帳。從外面看,它是一個確定性函式 — 送一個請求進去、拿一個驗證過的回應出來。從裡面看,它包含一個機率性元件,呼叫的時候帶 timeout、帶 schema、帶「模型回垃圾時該怎麼救回來」的復原計畫。包裝有四個帶狀:輸入驗證、prompt 準備、契約下執行、以及復原與發出。四關都過了,回應才變成包裝的正式輸出。一直冒出來的誘惑是把邏輯推回模型裡面 — 「讓模型自己檢查自己的答案」 — 而每往那個方向走一步,就是離可測性遠一步。這門學科的紀律是把機率性核心保持得小、界線清楚、被包住,並且盡量把系統的行為留在團隊能版本控制、能推理的確定性程式碼裡。
1.3 五根柱子:可靠性、品質、效能、成本、演化
第 1 章走過在每一個生產系統都會重現的五種工程姿態。可靠性來自冗餘:指數退避的重試、從便宜的主要往較強的次要、再往規則式預設值走的退場鏈、多供應商抽象、以及不讓垮掉的供應商拖累其他人的斷路器。品質來自兩層驗證:schema 驗證抓形狀錯誤;內容驗證 — groundedness 檢查、信心底線、guardrail 檢查 — 抓通過 schema 但語意錯的那些。效能來自三層快取:完全比對、語意、prompt 前綴。成本控制來自量測與歸屬,來自把流量路由到「夠用的最小模型」,來自每使用者、每請求的預算讓 agent loop 不會靜靜地花掉一千美元,還來自 prompt 上的節省。演化來自五個回饋迴圈 — 日誌、評估、追蹤、人工回饋、canary rollout — 接成一個電路,讓生產環境的一條 trace 變成一個 eval case、讓一個 eval 回歸擋住一次部署,讓系統月月變好。
第 1 章接下來會怎麼走
接下來整本書都是包裝,一次一層。第 2 章走進模型呼叫本身 — 模型分層、取樣參數、防禦式 prompt、結構化輸出。第 3 章往外擴到檢索,好讓模型有對的 context 可以推。第 4 章把包裝變成能呼叫工具的代理。第 5 和 6 章補上評估與可觀測性的軌道。第 7 和 8 章收在安全與服務經濟。第 1 章的框架是後面每一章能讀得懂的前提:每一種技術要麼是把包裝收緊的方式,要麼是讓裡面那顆機率性核心更好包的方式。
下一篇 — 第 2 章:基礎模型與提示詞工程。包裝裡面那一層 — 模型挑選、取樣、提示詞、結構化輸出 — 通通當工程表面來處理,不當手藝。