AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


7B?13B?170B?解读AI大模型的参数
发布日期:2024-07-17 16:56:23 浏览次数: 3297



 

    在人工智能领域,模型的规模通常由其参数的数量来衡量。以GPT-3为例,它拥有惊人的1750亿个参数,而Grok-1更是达到了3140亿个参数的庞大规模。然而,并非所有模型都如此庞大,像Llama这样的模型,其参数数量则在70亿到700亿之间,相对更为精干。

    这些参数并非指训练数据的量,而是模型内部的构成要素。可以把它们想象成模型的"神经元",数量越多,模型处理信息的能力就越强,对数据中复杂关系的把握也就越精准。这些"神经元"赋予了模型更高级的认知能力,使其在执行任务时能够更加出色。

    模型中的参数就像是构建语言理解世界的"建筑师"。它们通过精心设计的算法和训练过程,逐步塑造出模型对语言的深刻理解。每个参数都扮演着特定的角色,协同工作,以确保模型能够准确捕捉语言的细微差别,并提供恰当的回应。

    那么,这些构成大模型的参数是如何组织的呢?简单来说,它们是由多层的神经网络构成,每一层都包含大量的节点,节点之间通过权重连接。这些权重,也就是参数,会在训练过程中不断调整,以最小化模型预测与实际结果之间的差异。通过这种方式,模型学会了如何根据输入数据生成准确的输出,从而实现对语言的深入理解和有效回应。

1. 大模型中的参数


    在大型人工智能模型中,参数是其核心组件,它们各司其职,共同构成了模型的复杂网络。以下是一些主要类型的参数及其功能:

  • 权重(Weights):权重类似于神经网络中的连接线,它们调节信息流动的强度。在全连接层中,权重矩阵W充当了特征之间联系的桥梁,指导模型识别哪些输入特征对预测输出特征最为关键。

  • 偏置(Biases):偏置是神经元的调节器,它们设定了神经元激活的起点,帮助模型确定何时以及如何响应输入信号。

  • 注意力机制参数(Attention Parameters):在基于Transformer架构的模型中,这些参数充当了信息筛选的指南,指导模型集中注意力于最有价值的数据点。它们包括查询(Query)、键(Key)和值(Value)矩阵,帮助模型在大量信息中识别出关键线索。

  • 嵌入矩阵(Embedding Matrices):嵌入矩阵是模型处理文本数据时的“词汇库”。每个词汇通过一个向量表示,使得模型能够理解并处理语言信息。

  • 隐藏状态初始化参数(Initial Hidden State Parameters):这些参数为模型的初始状态设定基调,指导模型从何处开始处理和分析数据。


这些参数通常以以下四种格式进行表达和存储:

  1. Float:32位浮点数,占用4字节,提供高精度的数值表示。

  2. Half/BF16:16位浮点数,占用2字节,是一种节省空间的数值表示方式。

  3. Int8:8位整数,占用1字节,常用于模型的量化,以减少模型大小和提高运算效率。

  4. Int4:4位整数,占用0.5字节,进一步压缩数值表示,尽管精度可能有所降低。


    参数的数量是衡量模型性能的关键指标之一。例如,一个拥有13亿个Int8参数的模型,通常在性能上会优于同一架构但只有7亿个BF16参数的模型。这是因为参数数量的增加可以提供更丰富的信息处理能力,从而提升模型的整体性能。

2. 大模型参数对内存的需求

    对于工程师而言,面对的是大模型训练或推理时会使用多少的内存资源。尽管 V100(有32 GB 的 GPU 内存)或 A100(有40 GB 的 GPU 内存)很强大,然而,大模型却并不能使用 Tensorflow 或 PyTorch 的单个 GPU 上进行训练。

2.1 训练阶段的内存需求

    在人工智能模型的训练过程中,内存的存储需求主要来自于模型状态的维护和激活过程的数据积累。具体来说,模型状态涵盖了优化器状态、梯度以及参数,它们都以张量的形式存在。激活过程则涉及到在正向传播中生成的张量,这些张量对于反向传播中的梯度计算至关重要。

    在训练的每一个阶段,对于模型中的每一个参数,都需要有足够的GPU内存空间来存储以下数据:

  • 模型参数的副本:每个参数都需要占用一定的内存空间来存储其副本,这里我们用字节数x来表示。

  • 梯度的副本:与模型参数类似,梯度也需要占用内存空间,这里用字节数y来表示。

  • 优化器状态:优化器状态通常需要12个字节的存储空间,它包括了参数、方差等信息的拷贝。为了保证训练过程的稳定性并避免数值计算中出现异常,所有优化器状态都会以FP32(32位浮点数)格式保存。


因此,整个训练过程中,所需的内存总量可以由以下公式来估算:

(x+y+12 ) * model_size

2.2 推理阶段的内存需求

    在执行推理任务时,我们利用已经训练好的大型语言模型(LLM)来完成诸如文本生成或翻译等任务。与训练阶段相比,推理阶段的内存需求通常较低,主要由以下几个因素决定:

  • 有限的上下文需求:推理过程中处理的输入序列较短,因此需要较少的内存来存储与这些较小文本块相关的激活信息。

  • 无需反向传播:与训练阶段不同,推理阶段不需要进行反向传播,这是一种在训练中用于调整模型参数的技术。由于不需要保留用于反向传播的中间值,推理阶段的内存开销大幅减少。


    根据模型的参数规模和精度类型,推理阶段所需的内存可以估算如下:对于一个7亿参数的模型,使用浮点数精度(FP32)的内存需求大约为28GB,使用16位浮点数(BF16)的内存需求约为14GB,而使用8位整数(Int8)的内存需求则为7GB。这些估算可以作为其他模型版本的参考。

    当对LLM进行特定任务的微调时,内存需求会有所增加。微调通常涉及更长的训练序列,以便更好地捕捉目标任务的细节。处理更多的文本数据会导致更大的激活,而反向传播过程则需要存储用于梯度计算的中间值,这些值在训练期间用于更新模型权重。与推理阶段相比,微调阶段的内存负担显著增加。

2.3 基于Transformer的大模型的内存估算

当我们针对基于Transformer架构的大型模型进行训练时,计算所需的内存是一个关键的步骤。以下是一些基本参数和它们在内存计算中的作用:

  • l:Transformer模型中的层数。

  • a:每个注意力机制中的头(head)数量。

  • b:批次大小,即每次训练迭代中处理的样本数量。

  • s:序列长度,即每个样本中的元素数量。

  • h:隐藏层的维度大小,即模型内部表示的大小。

  • p:精度,影响每个参数所需的存储空间。

首先,我们需要定义一个表示输入数据量大小的变量bshp,它由以下公式给出:

softmax((XQ)(XK)^T)XV

    当我们探讨基于Transformer架构的大型模型在训练阶段所需的内存时,我们需要考虑几个关键参数,包括层数、注意力头的数量、批次大小、序列长度以及隐藏层的维度和精度。以下是对所需内存的计算和解释:

  • 输入数据量:表示为`bshp`,即批次大小(b)、序列长度(s)、隐藏层维度(h)和精度(p)的乘积。这代表了模型处理的输入数据的总大小。

  • 线性层:在Transformer的线性层部分,我们大约需要`9bshp + bsh`的空间来存储激活后的值。这包括了线性变换和后续操作所需的内存。

  • 注意力机制:对于标准的自注意力(self-attention)操作,我们首先需要为查询(Q)、键(K)和值(V)各分配`bshp`大小的空间。在多头注意力机制中,每个头都需要单独的`s * s`矩阵来存储结果,这需要`abssp`字节的空间。由于有a个头,总空间需求为`a * abssp`。此外,softmax操作后的输出也需要相同的空间,再加上掩码所需的`abss`字节,因此注意力部分的总内存需求为`2abssp + abss`。

  • 归一化层:Transformer中通常包含两个归一化层(Norm layer),每个层都需要`bshp`大小的空间,因此总共需要`2bshp`。


将这些部分加起来,基于Transformer的大模型在训练时所需的内存可以近似表示为:

L(9bshp+bsh+2abssp+abss +2bshp) = Lbshp[16+2/p+(as/h)(2+1/p)]

    这里的公式表明,训练所需的内存大约是模型层数(L)与批次大小、序列长度、隐藏层维度和精度的函数。这个表达式提供了一个理论下界,即在训练基于Transformer的大模型时,内存需求的一个基本估计。

模型的层数 x 训练批次的大小 x 序列长度 x 隐藏层的维度 x 精度 x 大于16的整数

    基于Transformer的大模型在训练时的内存需求取决于多个因素,包括模型的复杂性、数据的规模和精度。通过上述公式,我们可以对所需的内存进行初步的估计,以确保训练过程的顺利进行。

3. 大模型参数对GPU 的需求

    有了大模型参数对内存的要求, 可以进一步估算大模型在训练和推理中所需的GPU数量。但由于GPU数量估算依赖的参数稍多,有人(Dr. Walid Soula,https://medium.com/u/e41a20d646a8)给出了一个粗略估算的简单公式, 在工程上同样有一定的参考意义。

其中,

  • Model’s parameters in billions 是以B为单位的模型参数数量;

  • 18是训练期间不同组件的内存占用因子;

  • 1.25 代表了激活过程所需的内存数量因子,激活是随着模型处理输入数据而变化的动态数据结构。

  • GPU Size in GB是可用的 GPU 内存总量

举个实际的例子,假设使用的是 NVIDIA RTX 4090 GPU,它有24GB 的 VRAM,计算一下训练‘ Llama3 7B’模型所需的 GPU 数量,大约为 :

GPU 的总数≈(7 * 18 * 1.25)/24,大约等于7

对于推理而言, 可以简化为训练阶段的1/8~1/9 , 当然,这些只是一般意义的粗略估计。


4. 由大模型参数到分布式训练

    深入理解大型模型参数的构成及其对内存和GPU资源的需求,对于掌握分布式训练在实际工程中所面临的挑战至关重要。

    使用TensorFlow或PyTorch等专为分布式训练设计的框架,可以极大地简化分布式训练策略的实施。这些框架提供了丰富的工具和API,帮助开发者更高效地进行训练。例如,通过梯度累积技术,我们可以在更新模型之前累积多个批次的梯度;而梯度压缩技术则可以减少节点间的数据传输量,有效降低通信成本。同时,确定分布式训练中的最优批次大小(即参数b)也非常关键,因为批次大小过小会增加通信开销,而过大则可能导致内存不足。

    LLMOps(大型语言模型操作)的重要性日益增加。定期监控分布式训练的性能指标,调整超参数、分区策略和通信设置以优化性能,是提升训练效率的关键步骤。此外,实施模型的检查点机制并在发生故障时进行有效恢复,可以确保训练过程在无需重新开始的情况下继续进行。

    换句话说,大型模型的训练和推理本质上是分布式系统架构工程的挑战,包括但不限于:

  • 通信开销:在执行梯度计算和数据更新时,节点间的通信时间可能会影响整体的加速效果。

  • 同步复杂性:在多台机器并行训练时,同步操作的复杂性需要精心设计以避免瓶颈。

  • 容错与资源管理:单点故障对模型训练和推理的影响,以及CPU与GPU资源的分配与调度策略,都是需要考虑的问题。


5. 大模型应用中使用的参数


    掌握大型模型编程的范式,特别是面向Prompt的编程,可以通过阅读相关文献如《解读提示工程(Prompt Engineering)》、《Agent 应用于提示工程》以及《提示工程中的10个设计模式》来深入了解。

    在使用大型模型生成文本时,我们可以通过调节三个关键参数来优化输出:Temperature、Top-K和Top-P。

    1. Temperature参数:这个参数常被误认为仅控制模型的创造性,但实际上它更深层次地调节了概率分布的平滑度。当Temperature值较高时,概率分布变得更加平滑和均匀,这有助于模型产生多样化和富有创造性的文本。而当Temperature值较低时,概率分布会变得更加集中,模型倾向于生成与训练数据更相似的文本。

    2. Top-K参数:此参数通过限制模型在每个步骤中只考虑最可能的Top-K个标记来减少输出中的不连贯或无意义内容。这种方法在保持输出的高可能性一致性的同时,也允许一定程度的创造性。

    3. Top-P参数:这是一种基于概率分布的解码方法,根据设定的P值(0≤P≤1),选择一个累积概率超过P值的最小单词集合作为输出。这种方法允许输出的单词数量根据下一个单词的概率动态调整。当P=1时,Top-P将选择所有单词,产生多样化的输出;而P=0时,Top-P仅选择概率最高的单词,类似于贪婪策略,使输出更加集中和一致。

    这三个参数共同影响模型的输出行为。例如,如果我们设置Temperature=0.8、Top-K=36和Top-P=0.7,模型首先会根据上下文计算整个词汇表的非规范化对数概率分布。Temperature=0.8意味着每个对数概率值将除以0.8,这在归一化之前增加了模型对其预测的信心。接着,Top-K=36将选择概率最高的36个标记。然后,Top-P=0.7将在这36个标记中进一步筛选,直到累积概率达到0.7。最后,这个筛选后的集合将被重新归一化,用于模型的采样过程。

6. 小结

    

    在工程应用中,深入理解大型模型的参数至关重要。这些参数是模型功能和表现的核心,它们决定了模型的运作方式、效率、成本以及对资源的依赖程度。掌握大型模型的参数,意味着要深入探讨模型的复杂性、效能以及它们之间的相互关系。通过从存储和计算的角度出发,合理地配置和调整这些参数,我们可以在实际的工程任务中更精准地选择和调整模型,以满足特定的任务需求和在有限资源条件下实现最优性能。




推荐阅读

?AI大模型50个变现应用场景。 百度创始人、董事长兼首席执行官李彦宏呼吁:“大家不要卷模型,要卷应用!”

?AI概念科普:打开AI世界的大门

?AI+拆书:探索读书新维度,效率翻倍!

?每日分享:「ppt精炼」,大学生课程PPT整理与总结大师

智能交通信号:为何高德、百度导航能告诉你还有几秒变绿灯?你还以为是有关系接入交警系统了吗?这篇专利来揭晓答案!

教师必备的九个AI工具,很难相信还是免费!

中国选择新质生产力,美国选择AI,你更看好谁?

震惊!OpenAI突然封杀中国,背后竟是这位美国神秘将军?

小心!最新AI看一眼照片就定位你在哪里,精确到经纬度



    如果你觉得“小迪说AI”公众号或这篇文章对你有帮助,别忘了给我点赞、在看、转发分享给更多的朋友。有任何问题或者想法,欢迎在评论区留言和我一起讨论。




53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询