跳到主要內容
AI News HubLIVE
站內改寫2 分鐘閱讀

Fireworks如何透過安全分詞解決所有模型的提示注入問題

文章摘要

Fireworks推出了一種稱為安全分詞(safe_tokenization)的機制,透過在分詞階段防止使用者輸入中的控制符被誤編碼為模型的控制令牌,從而解決提示注入問題。該機制作為API請求的一個布林引數,對使用者輸入無影響,僅防止控制符被解釋,同時保持聊天模板結構完整。文章詳細描述了問題成因、攻擊演示、工作原理及其對模型輸出的影響。

Fireworks如何透過安全分詞解決所有模型的提示注入問題
回報錯誤

更正管道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

近日,Fireworks AI宣佈推出一種全新的安全機制——安全分詞(safe_tokenization),旨在徹底解決提示注入問題,為所有開放模型提供保護。提示注入是當前大型語言模型推理服務中的一個普遍隱患:使用者輸入中的文本字串可能被分詞器誤編碼為模型的控制令牌,從而篡改系統提示或角色邊界。Fireworks透過引入一個簡單的布林引數,實現了對提示注入的有效防禦。

Fireworks的首席科學家在部落格文章中詳細闡述了這一問題的根源。他指出,大多數開放模型使用HuggingFace分詞器,其標準流程是:首先透過Jinja聊天模板將整個對話渲染成一個字串,然後對該字串進行編碼。在這個過程中,使用者文本與模板中的控制令牌混在一起,分詞器無法區分哪些位元組來自模板、哪些來自使用者。因此,如果使用者輸入恰好包含模型的控制令牌字串(如<|im_start|>等),就會被編碼為真實的控制令牌,從而改變模型的輸出行為。

文章以Kimi K2.6模型為例,演示了一個完整的攻擊過程。攻擊者在使用者訊息中嵌入偽造的系統角色切換指令,使得原本鎖定英語的系統提示被覆蓋為西班牙語。實驗顯示,當安全分詞關閉時,模型確實遵循了攻擊者的西班牙語指令;而開啟安全分詞後,模型仍然遵守原始的英語規則。這個差異在日誌機率(logprobs)中可量化驗證。

安全分詞的工作原理涉及兩個層面的修復。在模型載入階段,系統掃描完整的詞彙表(包括特殊令牌和新增令牌),並預處理聊天模板,確保控制令牌與使用者插值內容分離。在請求處理階段,模板中的結構令牌按原樣編碼為真實令牌ID,而使用者文本的每一段都經過專門的分詞步驟,將任何可能構成控制令牌的位元組拆分為子詞單元。由於兩個路徑在設計上保持一致,攻擊者無法在模板與使用者內容之間找到縫隙。

Fireworks強調,安全分詞對正常使用者輸入完全透明:如果使用者內容不包含控制令牌字串,安全路徑與預設路徑產生的令牌ID完全相同。此外,該機制計算成本極低,無需模型過載或額外網路跳轉。使用者只需在API請求中新增"safe_tokenization": true,即可啟用這一保護。所有Fireworks支援的開放模型(包括DeepSeek、Kimi、Qwen、Llama、GLM等)均已支援該功能,流式與非流式補全均適用。

業界普遍認為,提示注入是當前AI推理平臺面臨的最大安全隱患之一。Fireworks的安全分詞方案為行業提供了一個簡潔而有效的解決方案。正如文章所言:“生產環境下的推理必須能夠承受惡意使用者內容的攻擊。safe_tokenization: true就是Fireworks在令牌層面做出這一保證的方式——這樣,你的系統提示,而不是別人的,才能定義你的產品。”

展開要點與分析

文章情報

工程師進階

要點

  • 提示注入源於使用者輸入中的控制符與模型控制令牌共享同一位元組流,導致使用者文本可被誤解釋為控制令牌。
  • Fireworks的安全分詞機制透過在模型載入時掃描詞彙表,並在請求時按段編碼,確保使用者內容中的控制符字串被拆分為子詞,而非編碼為真實控制令牌。
  • 該機制作為每請求的布林標誌(safe_tokenization: true),對正常輸入行為無變化,僅防止控制符注入,且計算開銷極小。
  • 安全分詞已在DeepSeek、Kimi、Qwen等Fireworks支援的所有開放模型上生效,支援流式和非流式補全。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。