前言
–
上一篇文章详细地介绍了这一轮大模型浪潮的论文基础《Attention is All you Need》,它是一种全新的注意力计算方式,使得处理序列数据的方式发生了根本性的变化。
尽管如此,相信大部分人还是对大模型了解得云里雾里的,依然没能解开大模型的神秘面纱,本文,我们将会继续深入大模型,通过拆解大模型的组成部分,深入了解大模型的结构。
在本文,我们将以Llama2-7B模型为例子,学习大模型的结构。
这是通过PyTorch输出的Llama2-7B模型的结构,按缩进的嵌套就能看清楚大模型的样子,我们从最外层往里面剥离每一层的内容。
第一层:LlamaForCausalLM
这第一层比较容易理解,直接从拆名字。
Llama:模型名字,Llama模型是由Meta(Facebook前身公司)推出的一系列大型生成式AI模型。
CausalLM:指因果语言模型(Causal Language Model),这是一种特殊的自然语言处理模型,它专注于理解和生成文本序列,特别是在给定一系列之前的词或句子后预测下一个词或句子的任务。
CausalLM模型的核心在于它们是自回归的,即它们根据之前的上下文来生成后续的文本,而不是像序列到序列(Seq2Seq)模型那样通常涉及编码器-解码器结构。
第二层:…CausalLM——LlamaModel
第二层LlamaModel就是模型的核心结构了,它会包含三个重要的部分,分别是Embedding、ModuleList以及(norm)三个部分,后文的大部分篇章都会介绍这里面的内容。
第二层:…CausalLM——lm_head
lm_head是自然语言处理模型中的一个组件,主要作用是将模型的输出(通常是经过Transformer编码器处理后的隐藏状态)转换成预测下一个词的概率分布。
在lm_head这里,有几个关键的kv,in_features=4096、out_features=32000。
这两个数值分别表示的是lm_head的输入特征和输出特征的维度,输出是4096维,输出是32000维,意思是通过4096维特征的输入,可以输出32000个字里面是下一个字的概率。
至于为什么是4096和32000维,这是模型的定义决定的。
第三层:…Model——Embedding
Embedding(32000, 4096),我在前面的文章介绍过了,Embedding(嵌入)是一种将词汇、句子或文档转换成数值向量的技术。这些数值向量捕捉了输入数据的语义信息和上下文关系。
直白一点来说,就是将计算机不懂的语言转换成计算机能够理解的数字。
第三层:…Model——ModuleList
LlamaModel的主要结构,(0~31) 32xLlamaDecoderLayer,表示的是LlamaModel是由32个LlamaDecoderLayer堆叠形成的,而这里面的每个LlamaDecoderLayer,就是我前文介绍过的TransformerBlock。
不过在不同的LLM里面,TransformerBlock会做一些细微的改造,有的会改造Attention部分,有的会改造MLP的部分,Llama和facebook OPT模型以及别的不一样的就是,Llama改造了MLP的部分,这个后面再单独列文介绍。
第三层:…Model——(norm)
归一化层,这个使用的是LlamaRMSNorm,与标准的LayerNorm类似,但采用的均方根归一化(Root Mean Square Normalization,RMSNorm),RMSNorm是一种更轻量级的归一化方法。
这个归一化层的作用是将高纬的数据(4096, 4096) 降到(1, 4096)的维度,已提供外层的lm_head使用,进一步输出成数值,在下一篇,我将会从数据计算的角度详细介绍整个LLM的计算过程。
在这里,我们先只需要知道它是一个归一化的操作即可。
第四层:…——ModuleList——LlamaDecoderLayer
重头戏来了,LlamaDecoderLayer,在Llama2-7B的模型中,它有32个,结构是一模一样的,只是权重和参数不一样。
它主要有两个部分,分别是SdpaAttention和MLP。
先说SdpaAttention的部分,首先它是注意力实现的一种方式,也是大模型里面最常见的一种方式。SDPA,是Scaled Dot-Product Attention的缩写,字面意思就是:缩放点积注意力,指的就是下面这个公式:
接着是MLP,MLP(多层感知机),Transformer Block的关键的组件,它在注意力机制之后用于进一步处理数据。
MLP包含两个线性变换,在Transformer Block中的作用是提供额外的非线性变换,这有助于模型学习更复杂的模式和关系。它处理和转换自注意力层的输出,帮助模型提升整体性能。
进一步理解
接下来是一张更清晰能够理解模型结构的一张图,读完前面的内容,看这张图就非常清晰了。这张图大致包含两个部分,左边的部分是L个Transformer Block的堆叠,在Llama2-7B中就是32个。
右边的部分就是讲Transformer Block详细展开的内容,包含两个部分MHA和MLP,MHA就是多头注意力,和SdpaAttention表达的是相同的意思,只不过SDPA表达的是计算方法——用的是点积,MHA表达的是作用——多头注意力。
在上图中,在MHA和MLP的部分,还有非常多的细节,包括Q、K、V,Softmax、Normalization等算子,这些我们后面会继续深入探讨,本文先从整体的角度剖析LLM的结构。
那这里,我们再重新理清楚Token在LLM的整个过程。
-
1. 首先,文字会经过Embedding,转成4096维的向量。
-
2. 代表文字的4096维的数据,会经过32层Transformer Block的计算。
-
3. 计算得到的结果会经过lm_head转换成32000个文字出现的概率,然后输出下一个文字。
总结
–
本文从PyTorch输出的Llama2-7B模型的数据剖析了大模型的物理结构,其实并不复杂,说白了就是不断地堆Transformer Block,7B的模型堆叠32层,更大的模型可能堆叠40层,甚至更多。
不过这种是Dense模型的结构,MoE的结构会在此基础上增加专家模型路由等结构,和Dense模型还会有一些差异,后面会继续介绍。
零基础如何学习AI大模型
领取方式在文末
为什么要学习大模型?
学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。
大模型典型应用场景
①AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
②AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
③AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。
④AI+制造:智能制造和自动化工厂提高了生产效率和质量。通过AI技术,工厂可以实现设备预测性维护,减少停机时间。
…
这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。
学习资料领取
如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
部分资料展示
一、 AI大模型学习路线图
整个学习分为7个阶段
二、AI大模型实战案例
涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
三、视频和书籍PDF合集
从入门到进阶这里都有,跟着老师学习事半功倍。
四、LLM面试题
五、AI产品经理面试题
😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]👈