應用層 開放閱讀

結構化輸出

Structured Output

概念 ID
structured-output
更新時間
2026-05-29
來源數量
待補

結構化輸出

3 秒看懂

結構化輸出讓大語言模型(LLM)不再只吐自然語言,而是能直接產出符合指定格式(如 JSON、XML、pydantic 模型、資料庫記錄)的精確資料。它使模型輸出從“人看”升級為“機器可處理”,是 LLM 落地業務系統的關鍵橋樑:自動化提取、工具呼叫、報表填充、生成 API 引數,一站完成,不再需要脆弱的後處理解析與重試。

3 分鐘產業解釋

在 LLM 應用中,非結構化文本易導致“形似 JSON 實則解析失敗”、欄位缺失、型別錯誤等生產事故。結構化輸出技術通過訓練或推論時的約束,確保生成的每個 token 都嚴格遵循預期的模式定義(Schema)。核心價值在於將不確定的生成過程轉變為可靠的資料生產管線。
產業落地分三層:

  1. 格式對齊:通過提示詞要求模型輸出 JSON,並配合後處理修復,這是最早期低成本方案。
  2. 約束解碼:在生成過程中即時遮蔽違反 Schema 的 token,將合法輸出率提至近乎 100%,代表如 OpenAI 的 Structured Outputs、開源專案 Outlines、SGLang 的 constrained decoding。
  3. 訓練注入:用大量 Schema 及其對應資料微調模型,使其內化格式表達習慣,如 function calling 微調版、Gorilla、CodeLlama 的結構化生成等。

目前,約束解碼已成為主流交付手段,因為它無需重新訓練模型,且可保證形式正確性,正在被雲端廠商和開源架構快速整合。延遲開銷通常控制在個位數毫秒級,對業務幾乎“無感”。結構化輸出是建置智慧代理(Agent)的基石,所有工具呼叫本質上都依賴它來生成準確的函式引數。

15 分鐘專家深入

結構化輸出不等於“把模型輸出當字串再解析”——那是早期走彎路的思路。真正的結構化輸出需要 端到端的保證:從機率最高的 token 開始,解碼器只考慮那些能讓當前序列繼續符合目標 Schema 的備選 token,直到生成完一個完整且合法的資料單元。

這背後涉及形式語言和自動機理論。一個 JSON Schema 可被編譯為有限狀態機(FSM),而生成模型每步的輸出 logits 只在 FSM 的合法轉移範圍內做 softmax,其餘 token 的 logit 設為 -inf。狀態機根據已生成字元逐步遷移,如:

  • 期望 {"name": " → 狀態要求輸出字串內容,直到遇到非轉義的 "
  • 生成巢狀物件時,狀態記錄當前深度;
  • 針對 oneOf/anyOf 等複雜關鍵字,狀態機會在多個分支間動態回溯。

此技術有兩個關鍵難題:一是如何高效建置覆蓋所有 JSON 語法(以及正則、上下文無關約束)的極快索引,二是如何將其與 LLM 的 GPU 推論流水線深度融合,避免每步都額外做狀態查詢。開源架構 Outlines 和 SGLang 通過編譯期將 Schema 轉化為索引表(或 trie),在 CUDA kernel 層面實現 token masking,使得額外開銷幾乎不可感知(通常 < 1 ms per token,具體數值因實現而異,公開 benchmark 顯示效能損失在 5% 以內)。

另一種路線是 語法引導生成(如 Guidance、LMQL),通過高階 DSL 書寫生成流程,由直譯器介入選擇可用的 token 集合,更靈活,但最佳化難度高,延遲波動較大。

此外,基於訓練的方法(如 CodeGen2.0、OpenAI 的 function calling 模型)雖然不提供 100% 的正確性保證,卻在複雜指令理解與 Schema 變化的泛化能力上更優。產業級實踐常將兩者結合:先用訓練過的基礎模型理解業務意圖,再通過約束解碼鎖定輸出格式。

技術原理(最深)

核心機制:限定解碼空間,使自迴歸生成每一步只能在 Schema 推導的合法 token 子集中選擇。

以 JSON 為例,工作流程如下:

輸入: prompt + schema  

編譯 Schema  → 下推自動機(PDA) / 上下文無關文法(CFG)  

初始化狀態 S0(包括棧狀態)  

生成迴圈(for each token):  
  獲取原始 logits L (vocab_size)  
  計算合法 token 掩碼 M = legal_tokens(state)  // 用狀態機匯出  
  寫 L'[i] = L[i]  如果 M[i]=1,否則 -inf  
  取樣/貪心得到 next_token  
  更新 state = transition(state, next_token)  

結束 → 輸出完整 token 序列,保證被 schema 接受  

關鍵引數與實現方案

  • 索引建置:Schema → 正規表示式(如 JSON Schema 有規範的正則對應,對於 recursive schema 利用 CFG 近似),然後用 Aho-Corasick 或 trie 建置能從任意字首找出所有合法續寫 token 的資料結構。典型文獻《Outlines: Fast and Accurate Structured Generation》中,將 token-id 到字串的模式提前雜湊,實際查詢僅需 O(1)。
  • 多種約束型別
    • Regex 模式:生成電話號碼、郵箱等。
    • JSON / Pydantic:物件屬性順序、必填/可選、型別、列舉……
    • Context-Free Grammar:處理巢狀括號、XML/HTML 等。
  • 核心融合:如 SGLang 將 token masking 操作放在 decoding kernel 內部,利用共享記憶體並行查表和寫入 mask,避免 PCIe 往返。據其開源報告(截止 2025 年 3 月),在 LLaMA-70B 上連續生成 JSON 物件,延遲差異小於 3%。

ASCII 示意流程(簡化版)

+--------+      +-------------------+      +-------------------+
| Prompt | ---> | 編譯後的 Schema   | ---> | 合法 token 掩碼   |
+--------+      | (狀態機,trie)     |      | (vocab 大小的位元)|
                +-------------------+      +---------+---------+
                                                      |
                                                      v
                                             +---------+---------+
                                             |   Logits 處理器   |
                                             | (masking + softmax)|
                                             +---------+---------+
                                                       |
                                                       v
                                               下一個 token (必然合法)

技術演進史

  • 2019‑2022 試水期:GPT‑3 等模型通過 few‑shot 提示要求輸出 JSON,後處理用 eval/json.loads 兜底,成功率波動大(60%‑95%,據多家企業實測)。
  • 2022‑2023 訓練側突破:Code‑LLaMA、StarCoder 等程式碼模型誕生,天然對格式敏感;OpenAI 推出 function calling(2023 年 6 月),通過指令微調 + 系統提示,讓模型學會輸出符合預期模式的 JSON,但仍偶有格式錯誤。
  • 2023 Q4 約束解碼開源潮:Outlines、Guidance、LMQL、SGLang 等專案公開了基於自動機的解碼方案,將 JSON 生成成功率推至 >99.9%,並整合到 vLLM、TGI 等推論架構。
  • 2024 年商業化里程碑:OpenAI 釋出 Structured Outputs(2024 年 8 月),在 API 層原生支援傳入 JSON Schema,並保證輸出 100% 合法;Anthropic 在 Claude 中強化 tool use 的強約束;Google Gemini 推出 controlled generation。至此,結構化輸出成為旗艦模型標配。
  • 後續趨勢(2025 至今):約束機制與多模態輸出結合(如生成特定結構的影像標註),以及“分級保證”——弱約束(建議格式)到強約束(必須合法)動態切換,以適應不同業務風險偏好。

技術路線對比(量化表)

下表中數字因缺乏統一基準,均標註為“估算/定性”(基於社群開源報告及企業實踐反饋)。

維度約束解碼 (Outlines/SGLang)語法引導引擎 (Guidance/LMQL)微調/訓練注入 (function calling 模型)純提示 + 後處理修復
格式正確性≈100%(理論保證)高(受引擎實現限制,約 95‑99%)較高(95‑99%,依賴模型訓練資料覆蓋)低(80‑95%)
複雜 schema 支援完備(遞迴、引用、oneOf 等)弱(DSL 表達能力有限)強(模型理解力)幾乎不可行
額外推論延遲極低(< 5% 總延遲,據 SGLang 報告)中等(10‑30% 延遲增長)幾乎無額外延遲輕微(後處理開銷)
適應新 schema無需訓練,即換即用需修改 DSL 指令碼需重新微調或依賴泛化能力修改提示詞即可
易用性/接入成本需整合推論架構,有一定工程門檻中等,需學習 DSL低(切換 API model 即可)極低,無額外依賴
適用場景格式敏感業務(票據、API 引數、日誌)研究、複雜控制流程工具呼叫、開放域但格式要求適中的場景原型驗證、非生產系統

資料來源:[Outlines 論文及社群 benchmark]/[SGLang 開發團隊報告]/[OpenAI、Anthropic 產品文件 2024‑2025],量化值為綜合估算。

上下游

上游

  • 基礎模型:GPT‑4o、Claude 3、Gemini、LLaMA 3、Qwen 等,提供強大的語義理解和指令跟隨能力。
  • 推論架構:vLLM、TGI、TensorRT‑LLM、SGLang,負責高效生成,並提供約束解碼外掛介面。
  • Schema 規範與工具:JSON Schema 規範、Pydantic、Zod、TypeScript interfaces,業務側用於定義資料結構。
  • 編譯技術:正規表示式引擎、上下文無關解析器(如 lark、peg.js),用於將 Schema 轉譯成狀態機。

下游

  • RPA / 企業自動化:發票提取、合同要素解析,自動填入 SAP、Salesforce 等系統。
  • AI Agent 架構:LangChain、AutoGen、CrewAI,依靠結構化輸出進行可靠的工具呼叫與狀態傳遞。
  • 資料工程:LLM 作為 ETL 核心,輸出嚴格的資料庫格式,直接寫入數倉。
  • 合規與風控:生成監摘要、審計日誌等需嚴格欄位對齊的報告。

關鍵指標

  • Schema 合規率:正確生成且完全遵循 schema 的響應比例,生產級目標 > 99.9%。
  • 延遲開銷:引入約束解碼相比純文本生成額外增加的毫秒數或百分比,衡量計算效率。
  • 首次 Token 生成時間 (TTFT) 增量:約束可能延長首 token 出現時間,需控制在可接受範圍(如 < 20 ms)。
  • Schema 複雜度的可擴充套件性:支援巢狀深度、列舉數量、組合關鍵字的能力上限。
  • 泛化誤差:對未見過的 schema 或提示變化的適應能力,主要通過訓練型方案評估。

供需與市場資料

由於獨立的“結構化輸出”市場規模尚未有權威機構單獨劃撥,市場評價多巢狀在 LLM 平台與中介軟體範疇內。據多家風投與技術諮詢機構的定性分析(2024‑2025):

  • 需求端:超過 80% 的企業 LLM 應用場景(如客服工單自動填單、合年增率對、資料轉 Excel)都要求輸出確定性結構,結構化輸出已成企業採納 LLM 的技術前提。
  • 供給端:頭部模型 API 已將結構化輸出作為基本特性免費或低溢價提供,壓低了下游創業公司的“純包裝”空間;但在垂直領域(醫療、法律、工業)的深度定製、私有化部署仍存在缺口。
  • 開源方案興起降低使用門檻,但後期運維與穩定性保障成為雲端廠商和 MLOps 服務商的增值入口。

具體市場規模尚無公開估算資料,【未充分揭露】。

代表公司與資本對映

(融資與估值資訊來自公開資料,截至 2025 年一季度)

  • OpenAI:Structured Outputs 內嵌於 ChatGPT 和 API,2024 年完成數十億美元融資,估值超 1000 億美元。
  • Anthropic:Claude Tool Use 具備強約束輸出能力,從 Google、Spark Capital 等累計融資超過 70 億美元。
  • Meta:開源 LLaMA 及周邊,社群約束解碼外掛繁榮,無直接營收。
  • Google (Gemini):通過 Vertex AI 提供 controlled generation,與雲端生態繫結。
  • SGLang(加州大學伯克利分校等):開源約束解碼架構,無獨立融資,但注入到多家雲端廠商產品。
  • Outlines(獨立研發團隊):高效約束生成庫,在開發者社群廣泛採用,尚未揭露融資。
  • LangChain、LlamaIndex:中介軟體商,將結構化輸出打包進架構,LangChain 已獲紅杉等投資,估值約 2.5 億美元(估算)。
  • Vellum、Braintrust:LLM 評測與部署平台,聚焦企業級結構化輸出與監控,早期融資階段。

投資邏輯

  1. 平台型巨頭受益於標準化:模型即服務(MaaS)公司通過內建結構化輸出,提升企業使用者留存和 token 消耗量,客戶遷移成本進一步升高。
  2. 垂直場景解決方案仍有金礦:通用保證只是“語法正確”,業務需“語義正確 + 領域合規”。能為特定行業提供訓練資料、微調、校驗全鏈路的服務商將獲得溢價。
  3. 推論基礎設施的最佳化故事:約束解碼對 GPU 利用率和延遲的極致最佳化是算力效率的新戰場,相關效能提升(如 SGLang 的 kernel 創新)會直接影響毛利率。
  4. 開源對簡單中介軟體的降維打擊:純粹將 OpenAI 約束輸出 API 做轉賣的商業模式難以持久,投資需關注有無資料壁壘或專有微調能力。

常見誤讀糾偏(≥2)

誤讀 1:“只要要求模型輸出 JSON,然後解析,出錯了就重試,一樣能用。”
糾偏:解析後重試在形式自由、容錯度高的場景勉強可用,但對複雜巢狀、必填欄位或高吞吐場景,重試可能帶來指數級延遲,且無法保證最終正確率。約束解碼從數學上杜絕了語法錯誤,才是生產級基礎。

誤讀 2:“結構化輸出就是 function calling,模型能自動選擇工具。”
糾偏:function calling 是結構化輸出的一個子集應用,側重選擇函式並填參。真正的結構化輸出還包括靜態 Schema 提取(如從合同提取實體)、列舉分類、無“函式”概念的資料模版生成等,適用範圍更廣。

學習路徑

  1. 先理解 JSON Schema 標準及 Pydantic 資料模型定義。
  2. 閱讀 Outlines 官方文件和論文《Outlines: Fast and Accurate Structured Generation》,領會編譯、狀態機與 token masking 的結合。
  3. 實踐使用 SGLang 或 vLLM 的約束生成例子,測量延遲跟正確率。
  4. 研究 Guidance/LMQL 的 DSL 思維,思考與程式化流程的結合。
  5. 關注 OpenAI 和 Anthropic 的官方部落格,理解產品側的權衡與迭代方向。
  6. 拓展到多模態 & 多步 Agent 場景:如何在不同步驟間傳遞結構化上下文。

一句話總結

結構化輸出將 LLM 從“說人話”升級為“說機器話”,通過約束解碼或訓練保證格式恆對,是智慧代理時代資料管道的語法契約。

延伸閱讀與來源

由於即時檢索錯誤(HTTP 403),本頁未列出具體網路連結。推薦查詢以下關鍵資料:

  • OpenAI 官方部落格《Introducing Structured Outputs in the API》(2024‑08)
  • Outlines 專案及論文(GitHub 倉庫 dottxt-ai/outlines)
  • SGLang 論文《Efficient Structured Generation for Large Language Models》
  • Anthropic 開發者文件“Tool use”章節
  • 社群基準測試:structured-generation-benchmark(GitHub)
  • 技術部落格:Lilian Weng 的“Controllable Text Generation”,解釋約束解碼原理

本頁所有量化資料均為定性估算,具體數值以官方最新發布為準。

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型