🤖 大模型基础 🟡 进阶 ⏱ 12 分钟

🧭 大模型的「怪脾气」:一张直觉地图

为什么 9.11>9.9?为什么感叹号没用?为什么拒绝后说服无效?——五个底层直觉,串起所有现象。

1

别背结论,看懂直觉

🎯 现象很多,原理很少

大模型有一堆「怪现象」:9.11 > 9.9、感叹号没用、重复两遍能提升、拒绝后说服没用……

背后的底层原理其实只有几个。看懂直觉,就再也不用背现象。

🧭 这篇是一张地图

把现象归类到它们对应的底层机制:注意力 / Tokenizer / KV缓存 / 概率采样 / 语义激活

每个直觉,解释一类现象。以后遇到新现象,你自己就能推出来。

2

直觉① 注意力:总量有限,会被稀释

⚖️ 注意力是「分蛋糕」

模型读每个词,都要把有限的注意力权重分给句子里所有词。

无关信息越多,真正重要的词分到的注意力就被稀释

⚠️ 感叹号 ≠ 强调

指令后面加一堆 `!!!!`——它们只是大量低信息量的冗余 token,也在抢注意力。

结果:真正的指令被稀释,反而更不被重视。

❗ 无效强调
请务必总结!!!这个非常重要!!!
1 一堆感叹号 = 大量噪音 token
2 它们也在抢注意力权重
3 真正的指令反而被稀释
✅ 有效强调
关键句放开头 + 重复一次关键要求
1 关键信息前置,先被读到
2 重复一次,权重叠加强化
3 注意力集中,更被重视

所以:重复两遍 = 关键内容出现两次,注意力权重叠加,性能提升重复五遍 = 大量冗余噪音占满注意力,关键信息被淹,性能下降。不是越多越好,而是「适度强化 + 避免噪音」。

3

直觉② Tokenizer:模型根本不「看字」

🔤 模型只见 token 编号

模型不认数字、不认字母,它只见一串 token 编号

它没有人类「读字」「数数」的能力——一切判断都基于 token 序列和训练分布。

📦 子词切分

`strawberry` 会被切成 st/raw/berry 等子词,模型压根「看不到」单个字母 r。

所以它数不清几个 r——很正常。

🔢 为什么 9.11 > 9.9?
模型按 token 判断,不按数学大小
1 9.9 和 9.11 的 token 切分不同
2 模型基于训练分布「直觉」判断
3 它不是在比较数值大小
🍓 strawberry 有几个 r?
strawberry → st/raw/berry
1 被切分成子词
2 看不到单个字母 r
3 数错 r 的数量,很合理
4

直觉③ KV 缓存:每次都要重读全部上下文

♻️ 每次生成都重算上下文

每生成一个新 token,模型都要把前面所有 token 的注意力重算一遍(KV 矩阵)。

上下文越长,计算越大、越占窗口——这就是为什么要管理 context

📐 拒绝后说服没用

模型拒绝 = 它在当前上下文里已经得出判断。

继续说服只是继续灌 token,不会改变它已固化的理解,反而浪费上下文和时间。

🎬 context 管理的重要性
问题
上下文越长,每次生成要重算的越多 → 变慢、变贵、还容易「顾此失彼」
对策
主动管理:截断无关内容、做摘要、只检索相关片段塞进上下文
提示
长对话里早期的「承诺/偏好」会被后面的内容稀释——关键约束值得重申
5

直觉④ 概率平了 → 随机

🎲 生成是「按概率采样」

模型每次从词表按概率采样挑一个 token。概率集中时输出稳定;概率很平时,挑哪个都差不多 → 看起来「随机」。

🌫️ 什么时候概率会平

输入模糊、低频、训练没覆盖时,模型把握低、概率摊平。

泛化差/过拟合的模型更明显——对陌生输入信心不足,只能「猜」。(温度调高也会更随机)

所以「随机回复」多来自 概率摊平 + 采样,本质是模型没见过、没把握,不是它故意乱来。

想让它稳:给足上下文、缩小任务、调低温度;想让它发散:调高温度、给开放任务。

6

直觉⑤ 语义激活:提到什么,激活什么

✨ 模型按「语义激活」生成

提到一个概念,就会激活它对应的语义表示,生成时更容易带出来。

「不要恐慌」会激活「恐慌」这个词的语义。

👍 正面 > 负面

所以正面写法更有效:「请保持冷静」直接激活「冷静」,比「不要慌张」(激活慌张)更好。

指令同理:强调「要做什么」优于「别做什么」。

🚫 负面写法
请不要慌张、不要出错
1 激活「慌张」「出错」的语义
2 模型更容易往这带
✅ 正面写法
请保持冷静,认真检查
1 直接激活「冷静」「认真」
2 引导输出朝目标语义走
7

总结:现象 → 原理 对照表

现象🧭 底层直觉
感叹号稀释注意力注意力总量有限,噪音抢权重
重复2遍提升、5遍降低适度强化 vs 冗余噪音
9.11 > 9.9Tokenizer 不看数值大小
strawberry 数错 r子词切分,看不到单字母
上下文越长越占资源KV 缓存每次重算
拒绝后说服无效上下文判断已固化
随机回复概率摊平 + 采样
正面指令更有效语义激活

记住这张地图:遇到「怪现象」,先问自己——它属于注意力、Tokenizer、上下文、概率、语义里的哪一个?答案往往就出来了。

一句话总结

看懂五个底层直觉——注意力会稀释、模型不认字、上下文要管理、概率平了会随机、提到什么激活什么——大模型的所有「怪脾气」你都能自己推理出来,不用再背现象。

🎤 面试问答 · 口语化回答
面试官很喜欢用「怪现象」考你对模型原理的理解,你能用直觉推出来:
面试官为什么模型会觉得 9.11 > 9.9?

因为模型不是按数学大小比较的,它只看到 token 序列。9.9 和 9.11 被 Tokenizer 切成不同的 token,模型是基于训练分布给出一个“直觉”判断,它没有做数值运算的能力。所以这类问题别期待它有严格的数学直觉。

💡 加分点:可以补充:同样地,它数不清 strawberry 里有几个 r,因为被切成了子词,看不到单个字母。
面试官为什么 prompt 重复两遍能提升、重复五遍反而降低?

这跟注意力机制有关。重复两遍等于关键内容出现两次,注意力权重叠加,起到强化作用;重复太多就变成大量冗余噪音 token,它们也在抢占有限的注意力权重,把真正的指令稀释掉了。所以是“适度强化 + 避免噪音”。

💡 加分点:顺带可以讲:所以加一堆感叹号不是强调,反而稀释注意力。
面试官为什么模型拒绝后继续说服没用?

因为模型是在当前上下文里得出判断的,它的理解已经固化了。继续说服只是往上下文里加更多 token,并不会改变它已有的判断,反而浪费上下文长度和计算资源。与其死缠,不如换一个角度重新组织问题,或补充它缺失的信息。

💡 加分点:这也能解释 context 管理的重要性:上下文不是越长越好,要主动截断、摘要、按需检索。
00:00