What is System Prompt(系統提示)?
在對話開始時提供的特殊指令,定義模型的行為、角色、限制和回應格式。
Definition
系統提示(也稱為系統訊息或系統指令)是放置在對話開頭的特權文字,為語言模型設定行為上下文。與代表終端使用者輸入的使用者訊息不同,系統提示代表開發者的指令——定義模型應該扮演誰、使用什麼語氣、避免什麼話題以及如何格式化回應。它是在推論時配置模型行為的主要機制,無需修改權重。
系統提示從單一句子(「你是一個有用的助手。」)到多頁文件不等,可以指定詳細的行為指南、輸出 schema、工具使用協議和安全護欄。在生產應用中,系統提示通常對終端使用者隱藏,由應用開發者控制。它透過聊天模板作為帶有 "system" 角色的第一則訊息注入對話中,模型被訓練為將其視為在整個對話中持續適用的指令。
系統提示的效果在很大程度上取決於模型的指令遵循能力,這些能力由其指令調優和 RLHF 訓練塑造。沒有指令調優的基礎模型可能在很大程度上忽略系統提示,而經過良好調優的模型如那些針對聊天微調的模型會密切遵循它們。微調可以進一步加強模型對特定系統提示模式的遵從,特別是當訓練資料一致地包含目標系統提示時。
Why It Matters
系統提示是應用開發者和語言模型之間的主要介面。它們決定了使用者體驗——模型是簡潔還是冗長、正式還是隨意、限制性還是開放性。對於生產應用,精心設計的系統提示對安全性(防止有害輸出)、品牌一致性(維持正確的語氣)和功能性(確保正確的輸出格式化以供下游解析)至關重要。系統提示也是防禦提示注入攻擊的第一道防線,使其設計也成為安全考量。
How It Works
當對話被發送給模型時,系統提示使用模型的聊天模板格式化為第一則訊息(例如 ChatML 中的 <|im_start|>system\n{content}<|im_end|>)。分詞後的系統提示佔據上下文視窗的開頭,模型的注意力機制允許所有後續 token 關注它。這意味著系統指令影響模型在整個對話中生成的每個 token。在長對話中,隨著系統提示離生成點越來越遠,其影響力可能減弱——這種現象有時稱為「迷失在中間」——這就是為什麼簡潔、結構良好的系統提示比過長的更有效。
Example Use Case
一個醫療平台部署微調模型,配合系統 提示指示:「你是一個臨床決策支援助手。始終引用循證指南。永遠不要提供明確的診斷——建議臨床醫生驗證所有建議。以結構化表格格式化藥物劑量。」這個系統提示結合模型在醫療資料上的微調,產生臨床上有用、格式正確且包含適當安全免責聲明的輸出——在為臨床醫生提供真正價值的同時滿足法規要求。
Key Takeaways
- 系統提示在每次對話開始時定義模型的行為、角色和約束。
- 它們是開發者控制的指令,與使用者訊息分離。
- 效果取決於模型的指令遵循能力(透過微調改善)。
- 系統提示消耗上下文視窗的 token,因此簡潔性很重要。
- 使用一致的系統提示進行微調可以加強模型對這些指令的遵從。
How Ertas Helps
Ertas Studio 允許使用者定義包含在訓練資料格式化中的預設系統提示,確保微調模型學會可靠地遵循它。在 Studio 中進行模型評估時,使用者可以測試不 同的系統提示對其微調模型的效果以優化行為。這種「使用系統提示訓練」的工作流程意味著 Ertas 調優的模型比僅在推論時引入系統提示的模型展現出更強的指令遵從。
Related Resources
Chat Template
Context Window
Fine-Tuning
Inference
Prompt Engineering
Getting Started with Ertas: Fine-Tune and Deploy Custom AI Models
Privacy-Conscious AI Development: Fine-Tune in the Cloud, Run on Your Terms
llama.cpp
Ollama
Ertas for Healthcare
Ertas for SaaS Product Teams
Ertas for Customer Support
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.