引言:为什么“角色”和“优先级”值得被认真讨论?
在使用 ChatGPT、Claude、Cursor、Copilot 等工具时,我们往往会默认一个前提:
模型“应该”遵守规则,“应该”拒绝越权请求,“应该”像一个合规的助手。
但如果从计算机科学的角度审视,这些“应该”本身就非常反直觉:
- 神经网络并没有 if-else
- Transformer 没有权限系统
- 语言模型本质上只是概率生成器
那么问题来了:
一个只会预测下一个 token 的模型,是如何学会“谁的话更重要”的?
理解这个问题,不仅有助于我们正确评估大模型的能力边界,也直接影响:
- Prompt 设计方式
- Agent / Copilot 系统架构
- 安全与越权风险判断
澄清一个常见误区:LLM 不是单一范式
在很多讨论中,“大模型”被当成一个统一概念,但实际上这是一个严重过度简化的说法。
从工程和训练目标出发,大模型至少可以分为两类:
- 语言建模器(Language Model)
- 指令执行器(Instruction-following Model)
二者在行为层面看起来相似,但本质完全不同。
纯基础模型(Base Model):语言分布的近似器
1. 定义与代表
Base Model 是最接近“数学意义上语言模型”的形态,其目标极其纯粹:
在给定上下文的情况下,预测下一个 token 的概率分布。
典型代表包括:
- GPT-2(原始版)
- LLaMA Base
- Qwen Base
- Mistral Base
2. 它能做什么?不能做什么?
它能做的:
- 学习语言结构
- 模仿文本风格
- 生成连贯段落
- 拟合训练语料中的模式
它不能做的:
- 理解“你在提问”
- 区分“指令”和“内容”
- 理解角色、权限和边界
- 判断输出是否“合规”
当你对 Base Model 说:
你现在是一个 AI 助手,请严格遵守以下规则……它并不知道你在“下达规则”,
它只是把这句话当成普通文本的一部分。
3. 一个重要结论
👉Base Model 不存在“优先级”的概念。
任何看似“听话”的行为,都是文本统计上的巧合,而不是能力。
Chat / Instruct Model:被“教会服从”的模型
1. 从 Base 到 Chat,中间发生了什么?
Chat Model 并不是“换了架构”,而是:
- 继承 Base Model 的语言能力
- 通过额外训练重塑输出偏好
这一步通常包括:
- Instruction Tuning(指令微调)
- RLHF / RLAIF(基于反馈的强化学习)
- 安全与合规数据对齐
2. Role 从哪里来?
关键点在于:
role 不是文本,而是协议。
在训练和推理阶段,模型接收的不是一段字符串,而是结构化输入,例如:
{"role":"system","content":"You are a helpful assistant"}模型被反复训练成:
- 在 system 指令存在时,严格遵守
- 在 system 与 user 冲突时,选择 system
- 在违反 system 的输出上被惩罚
久而久之,模型内部形成了稳定的行为偏好。
3. system > user 是“逻辑判断”吗?
不是。
这是一个统计意义上的偏好函数:
- 在相似上下文下
- “遵守 system”的输出概率更高
- “无视 system”的输出概率被压低
模型并不会“思考优先级”,
它只是被训练成这样更容易输出某些 token 序列。
工业级 Chat Model 的共性与差异
1. 为什么 system 设计成最高优先级?
这是一个工程选择,而非理论必然。
原因包括:
- 可控性:平台可插入规则
- 安全性:统一合规边界
- 稳定性:避免 prompt 漂移
- 可扩展性:适配 IDE / Agent / Copilot
2. 不同模型的差异来源
即使都支持 role,不同模型仍有显著差异:
| 维度 | 差异本质 |
|---|---|
| system 强度 | 对 system 的服从概率 |
| user 覆盖能力 | system 是否允许 override |
| 注入防御 | 是否区分“指令”和“内容” |
| 上下文裁剪 | token 不足时先丢谁 |
这也是为什么同一个 prompt 在不同模型上表现完全不同。
为什么 prompt injection 永远无法彻底解决?
这是一个非常关键但经常被误解的问题。
1. 原因并不在“实现不够好”
而在于:
语言模型的输入空间是统一的 token 序列。
模型无法从数学上 100% 区分:
- “这是规则”
- “这是内容”
- “这是攻击”
所有防御,本质上都是概率抑制,而非逻辑封锁。
2. 工程现实
因此工业界的共识是:
- 不追求“绝对安全”
- 而是追求“可控 + 可预期 + 可回滚”
为什么 Base Model + Prompt ≠ Chat Model?
这是很多工程实践中的坑。
原因在于:
- Prompt 是软约束
- Role + RLHF 是硬偏好
- 二者不在同一层级
这也是为什么:
- Copilot / Cursor / ChatGPT
- 都不会直接暴露 Base Model
从架构角度再看一次
可以用一句话总结整个演进路径:
Base Model 解决“会不会说话”,
Chat Model 解决“该不该这么说”。
而 role、system、优先级,正是这个“该不该”的工程实现方式。
结语:理解边界,比迷信能力更重要
当我们理解:
- role 是被训练出来的偏好
- system 是工程协议的一部分
- 安全不是逻辑保证,而是概率约束
就不会再对大模型产生不切实际的期待。
真正成熟的使用方式,不是“让模型更聪明”,
而是“在它可控的范围内使用它”。