白话Transformer
Transformer是AI的核心算法,但是比较难懂,总结了几篇文章,尝试白话一下
我们以翻译内容为例,
1. RNN
通过循环的方式,一个字一个字的翻译,类似于接龙,每个人把之前的内容加上自己要翻译的内容,全部说给下一个人
但问题很明显,越后面的人,要记住的越多,内容一长就记不住,或者内容爆炸而崩溃
2. LSTM
为了解决这个问题,接龙规则变了,就是每个人不需要全部记住历史内容,通过自己的理解,总结一下,这样历史内容就大大缩短了,
不过上下文长度,包括总结偏差等问题依旧存在
3. Attention 注意力机制
LSTM 就像是一个按顺序阅读的人,虽然它也可以记住一些重要的信息,但是如果这些信息距离当前位置很远,那么它可能就会忘记。而注意力机制就像是可以随时跳回去查看重要信息的人,所以它可以更好地从全局的视角来关注重点。
注意力机制通过把文字编码成带位置信息的embeddings向量,然后计算出每个相关词语的关系分数score,通过分数记录词语间的相关度。
注意力机制又可以分为全局自注意力,交叉自注意力,因果自注意力。
这几种注意力中有三个参数,根据这三个参数通过softmax函数来计算注意力值,这三个参数大多是词向量
Q = 输出序列中的当前位置词向量
K = 输出序列中的所有位置词向量
V = 输出序列中的所有位置词向量
4. Softmax
这个函数主要作用就是将这些值归一化,就是矩阵的所有值加起来等于1,也就是按100%分配一个几率(图34)
5. Multi head attention
多头注意力机制是在注意力机制基础上的一个创新,简单来说,它通过把查询(Q),键(K),值(V)这三个矩阵分成好几个小块,每一块称为一个“头”;每个“头”都会独立进行自注意力运算,然后把所有“头”的结果拼接在一起,再进行一次特定的变换,得到最终的输出。
多头注意力有几大优点,比如,它能辨识出分词之间的各种关系,无论是主谓、动宾还是名形关系;同时,多头注意力还能提升模型的能力和表现力,因为模型能从序列的多种表现形式。此外,多头注意力还能让模型在运算时更高效、更便于并行处理,因为它将每个头的维度降低了,从而可以同时处理多个头。
6. Transformer
有了注意力机制,transformer就可以识别文章的重点,相关关系,指代语义,语法,甚至包括情感
Transformer的两个组件 Encoder和Decoder
Encoder(编码器)
编码器相当于理解,理解的过程包括:分词,带位置的向量化,自注意力机制,输出编码(图1)
Decoder(解码器)
解码器相当于答复,主要是预测,选择概率最高的词输出,直到形成完整的段落。在生成词的过程中,往往会通过采样的方式,赋予模型一定的随机性,因此每次生成的句子都有所不同(图2)
大模型的参数量主要是通过对Transformer的Decoder模块进行堆叠而上升的。比如开源大语言模型LLAMA-2就由32个Transformer Decoder进行堆叠,参数量可达几十亿甚至几百亿。OpenAI的GPT-4作为领先全球的大模型,甚至达到了1.76万亿个参数。巨大的参数量使大模型在具备超强的表达能力的同时也消耗着大量的资源,GPT-4在训练过程中,总计使用约3125台机器(25000张A100)进行训练,训练集用到了13万亿个Token,训练一次的成本需要6300万美元。
参考:
m.toutiao.comm.toutiao.combaoyu.iojalammar.github.iomp.weixin.qq.com