你可以将注意力机制看作是单词之间的一个撮合服务 。每个单词都会制作一个检查表(称为查询向量) , 描述它寻找的词的特征 。每个词还会制作一个检查表(称为关键向量) , 描述它自己的特征 。神经网络通过将每个关键向量与每个查询向量进行比较(通过计算点积)来找到最佳匹配的单词 。一旦找到匹配项 , 它将从产生关键向量的单词传递相关信息到产生查询向量的单词 。
例如 , 在前面的部分中 , 我们展示了一个假设的Transformer模型 , 它发现在部分句子“John wants his bank to cash the”中 , “his(他的)”指的是“John(约翰)” 。在系统内部 , 过程可能是这样的:“his”的查询向量可能会有效地表示为“我正在寻找:描述男性的名词” 。“John”的关键向量可能会有效地表示为“我是一个描述男性的名词” 。网络会检测到这两个向量匹配 , 并将关于"John"的向量信息转移给“his”的向量 。
每个注意力层都有几个“注意力头” , 这意味着 , 这个信息交换过程在每一层上会多次进行(并行) 。每个注意头都专注于不同的任务:
• 一个注意头可能会将代词与名词进行匹配 , 就像我们之前讨论的那样 。
• 另一个注意头可能会处理解析类似"bank"这样的一词多义的含义 。
• 第三个注意力头可能会将“Joe Biden”这样的两个单词短语链接在一起 。
诸如此类的注意力头经常按顺序操作 , 一个注意力层中的注意力操作结果成为下一层中一个注意力头的输入 。事实上 , 我们刚才列举的每个任务可能都需要多个注意力头 , 而不仅仅是一个 。
GPT-3的最大版本有96个层 , 每个层有96个注意力头 , 因此 , 每次预测一个新词时 , GPT-3将执行9216个注意力操作 。
一个真实世界的例子
在上述两节内容中 , 我们展示了注意力头的工作方式的理想化版本 。现在让我们来看一下关于真实语言模型内部运作的研究 。
去年 , 研究人员在Redwood Research研究了GPT-2 , 即ChatGPT的前身 , 对于段落“When Mary and John went to the store, John gave a drink to(当玛丽和约翰去商店 , 约翰把一杯饮料给了)”预测下一个单词的过程 。
GPT-2预测下一个单词是Mary(玛丽) 。研究人员发现有三种类型的注意力头对这个预测做出了贡献:
• 他们称之为名称移动头(Name Mover Head)的三个注意力头将信息从Mary向量复制到最后的输入向量(to这个词对应的向量) 。GPT-2使用此最右向量中的信息来预测下一个单词 。
• 神经网络是如何决定Mary是正确的复制词?通过GPT-2的计算过程进行逆向推导 , 科学家们发现了一组他们称之为主语抑制头(Subject Inhibition Head)的四个注意头 , 它们标记了第二个John向量 , 阻止名称移动头复制John这个名字 。
• 主语抑制头是如何知道不应该复制John?团队进一步向后推导 , 发现了他们称为重复标记头(Duplicate Token Heads)的两个注意力头 。他们将第二个John向量标记为第一个John向量的重复副本 , 这帮助主语抑制头决定不应该复制John 。
简而言之 , 这九个注意力头使得GPT-2能够理解“John gave a drink to John(约翰给了约翰一杯饮料”没有意义 , 而是选择了“John gave a drink to Mary(约翰给了玛丽一杯饮料)” 。
这个例子侧面说明了要完全理解LLM会有多么困难 。由五位研究人员组成的Redwood团队曾发表了一篇25页的论文 , 解释了他们是如何识别和验证这些注意力头 。然而 , 即使他们完成了所有这些工作 , 我们离对于为什么GPT-2决定预测“Mary”作为下一个单词的全面解释还有很长的路要走 。
例如 , 模型是如何知道下一个单词应该是某个人的名字而不是其他类型的单词?很容易想到 , 在类似的句子中 , Mary不会是一个好的下一个预测词 。例如 , 在句子“when Mary and John went to the restaurant, John gave his keys to(当玛丽和约翰去餐厅时 , 约翰把钥匙给了)”中 , 逻辑上 , 下一个词应该是“the valet(代客停车员)” 。
推荐阅读
- 非语言沟通的技巧有哪些 非语言沟通的技巧有哪些
- 网络语言黑胶指什么 黑胶是干什么用的
- 岚语是哪国语言 岚语是什么语言
- 刀郎新歌被业内人士猛批:通俗简陋、阴阳怪气,格局太小了!
- 刚需的通俗说法 刚需和必需的区别
- 阿根廷说什么语言 阿根廷说什么语言为主
- 回族有自己的语言吗 中国回族有自己的语言吗
- 网络流行语沙发是什么意思 网络语言中沙发是什么意思
- 牡丹花语言是什么 牡丹花的语言
- a在c语言中是什么意思 c!=a在c语言中是什么意思
