AI解剖课堂 · Part 6 组装 Transformer
第 61 章 从头到尾走一遍
Q. ChatGPT 写出一个词的时候,里面到底发生了什么?
- 把“我 今天 去”放进我们组装好的 GPT,从头到尾跟着它走一遍。
- 首先,分词器把文字切成片段(词元),每个词元都对应词表里的一个编号(第 29 章)。
- 嵌入按编号取出一串带着意思的数字。在 GPT-3 里,一个词元就是 12,288 个数字(第 33 章)。
- 再加上表示“第几个”的位置信息(第 36 章)。现在,3 个向量进入模块。
- 进入模块。先归一化,再做注意力!“去”看向前面的“我”“今天”和它自己(第 45 章)。
- 把看过之后混合来的结果,加到高速公路上原来的向量上(第 56 章)。数字是不是变了一点?
- 再做一次归一化,前馈网络给每个词加上思考。这个结果也加回原来的向量(第 55 章)。
- 这就是模块的一层。同样的事重复 96 层,每个向量里就会一层层积累起上下文(第 58 章)。
- 用走出 96 层的“去”的向量,给 50,257 个词元打分。学校 3.0,图书馆 2.1,公园 1.5(第 60 章)。
- 用 Softmax 变成概率:学校 52%,图书馆 21%,公园 12%。全部加起来是 100%(第 14 章)。
- 按概率抽出一个:“学校”!接到句子末尾,就成了“我今天去学校”(第 1 章)。
- 然后把这句话送回最上面,生成下一个词元(第 2 章)。ChatGPT 的回答全是这样一趟趟走出来的。
本章小结
- 分词器 → 嵌入 + 位置信息 → [归一化·注意力·相加·归一化·前馈网络·相加] × 96 → 输出 + Softmax → 抽取并接上。
- 词向量每经过一层,就多加一点上下文;最后一个词的向量决定下一个词。
- 生成一个词元 = 走一趟这段旅程。接好的句子再从头开始。