type
status
date
slug
summary
tags
category
icon
password
早在2017年,谷歌就发表了一篇名为“注意力就是你所需要的一切”的论文,在注意力机制的使用方面取得了很大的进步,对Transformer模型做出了重大改进。
这篇论文是GPT、BERT 和 PaLM 等各种尖端模型的基础,所以要学大模型就要先了解这篇论文讲了什么。
notion image

什么是Transformer?

Transformer 是一种神经网络(一种模仿人脑运作的机器学习模型)。与传统技术不同,它的特点是处理主要由“注意力机制”执行。 注意力机制是一种计算序列数据的每个元素(文本、语音、时间相关数据等)与其他元素之间关系的机制。 例如,计算句子中每个字与其他字的关联程度,并使用该信息来理解上下文。由于其注意力机制,可以有效地捕捉句子中遥远的两字之间的关系,其并行计算能力使其能够高速处理大量数据。

Transformer是如何工作的?

Transformer 的主要组件是编码器(encoder)和解码器(decoder)。所以我们要先理解什么是编码器,什么是解码器?
编码器解析输入数据并提取特征。 解码器根据从编码器获得的信息生成输出数据。
notion image

编码器(encoder)

论文中也阐述了编码器是什么,论文中说,解码器的工作是把(x1,…,xn)转换成一系列连续表示Z=(z1,…,zn)。那这句是什么意思呢,简单理解就是x是我们的输入,比如我们输入”端午节吃什么?“那么x1-xn就是表示我们输入的对应的每一个token,可以理解为每一个字吧,就是把这句话拆为一个字一个字。然后Z呢就是向量,我们应该都知道三维向量对吧,其实就是三维空间中的一个点,一个坐标位置,那么这里的Z呢就是n维空间的一个坐标位置,n是多少取决于输入的token(可以理解为字数)是多少。所以解码器的作用就是把一句话变为一大堆的向量,用数字去表示,这样就相当于把一个人们能理解的东西变成了一个只有这个模型能理解的东西。
模型为什么能理解输入(什么是语义空间)
这个简单说一下,就是解码器中这里有一个它独特的语义空间,可以理解为超高维度的向量空间,比如gpt模型有大概1750亿个参数,那么他就大概是个1750亿维的空间,其中每个字,每个词代表的什么含义都会在这里有一个想对应的位置,比如”漂亮“和”美丽“这两个相近的词的位置再语义空间中就会离得比较近,反义词就会离得远。然后这里还有个K矩阵得概念,相当于字典,我们通过输入获得得向量呢就是通过这个字典获得语义空间里含义,也就是相当于机器通过语义空间来理解我们得问题,再通过语义空间预测要回答得每个字,一个一个输出给我们。

解码器(decoder)

解码器就是把向量Z变为一个个元素,即输出,他的输出是一个字一个字输出的,然后这里还有个概念”自回归“,什么叫自回归,就是他输出的第一个字也会作为输入和(x1,…,xn)一起参与到预测下一个元素的过程中。
我们不需要特别特别深入的理解,对于编码器和解码器我们只需要知道,编码器是把输入变为向量即一系列数字,然后解码器是根据给定的向量计算预测出一个个要输出的元素即可。知道这些我们可以继续往下看

Transformer 模型

notion image
这张图就是Transformer 模型
左边是一个编码器模型,右边是一个解码器模型
这里我们要先从最下边的左边的Inputs开始看,Inputs就是我们之前说的(x1,…,xn)嘛,也就是我们输入的一句话,我们的输入要先经过两个预处理,顺着箭头往上走第一个预处理”Input Embedding“就是把我们输入的每一个汉字变为512维的向量,简单理解就是用512串数字来描述一个汉字,不同汉字的这些数不同,相同汉字的这些数相同。然后再往上走就是第二个预处理”Positional Encoding“,他的作用是位置信息编码,意思就是说一个汉字在一句话中不同位置表示的意思不一样,比如”猫咬狗“和”狗咬猫“,这两句中”猫“和”狗“的位置变了,两句话的意思也就变了,所以位置信息也要记录下来。
有了上面两个预处理,编码器就得到了他得输入。
中间先不用看,中间就是一系列算法公式计算,反正就是经过一些列计算,编码器得到了输出,图中可以看到编码器得输出就变为了右边解码器得输入
notion image
然后我们再看右半部分得最下边,这里得Outputs就是解码器已经预测出来的字就会存在这里做自回归。他也有两个和编码器一样的预处理,然后进行算法计算再和编码器的输出一起参与一系列算法得到输出。
最后编码器的输出是Softmax,这是什么呢,其实就是一大堆的汉字概率,然后根据那个概率更接近,那么就会选用这个汉字作为输出。
这里再简单说一下什么是模型,模型其实就是一堆参数和公式,公式其实是固定的,改变的都是些参数,参数就是些数字。我们用模型就是进行输入(可以是文字、图片、视频、文档等等),输入的东西编码变为数字,再经过一系列公式计算经过获得输出,输出就是我们通过模型获得的回答,这个回答的好坏和参数的量级和参数是否靠谱是有很大关系的,比如小爱同学和gpt两个模型的参数量级和靠谱程度那肯定就不是一个级别的。
再说训练模型简单说就是我们通过往模型中输入一些问题,然后经过大模型会得到答案,我们再根据答案的好坏去微调参数,在反复这个输入输出对比的过程,最终训练出一个可以给出不错的回答的模型。就是一个让模型的参数越来越靠谱的过程。

Transformer 模型的意义

他的意义就是提出了这种编码器解码器的结构,让训练一个模型的算力可以不用很大就可以训练出一个不错的AI模型。

什么是注意力机制

了解了上面的模型运行的机制图后,我们再回头看看,其中最核心的就是”Multi-Head Attention”叫做多头自注意力机制
notion image
什么是多头自注意力机制呢,就是我们输入的一句话要映射到模型的语义空间里面去的时候,不是每个字都是重点(每个字要有权重这一概念),而是有些字是重点(去掉会改变句子含义),有些字是无关紧要的(去掉也不影响句子含义),比如”这道题巨难,所以我不会做“这句话中,”巨“和”所以“两个词组就是无关紧要的,而”不“就是非常关键的字,如果把”不“字去掉,那么整个句子的含义就发生了变化,所以这里”不“字的权重就要比其他字的权重高很多,这种给不同的字加权重的机制就是注意力机制。
再举个例子,就像我们平常在看视频或者图片时,大脑在看到分析时本能就会注意一些重要的元素,然后忽略一些认为不重要的元素,这其实就是注意力机制,所以这也能说明为什么大模型叫神经网络,同时也说明了为什么大模型不仅仅能理解文字,还能理解图片和视频了
我相信有人应该听说过数据标注,这是个什么,其实就是人类帮AI标注图片中的重要元素,告诉AI这是”汽车“,这是”路灯“等,这是干什么,这其实就是人类在教AI注意重点元素,但有了这个注意力机制,AI自己就可以分析和标注重点了,所以不需要标注,gpt4也能看懂图片了甚至图片里的各种元素信息。

最后

比较搞笑的事情是,当时这个机制模型最早是谷歌的科学家提出的,然后open AI这家公司就说这太牛逼了,太对了,你们为什么自己不投入资源去做呢?不做的话那我做了?然后就出现了chatgpt
💡
以上就是本人对Transformer模型的理解,希望对你有所帮助,如果本文中有哪些不对的对方,欢迎指出~
让分享和记录两不误2023年 关于大模型 周鸿神的100条断言
伯玉
伯玉
瑞,以玉为信也✨
公告
type
status
date
slug
summary
tags
category
icon
password
📢放下个人素质,
👻享受缺德人生。
😵拒绝精神内耗,
💃有事直接发疯。
🙉与其委屈自己,
🐱‍🐉不如为难别人。