Transformer和ChatGPT怎么来的,会去哪里?

本质是概率,通过概率从文本中寻找相关性。人类智慧是否来源于相关性,相关性是否已在人类创造的数字文本中体现,机器是否知道如何寻找相关性。量变是否能引起质变。

ChatGPT——Transformer——Self-Attention——Attention——LSTM——RNN——Neural machine translation——Phrase-based translation

自然语言处理(NLP),包括自动填词、拼写检查、翻译、问答,本质都是基于文本,让机器将一串词变为另一串词。上述任务统统可以转换为根据已经输入的词语串预测接下来的词语(n-gram),基于统计求条件概率,即n-1个词同时出现的情况下,第n个词的概率有哪些。统计需要素材,即语料,规模越大、越完备,条件概率集越准确。

关键在于如何求得条件概率集。传统基于短语字典的方式(Phrase-based Translation,2003)预测准确度和灵活性不足。随着算力提升,引入神经网络(Neural Machine Translation,NMT,2013)。在输入和输出之间增加隐层(Hidden layer),隐层由多个权重和激发函数构成,可以自动提取输入和输出之间“隐含”的关系,尤其是非线性关系。隐层越多,提取的隐含关系越丰富,条件概率集越完备,但计算负担也越大。神经网络还能通过反馈自动更新概率集。

NMT的问题:1、输入长度n固定,隐含假设是第n个词只与前n-1个词有相关性,n大意味着参考的词多,条件概率的“条件”明确,“概率”准确。但n太大,可能在语料中根本找不到匹配的“条件”,算法失效。2、没有考虑语序,即输入词串的先后顺序不影响预测结果,这显然不符合语言特征。

于是引入循环神经网络(RNN,2014),循环是指隐层不断对自己之前状态的累加,即求解下一个词的隐层状态时,激发函数会使用之前所有的隐层状态作为输入。这样无论输入多少词语,预测下一个词语时之前的词语都会被考虑。另外,RNN的状态累加有个特点,序列中离预测词越近的词,累加权重越高,这样就建立起了与输入先后顺序有关的相关关系。

RNN问题在于:1、隐层权重固定,跟着算法累积,导致离预测词越远的词在预测词中的权重会指数下降,造成处理长句子的准确性下降;2、预测严格按照语序一个个来,与时间强耦合,无法并行处理,计算时间难压缩。

为了解决长句子难题,LSTM算法(Long Short-Term Memories,2014)被引入,隐层权重不固定,每次累积之前都调整。同时,使用Encoder-Decoder机制,把输入和输出解耦:Encoder负责利用神经网络寻找输入序列的特征,Decoder负责利用神经网络寻找具有类似特征的句子。输入句子和输出句子的长度(或构成)不再一一对应,NLP向AIGC迈出了一大步。

Attention机制(2015)是隐层权重调整的方法之一,思路很直观:权重应该按词语的相关度调整。因此在求Encoder的新隐层状态时,求它与所有历史状态的相关性,据此调整历史状态权重,将调整后的隐层状态作为Decoder输入。

Attention起初作为RNN和LSTM补充,无意中揭露一个事实:语言中的语序并不是先后,而是距离。NLP算法可以与时间解耦。

2017年,Google研究人员发布了Transformer,走出了顺理成章的一步——用Self-Attention完全替代RNN,与时间解耦。这样就可实现并行计算,无论神经网络多少层、多少个参数,都可以通过部署尽可能多的硬件资源来缩短计算时间,为大力出奇迹(大规模语言模型)提供了条件。

之后就出现了GPT、BERT、ChatGPT。