在上一篇中,我们知道了 AI 把文字拆成了 Token,并给它们分配了空间坐标(Embedding)。但问题来了:孤立的单词是没有意义的。
比如“苹果”这个词:
- 在“苹果很好吃”里,它是水果。
- 在“苹果发布了新手机”里,它是公司。
AI 是如何根据周围的词来确定一个词的具体含义的?答案就是 Attention(注意力机制) 。
1. 什么是注意力机制?(打比方)
想象你在参加一个嘈杂的鸡尾酒会。虽然屋子里有 50 个人在说话,但当有人喊你的名字时,你会立刻过滤掉所有背景噪音,只听那一句话。
大模型的注意力机制也是如此: 当它处理一个 Token 时,它会给序列中所有的其他 Token 打分,决定哪些词对理解当前词最重要。
注意力分配图(Mermaid)
以句子 The animal didn't cross the street because it was too tired 为例,看 AI 如何理解 it:
代码段
graph TD
IT[Token: it]
subgraph "Attention Weights (权重分配)"
IT -- 85%权重 --> Animal[animal]
IT -- 5%权重 --> Street[street]
IT -- 10%权重 --> Tired[tired]
end
Animal --> Result[结论: it 指代的是 animal]
style Animal fill:#f96,stroke:#333
2. 核心三要素:Query, Key, Value (Q, K, V)
这是大模型面试或深入学习时必考的“三剑客”。我们可以把注意力计算想象成一次相亲/匹配过程:
- Query (查询 - Q): “我想要什么?”(当前 Token 发出的搜索请求)。
- Key (键值 - K): “我有什么?”(其他 Token 贴在身上的标签)。
- Value (数值 - V): “我具体的内容是什么?”(匹配成功后提取的信息)。
流程: Q 与所有的 K 进行匹配计算,算出一个相关性分数,然后根据分数把对应的 V 加权求和,就得到了这个词在当前语境下的真实含义。
3. 上下文窗口 (Context Window):AI 的“短期内存”
注意力机制虽好,但它有个致命弱点:计算量巨大。 因为每一个 Token 都要和之前所有的 Token 算一遍关系,随着字数增加,计算量呈指数级增长。
这就是为什么:
- Context Window 是有限的: 比如 128k 或 1M Token。超过这个长度,模型就会“断片”,忘记最开始的内容。
- 这也是 RAG 存在的意义: 既然内存(Context)放不下整本书,我们就只把最相关的几页(通过注意力计算发现最相关的部分)塞进这个窗口。
4. 衔接 2026 年新架构:系统提示词的作用
为什么 System Prompt(系统提示词) 放在最前面最有效?
因为在注意力机制中,第一批进入窗口的 Token 会被后续所有的 Token “反复观看”。
- 如果你在 System Prompt 里写了“你是一个刻薄的评论家”,
- 那么后面生成的每一个词,都会给“刻薄”和“评论家”这两个词分配极高的注意力权重。
加载原理启示: 所谓的“加载 Skill”或“注入 Rule”,本质上就是通过操纵注意力权重,强行改变模型生成下一个词的概率分布。
5. 总结:第二课的心得记录
- 词无定义,义随境迁: 一个词的含义取决于它对谁付出了“注意力”。
- QKV 是核心: 理解了 QKV 的匹配,就理解了模型是如何进行逻辑关联的。
- 内存是昂贵的: 上下文窗口的限制,决定了我们必须使用 RAG 和 MCP 来实现长效记忆。