大模型推理(三):多头注意力机制 multi-head attention

Transformer的自注意力机制就像一个房间里挤满了人,他们都在互相倾听。每个“token”(词元、单词的片段)都会问:“现在这个房间里谁对我来说最重要?”,并相应地分配权重。最终得到的不仅仅是一条思路,而是一张关联图,一个不断变化的领域,记录着谁在“观察”谁。

模型一层一层地构建出更丰富的关联图。较低的层级捕捉简单的模式(例如词序);较高的层级开始捕捉抽象的概念(例如情绪、语气,或者句子中两个相距很远的单词在概念上属于同一类)。当回复出现时,成千上万个这样的小注意力图已经形成,并折叠成你看到的文字。

在输入端,Transformer 会一次性获取整个序列。每个 token 通过自注意力机制查看其他 token,并构建一个相关性网络。这就是它如此擅长处理长距离依赖关系的原因:它不必像 RNN 那样逐个 token 地读取;它可以并行地查看整个字段。

不过,在输出端,模型仍然一次生成一个 token。生成一个 token 后,模型会将其附加到上下文中,重新计算网络(或部分计算),然后预测下一个 token。这就是模型“输入”回复时产生流式传输效果的原因。在模型内部,它会查看迄今为止的整个输入(你的单词 + 模型之前的 token),并预测最有可能的下一个 token。


现在,关于多头注意力机制(multi-head attention),这是该设计中最巧妙的部分之一。单一的注意力机制会计算一组“查询-键-值”关系,这就像在问“这里什么重要?”。但语言是多方面的,你可能需要关注:
- 句法结构(谁是主语,动词在哪里),
- 语义关系(哪些概念相互关联),
- 语气和语气,
- 远距离指称(例如代词或隐喻)。

因此,该模型并非只有一个“头”扫描相关性,而是在每一层都有多个头。每个头都会学习自己的注意力模式。有些头擅长语法,有些头擅长远距离依赖关系,还有些头擅长标点符号或节奏。然后,所有这些头的输出被连接和混合,使该层在传递到下一层之前拥有丰富的多视角视图。

用符号表示,对于一个 head,我们有如下形式(简化版本):

posted @ 2025-10-02 08:47  CathyBryant  阅读(105)  评论(0)    收藏  举报  来源