LLM大模型技术实战3:大白话带你掌握Transformer架构

Transformer架构及其变体(如GPT、BERT等)已经成为许多NLP任务的基石。它们不仅在学术界取得了巨大成功,也被广泛应用于工业界,改善了搜索引擎、语音识别、推荐系统等技术的性能。理解Transformer架构对于从事深度学习和NLP研究的人来说至关重要。它的提出标志着NLP领域的一个重要转折点,开启了处理语言数据的新篇章。随着技术的不断发展和优化,Transformer及其衍生模型将继续推动人工智能领域的进步。

一、Transformer的核心概念

1. 自注意力机制(Self-Attention)
    自注意力机制是Transformer的核心,它使模型能够处理输入序列中的每个元素,并计算元素之间的关系。简而言之,自注意力机制允许模型在处理一个元素(如一个单词)时,考虑到序列中的所有其他元素,从而捕获它们之间的上下文关系。这种机制特别适用于处理序列数据,如文本或时间序列数据。
2. 编码器-解码器结构
    Transformer原始架构包含两部分:编码器和解码器。编码器负责处理输入数据,解码器负责生成输出数据。在NLP任务中,例如机器翻译,编码器处理源语言文本,解码器生成目标语言文本。每个编码器或解码器由多个相同的层堆叠而成,每层都包含自注意力机制和前馈神经网络。
3. 位置编码
    由于Transformer完全基于注意力机制,不使用循环(RNN)或卷积(CNN)结构,因此无法直接处理序列中的位置信息。为了解决这个问题,Transformer引入了位置编码,将位置信息添加到输入序列的每个元素中。这使模型能够利用元素的顺序信息。
4. Transformer的优点
  • 并行计算能力:相比于RNN需要按顺序处理序列的元素,Transformer可以同时处理整个序列,显著提高了计算效率。

  • 长距离依赖处理:自注意力机制使得模型能够直接计算序列中任意两个元素之间的关系,有效地捕获长距离依赖信息。

  • 灵活性和通用性:Transformer架构可以应用于多种NLP任务,如文本分类、机器翻译、问答系统等,只需少量修改即可适应不同的应用场景。

二、Transformer整体架构


1、背景知识铺垫

1.1、生成式模型

相信大家在使用手机聊天的输入法时,都会注意到,当你输入文字后,会有很多的选项,那么这些选项是如何而来的呢?

在这里插入图片描述

首先要了解一下N_gram

当我们输入最近______时,手机一般会给出很多的提示,这些提示我们可以发现都是和相关的词组,这些可以选择的词组是如何来的呢?

比如我们使用一个数据集来训练一个模型,那么模型就会将数据集里面涉及到的怎后面所有的情况列举在这里,并按照出现的频率进行排序,让我们进行好选择,这种方法被称为1-Gram,就是根据前面一个词来选择后面生成的词。

再来看看3-Gram,就是根据前面的三个词来预测下一个词,这时就在在数据集中找到最近怎三个子同时出现的词组后面出现的说有的字出现的情况,我们可以看到,出现的字的数量少了很多
在这里插入图片描述

如果根据前面所选的字的数量越多,那么参考的信息就越多,其实我们预测准确性聚会越高,但是,也有可能无法给出预测,这就是N-gram方法。

当然这种方法因为是靠统计方法,很容易出现过拟合;其次,对于一些低频词汇无法进行预测,所以在真正的大型语言处理中不会使用N-gram。

1.2、神经网络

在这里插入图片描述

在transformer中,其实是使用神经网络来进行预测的,这里做一个简单的介绍:

在这里插入图片描述

神经网络会根据大脑神经元的传递方式进行模拟,我们看上图。输入时我们所有的词,编码后向后传递,经过神经元后进行传播和更新权重;而输出呢,当输出的选择时两个标签时就是二分类问题,比如情感分类、垃圾邮件识别等;如果是多个值就是多分类;当然如果输出的选择时全部的词组时那么就是文本生成模型。

我想这一点对于学习transformer的人来说应该比较容易理解。

2、整体框架

我们按照transformer原文的整体架构来简单的进行梳理
在这里插入图片描述

2.1 tokenization

在自然语言处理(NLP)中,tokenization是将文本分解为更小的单元的过程,这些单元通常被称为tokens。我们更加容易理解的表示就是分词。
在这里插入图片描述

英文一般按照空格进行切分,是比较容易的;而中文就比较麻烦了,需要建立分词辞典根据词典中出现的特有名词等进行切分,当然对于python来说有现成的开源分词工具,如Jieba、spacy等等;还有就是停用词,有些词语没有实际的意义我们可以直接过滤掉来减轻我们模型的压力以及减少不必要的混淆。

2.2 embedding

在这里插入图片描述

embedding就是建立自然语言和计算机识别语言的桥梁,主要目的就是相似性高的词会给予更加相近的向量。

这里要多说一句的就是,embedding是如何创建的?

在这里插入图片描述

我们的大脑在看见不同的事物的时候,会根据事物的各种特征进行分类,比如我们看见苹果和草莓时,认为他们都是水果,在大脑里面就会有一个位置给他们进行编码,会将他们放在一起,距离比较近的位置,而当出现一个其他的类别,比如建筑物,那么大脑会根据他的类别,将其放在另外一个地方,当然我们这里指的是相对位置。

在这里插入图片描述

其实是经网络的构建是一致的,也会给他创建一个位置,让相似的在一起

2.3 位置编码

我们知道RNN和LSTM是一种循环的序列模型,本身训练的过程中就会有位置的训练;但是我们看到transformer中,到现在为止我们没有讲到与序列或者排序相关的内容。

我们知道在自然语言中,字词的顺序是会影响语义的,比如:

  • 我爱你

  • 你爱我

同样的三个字,顺序不一样,表达的不是一个概念,所以我们必须要考虑这一点。

首先我们看一下论文中进行位置编码的位置,他是在做完embedding后,创建位置编码与原始的embedding进行相加,然后再去进行attention。

在这里插入图片描述

也就是说我们给予所有的词一个初始的位置编码,让位置编码直接加到原始的embedding上去,让模型不断的去学习和修改每个字词的方向


在不断的调整中,让模型学习到顺序,让后理解他们相互之间的关联(相互作用力)进行修改其embedding。

2.4 注意力机制

注意力机制其实最大的作用就是对词嵌入也就是embedding的优化,下面我们来看下是怎么做到的。

一个例子

在这里插入图片描述

我们这里有一堆文本单词,在一个二维的坐标系中,每个单词都有一个水平和垂直的坐标,比如香蕉是6,5,那么现在出现了一个新的单词,apple(🍎),如果让我们给苹果安排一个位置,应该在哪里最合适呢?

很明显是右上角,因为这里全部是水果,embedding的作用就是相似的单词会被赋予相似的数字
在这里插入图片描述

到现在为止,事情看上去还是很简单的,但是现在来了一个单词苹果(apple)

![](https://mmbiz.qpic.cn/mmbiz_png/xccmDvWWoDozIibOa3pzbQ0WsO4BPUYwVk9LKyb9wrqH62DXee1EOepnJ3Wx86ibCmcJBgABHugIVQ9UF6KibMftw/640?wx_fmt=png&from=appmsg)

这个单词应该放在哪里呢???

苹果如果表示吃的水果应该在右上角,如果是手机的话应该在左下角。而对于embedding而言,不管是自己创建Vocabulary单词表还是使用word2vec,都不能解决歧义。

我们先把单词苹果(apple)放在中间的位置,那么我们该如何解决这个问题的,下面注意力就要出场了。
在这里插入图片描述

注意力机制原理

注意力机制就是来解决单词歧义问题的。

在这里插入图片描述

现在我们来看两个文本,根据第一句话我们应该明白,这里面提到了橘子,我们人类是知道橙子属于水果,提到苹果这个词语时,那么苹果应该是可以吃的苹果;同样在第二个句子中提到了手机,那么我们应该明白这里指的是苹果手机。
在这里插入图片描述

我们人类可以根据经验进行判断,但是计算机是不知道的

下面我们来看看注意力机制是如何做到的?

在前面我们提到了,我们先把苹果这个单词初始化,放在中间的位置;当输入是第一句话时,提到了orange,那么这个地方出现的apple应该向右上角移动。
在这里插入图片描述

而,第二句话出现时,apple这个单词应该向左下角移动
在这里插入图片描述

实现过程

要想实现上述过程,计算机就必须要计算所有单词来查看或者评估苹果这个词,通过程序不断的训练会发现,苹果和橘子这两个词比较接近,而与其他的词关系不是很大,那么orang就与apple这个单词相关性更大,我们这里绘制了更粗的连线,我们可以把他们想象成单词之间是有相互吸引力的,连线越粗其吸引力越大,最后距离就会越近。
在这里插入图片描述

其实,所有的单词之间都有相互的吸引力,但是随着不断的训练,单词之间会趋于一个平衡,比如buy这个单词,与他相关的单词会相互吸引聚成一簇,比如sell等,而苹果、橘子等水果相关的词会聚集在一起,可以想象成Kmeans聚类算法。

或者想象一下我们的宇宙空间的星球,他们之间都是有作用力的,因为地球和月球比较近,相互吸引力越大,所以相关性越大;而月球与其他的相求也有吸引力,但是比起与地球之间的相互吸引力就太弱了,也就是月球的大部分注意力都在地球上。

在这里插入图片描述

所以如果上下文一直在讨论香蕉、橘子等水果,那么接下来出现的apple这个单词大概率就是我们吃的苹果,那么聚集在一起的水果这个簇就会把apple这个单词拉到水果簇中心的方向。

最终的得分就是查询矩阵、键矩阵和值矩阵要做的事情

在这里插入图片描述

首先我们根据文本创建一初始的词嵌入,现在我们使用Q、K来创建变换。V矩阵帮助我们进行评分,好的变化给予高的权重,不好的赋值较低的权重。根据得分我们将所有的矩阵进行加权求和得到最终的词嵌入

2.5 Soft Max

Soft Max是在输出结果前,前馈神经网络输出时要进行一个Soft Max,将要生成的所有的词预测一个概率,将概率最大的进行输出。
在这里插入图片描述

2.6 整体架构

这里我们不在罗列原始论文的架构图,我们根据前面讲的内容,自己画一个架构图来方便理解

在这里插入图片描述

可视化一下,这样理解起来就简单多了

在这里插入图片描述

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值