Llama3大模型原理代码精讲与部署微调评估实战教程

kuaidelasi · · 281 次点击 · 开始浏览    置顶

一、llama1技术详解(/s/18iOUpxP416A3bROfKUDmxw 提取码: 6i37) 由Meta AI 发布,包含 7B、13B、33B 和 65B 四种参数规模的开源基座语言模型。 数据集:模型训练数据集使用的都是开源的数据集。 模型结构:原始的Transformer由编码器(Encoder)和解码器(Decoder)两个部分构成。同时Encoder和Decoder这两部分也可以单独使用,llama是基于Transformer Decoder的架构,在此基础上上做了以下改进: (1)llama将layer-norm 改成RMSNorm(Root Mean square Layer Normalization),并将其移到input层,而不是output层。 (2)采用SwiGLU激活函数。 (3)采用RoPE位置编码。 分词器:分词器采用BPE算法,使用 SentencePiece 实现,将所有数字拆分为单独的数字,并使用字节来分解未知的 UTF-8 字符。词表大小为 32k 。 优化器:AdamW,是Adam的改进,可以有效地处理权重衰减,提供训练稳定性。 learning rate:使用余弦学习率调整 cosine learning rate schedule,使得最终学习率等于最大学习率的10%,设置0.1的权重衰减和1.0的梯度裁剪。warmup的step为2000,并根据模型的大小改变学习率和批处理大小。 模型效果:llama-13B(gpt-3 1/10大小)在多数benchmarks上超越gpt-3(175B)。在规模较大的端,65B参数模型也与最好的大型模型(如Chinchilla或PaLM-540B)也具有竞争力。 二、Llama 3技术剖析与部署 相较于Llama2, Llama3的改变其实并不是太大。 Tokenizer变成了128K的词表,使用了GQA,不在是原来的只在Llama2-70B里使用了。所以说,最大的改变就是词表与GQA。然后在训练上变化比较大,参数变大了,400B的还没放出来。但它的训练是变化很大的。训练数据明显比过去多,15T的token数差不多是Llama2的四倍多,而且这个数据的质量明显要高呢。 新的数据过滤器,幻觉、NSFW、语义重复、分类这些都有提高或者新增。 预训练的数据也在变好,再加上适当的优化技术。 所以真的结构上的改变是GQA。 那看一下GQA是咋回事吧。 一切的改进都是针对Transformer的QKV这块来的 三、扩大预训练规模 为了有效地利用Llama 3模型的预训练数据,我们付出了大量努力来扩大预训练规模。具体来说,我们制定了一系列详细的下游基准评估的规模定律。这些规模定律使我们能够选择最佳的数据混合方式,并做出明智的决策,以最佳方式利用我们的训练计算资源。重要的是,规模定律使我们能够在实际训练模型之前预测最大型号模型在关键任务上的性能(例如,在上面提到的HumanEval基准评估上评估的代码生成),这有助于确保我们最终模型在各种用例和功能中表现出色。 在开发Llama 3过程中,我们对规模行为进行了几项新的观察。例如,虽然对于8B参数模型来说,Chinchilla-optimal的训练计算量对应约200B标记,但我们发现,即使在模型训练了两个数量级的数据后,模型性能仍然会持续提高。我们的8B和70B参数模型在训练了高达15T标记后仍然呈对数线性改善。较大的模型可以通过更少的训练计算量达到这些较小模型的性能水平,但一般更喜欢较小模型,因为它们在推理过程中更加高效。 为了训练我们最大的Llama 3模型,我们结合了三种并行化方式:数据并行化、模型并行化和流水线并行化。我们最有效的实现在同时使用16K个GPU进行训练时,每个GPU的计算利用率超过400 TFLOPS。我们在两个定制的24K GPU集群上进行了训练。为了最大程度地提高GPU的正常运行时间,我们开发了一个先进的新训练堆栈,自动化错误检测、处理和维护。我们还大大提高了硬件的可靠性,并针对无声数据损坏开发了新的可扩展存储系统,减少了检查点和回滚的开销。这些改进使得我们的训练时间的整体有效率超过95%。综合来看,这些改进使得Llama 3的训练效率相比Llama 2提高了大约三倍 四、大模型LLaMA的优势特点 相较于传统模型,大模型LLaMA具有以下优势特点: 1.更高的性能:由于采用了先进的Transformer架构和大量的训练数据,LLaMA模型在各项自然语言处理任务中都取得了显著的性能提升。 2.更强的泛化能力:通过多任务学习和上下文感知技术,LLaMA模型能够更好地适应不同的应用场景和任务需求。 3.更低的资源消耗:相较于传统的深度学习模型,LLaMA模型在训练和推理过程中具有更低的资源消耗和更高的效率。 例如,在机器翻译任务中,LLaMA模型能够实现对多种语言的实时翻译,并且保持较高的翻译质量和准确性。此外,LLaMA模型还在文本分类、情感分析、问答系统等任务中表现出色,为相关领域的研究和应用提供了有力的支持。 四、大模型LLaMA的应用前景 大模型LLaMA在自然语言处理领域具有广泛的应用前景,以下是一些可能的应用场景: 1.智能客服:LLaMA模型可以应用于智能客服系统中,实现自动回答用户问题、提供个性化服务等功能,提高客服效率和用户体验。 2.内容推荐:通过分析用户的浏览历史、兴趣偏好等信息,LLaMA模型可以为用户推荐相关的内容和服务,提高内容的点击率和转化率。 3.文本创作:LLaMA模型可以辅助作家、编辑等人员完成文本创作和修改工作,提高创作效率和质量。 4.语音识别与合成:结合语音处理技术,LLaMA模型可以实现高质量的语音识别和语音合成功能,为智能语音助手、智能音响等应用提供支持。 五、模型结构 从transformer的结构图可见,transformer可以分成2部分,encoder和decoder,而llama只用了tranformer的decoder部分,是decoder-only结构。目前大部分生成式的语言模型都是采用这种结构,bert采用Encoder-only,google t5采用encoder-decoder结构。 至于为什么用decoder-only,参考苏剑林【为什么现在的LLM都是Decoder-only的架构?- 科学空间|Scientific Spaces】,其中提到了attention在n×d的矩阵与d×n的矩阵相乘后再加softmax(n≫d),这种形式的Attention的矩阵因为低秩问题而带来表达能力的下降,但decoder only因为用了masked attention,是一个下三角矩阵,attention一定是满秩的。也可以参考【CastellanZhang:【大模型慢学】GPT起源以及GPT系列采用Decoder-only架构的原因探讨】。 llama和llama2在模型结构了基本一致,llama2结构左半部分,llama共用了32个Decoder层。 其中每个decoder层右半部分所示,主要是将transformer中的LayerNorm换成了RMSNorm,Multi-Head Attention换成了GQA(llama是MQA),postionnal换成了RotatyEmbedding(RoPE相对位置编码)。 六、指令微调 为了充分发挥Meta预训练模型在聊天用例中的潜力,Meta也对Meta的指令微调方法进行了创新。Meta的后训练方法是监督微调(SFT)、拒绝采样、近端策略优化(PPO)和直接策略优化(DPO)的结合。用于SFT的提示的质量和用于PPO和DPO的偏好排名对模型的性能有巨大影响。Meta通过精心策划的数据和多轮人类注释者提供的质量保证获得了对模型质量的极大改进。 通过PPO和DPO学习偏好排名也极大地改善了Llama 3在推理和编码任务上的性能。Meta发现,如果向模型提出一个它难以回答的推理问题,模型有时会生成正确的推理轨迹:模型知道如何生成正确的答案,但不知道如何选择它。根据偏好排名进行训练使模型学会如何选择。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

281 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传