Transformer是一种特殊的神经网络,一种机器学习模型。
谷歌在2017年推出的原版Transformer,论文《Attention Is All You Need》,专注于将一种语言的文本翻译成另一种。
而我们要关注的Transformer变种,即构建ChatGPT等工具的模型,则是输入一段文本、图像或音频,预测文本接下来的内容,并将结果展现为,接下来不同文本片段的概率分布。
你可能觉得预测下一个词与生成新文本的目标截然不同,但有了这样的预测模型后,要让它生成更长的文本,一个简单的方法是,给它一个初始片段,然后从它给出的概率分布中取一个片段,追加到文本末尾,再用所有文本包括追加的内容,进行新一轮的预测。
这个重复预测和抽样的过程,正是你与GPT或其他大语言模型,进行交互时所遇到的一个一个打印出来的词。它的展现过程,也是它的原理。
数据如何在Transformer里流动?
聊天机器人生成特定单词时,背后实际在做的事情,主要分5步。①分词 ②变id ③变向量 ④加位置编码 ⑤计算attention。
1、分词。将输入内容切分为多个小片段,每个小片段称为tokens;在文本中,token往往是单词、单词片段或其他字符组合。
对于图像或声音而言,token则可能代表小块图像或声音片段。
每个token对应一个向量,即一组数字。目的是编码该片段的含义。
如果将向量看作高维空间中的坐标,那么意思相近的词,对应的向量也相近。
这些向量随后经过attention block处理,使得向量能够相互交流。通过相互传递信息,来更新自己的值。
例如机器学习中的model和时尚中的model含义不同,attention block就是找出上下文中哪些词会改变哪些词的含义,以及这些词应该更新为何种含义。