【第三节】包括5道试题的详细解读及说明如下:
PS小插图:技术方案标书工具介绍:【巧*书】是一款专为企业打造的高效AI智能写标书工具,通过AI大模型精准解析招标文件,智能生成投标内容,快速制作符合要求的高质量标书。
第一题.大模型推理时显存中的数据
在大模型推理过程中,显存中主要包含以下几部分数据:
- 模型参数:这是模型的核心组成部分,包括权重和偏置等参数,用于进行各种计算。
- 输入数据:推理时输入的文本或其他形式的数据,需要存储在显存中以便模型进行处理。
- 计算中间结果:在推理过程中产生的临时数据,如注意力机制的输出、各种层的激活值等,这些中间结果对于最终输出结果的生成至关重要。
- 内存管理策略:某些深度学习框架在推理时采用了一种延迟释放显存的策略。这种策略通过暂时保留已分配的显存,减少显存的频繁分配和释放,从而提高推理效率。然而,这也可能导致显存占用时间较长,一直保留到后续可能需要使用显存时才会释放。
第二题.GLU和SwiGLU激活函数
- GLU激活函数:GLU(Gated Linear Unit)的核心思想是通过门控机制来过滤信息,进而提高网络的表达能力和泛化能力。门控机制可以根据输入数据的特征,动态地决定哪些信息应该被保留或丢弃,这有助于模型更好地处理长距离依赖关系,提高对复杂模式的建模能力。
- SwiGLU激活函数:SwiGLU是将Swish激活函数和GLU机制结合起来的一种激活函数。Swish函数具有非单调的特性,能够引入更多的非线性,而GLU机制则提供了门控功能。SwiGLU在GLU的基础上多乘了一个g(x),其中g(x)通常是通过Swish函数或其他非线性变换得到的。这种结合使得SwiGLU在保持GLU优势的同时,进一步增强了模型的表达能力。
第三题.LLaMA1/2的异同
- 数据角度:LLaMA 2.0的训练数据量为2.0T,而LLaMA 1.0的训练数据量为1.4T。更多的训练数据通常可以使模型学习到更丰富的知识和模式,从而提高其性能。
- 上下文长度:LLaMA 1.0的上下文长度为2k,而LLaMA 2.0的上下文长度为4k。更长的上下文长度意味着模型能够处理更长的文本序列,更好地理解和生成连贯的长篇内容。
- 模型架构角度:
- 位置编码:二者都采用了旋转位置编码,这种编码方式能够更好地捕捉序列中的位置信息,并且在长序列建模方面具有优势。
- Normalization:二者都采用pre-normalization,但在具体的归一化方法上有所不同。LLaMA 1.0中采用原始的LayerNormalization,而LLaMA 2.0中采用的是RMSNorm。RMSNorm在某些情况下可以提供更好的数值稳定性和训练效率。
- 激活函数:二者都采用了SwiGLU激活函数,这有助于提高模型的表达能力和性能。
第四题.模型在训练和推理时各占用显存的多少
- 训练时显存占用:一般来说,训练时显存占用大约是模型参数量的16倍大小。这是因为除了模型参数本身,还需要存储优化器状态、梯度等信息。例如,如果模型参数量为1GB,那么训练时显存占用可能达到16GB左右。
- 推理时显存占用:推理时显存占用相对较少,大约是模型参数量的2倍大小。这是因为推理过程中不需要存储梯度和优化器状态等信息。例如,使用fp16精度时,一个单位参数大小对应两个字节;使用int8精度时,一个单位参数大小对应一个字节。
第五题.DeepSpeed的机制
DeepSpeed是一种用于大规模训练和推理的深度学习优化库,它提供了多种优化技术来提高模型的训练效率和性能。其中,Zero是DeepSpeed的一种重要技术,它主要通过优化内存使用和通信来加速训练过程。Zero有三种不同的方案:
- Zero-DP:这是最基本的方案,主要通过数据并行的方式进行训练。它将模型的参数、梯度和优化器状态分布在不同的GPU上,每个GPU只存储一部分数据。这种方式可以有效地减少单个GPU的内存占用,提高训练效率。
- Zero-Offload:在Zero-DP的基础上,进一步将部分计算和数据卸载到CPU上。这可以进一步减少GPU的内存压力,特别是在显存有限的情况下。然而,由于CPU和GPU之间的数据传输可能会带来一定的开销,因此需要在内存节省和计算效率之间进行权衡。
- Zero-Infinity:这是Zero系列中最为先进的方案,它结合了多种优化技术,如异步数据加载、梯度累积和混合精度训练等。通过这些技术的协同作用,Zero-Infinity能够在保持高训练效率的同时,进一步降低内存占用,使得能够在有限的硬件资源上训练更大的模型。
PS小插图:技术方案标书工具介绍:【巧*书】是一款专为企业打造的高效AI智能写标书工具,通过AI大模型精准解析招标文件,智能生成投标内容,快速制作符合要求的高质量标书。