大模型底层逻辑(三):指令遵循与系统提示词,如何给 AI 立规矩?

5 阅读2分钟

很多初学者有一个误区:认为大模型天生就会对话。其实不然,原始的底座模型(Base Model)只会“续写”。如果你问它“北京的首都在哪?”,它可能会接着写“上海的首都在哪?”。

它是如何变成现在这种能听懂指令、遵守规矩的 Assistant(助手) 的?

1. 从“续写机”到“执行机”:指令微调 (SFT)

为了让模型听话,科学家们喂给了它成千上万组 [Instruction, Response] 数据。

  • 输入: “请帮我写一首关于大海的诗。”
  • 输出: “蔚蓝的波涛...”

经过这个阶段,模型形成了一种强烈的条件反射:每当它在上下文的最前端看到特定的标记(比如 [INST]<|system|>),它的注意力机制(Attention)就会进入“高度戒备”状态,优先处理这些指令。


2. 系统提示词 (System Prompt):数字生命的“出厂设定”

在架构中,System Prompt 是所有交互的起点。它被放置在上下文的最顶端,拥有最高等级的注意力权重。

  • 定位: 它是模型的“潜意识”和“核心宪法”。
  • 作用: 1. 人格设定: “你是一个冷静、客观的分析师。” 2. 能力声明: “你可以调用搜索工具,但不能处理图片。” 3. 负面约束 (Rules): “绝对不要提及竞争对手的产品。”

代码段

graph TD
    subgraph Context_Window [上下文窗口]
        SP[System Prompt: 核心规则/人格] 
        History[History: 之前的聊天内容]
        Current[User Input: 当前问题]
    end

    SP -- "最高注意力权重" --> LLM{LLM 决策层}
    History -- "背景参考" --> LLM
    Current -- "当前任务" --> LLM
    
    LLM --> Output[符合规则的回答]

    style SP fill:#ff9999,stroke:#333,stroke-width:2px

3. 规则 (Rules) 与 约束 (Constraints)

在博客中,你可以重点解释为什么 Rule 必须写得极其明确。AI 并不理解暧昧的词汇,它理解的是概率的边界

  • 模糊的 Rule: “请简短回答。”(模型不知道多少字算短)
  • 明确的 Rule: “请将回答控制在 50 字以内,并使用 Markdown 列表格式。”

加载原理: 当我们在谈论“加载一个 Skill”时,本质上是将这个 Skill 对应的特定 Rules 动态插入到 System Prompt 之后。

例子: > 系统监测到你在写代码 -> 自动加载 “代码优化 Rule” -> 模型的注意力瞬间锁定了“性能”、“内存泄漏”等关键词。


4. 为什么会有“越狱” (Jailbreak)?

了解了指令遵循,你就能理解“越狱”的原理了: 越狱就是通过极其冗长、复杂的 User Input,诱导模型的注意力机制发生偏移,让它关注“角色扮演”而忽略了最顶层的 System Prompt 约束。


5. 总结:第三课的心得记录

  • 指令是训练出来的: 模型听话不是天生的,而是通过 SFT 刻进“骨子”里的反射。
  • System Prompt 是锚点: 它是整个系统运行的基调,决定了后续所有 Token 的生成方向。
  • Rules 需要数字化: 越具体的约束,越能降低模型“跑偏”的概率。