作者:中联科创特约嘉宾尹智
白话ChatGPT的根 - Transformer模型和"注意力"机制 —— ChatGPT
ChatGPT的核心模型叫Transformer,诞生了Transformer模型的论文叫“Attention is all you need”,因为其巧妙地引入一个叫"attention"的机制,这个机制简单说就是让模型知道,一段文字里什么时候该注意什么地方。我用我见过的一个比较好的类比来解释:
有一个侦探,在一个犯罪现场,看到了很多线索(输入的文字),要通过这些线索逐步做出解释(逐词生成),直到做出所有解释,破案(生成所有目标文本)。
为了在每一步始终关注在跟当前侦破步骤最重要的部分,而忽视掉跟这一步没有太大关联的部分,侦探需要一种“注意力”机制,让他始终围绕在跟当前破案步骤最相关的线索(输入部分的文字编码)上,怎么找到当前最相关的线索呢?他从已有的线索(输入的词中)出发,首先他会就每一个线索(词)提出问题:“这个线索在整个犯罪现场里,究竟是个什么定位啊?”,因为一个线索(词)会因为犯罪现场(上下文)跟所有其他的线索(词)都有或多或少关联,所以这个问题需要让每个其他线索(词)一起来回答;当得到每个其他线索(词)的回答后;这个线索就形成了自己在现场的“定位”—— 在这个环境(上下文)里跟所有其他线索(词)的两两相关性;这个时候,还需要回答的是,综合考虑了这个线索在整个犯罪现场的定位后,这个线索究竟对破案(的某一步骤)有多大价值(应该放多少注意力)?这个问题,同样需要所有的线索一起来回答,当所有线索又回答出来后,这个线索就算是处理完了。
通过对每一个线索重复这种操作,侦探就得到了每一条线索在犯罪现场的定位,以及这条线索在综合考虑其他线索后,能够给出的破案信息。这就是Transformer模型对语义的编码过程。而解码过程(文字生成过程),就是侦探一步步破解案件(逐词生成文字)的过程,因为他有了所有的线索分析信息,根据这些信息,他对所有可能的案情解释(词汇表里所有词汇)做一个概率计算,选择概率最高的那个,作为当前步骤的解释(生成一个词)。重复这个过程,直到输出所有的解释(生成任务要求的所有文字),也就破案了。当然,一开始他可能得不出正确的解释,他需要反复训练 —— 也就是根据正确的事实解释和自己的解释的差距,来调整自己的参数(人工神经网络的权重)—— 也就是前面提到的每个线索和其他线索的关联值,以及每个线索综合上下文后的破案贡献值 —— 直到他可以正确推断出案件。—— 仅代表尹智个人观点 Ken's personal view only