很多初学者有一个误区:认为大模型天生就会对话。其实不然,原始的底座模型(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 需要数字化: 越具体的约束,越能降低模型“跑偏”的概率。