自然语言处理: 第二十八章大模型基底之llama3

news2025/1/9 4:42:22

项目地址: meta-llama/llama3: The official Meta Llama 3 GitHub site

前言

LLaMa系列一直是人们关注的焦点,Meta在4月18日发布了其最新大型语言模型 LLaMA 3。该模型将被集成到其虚拟助手Meta AI中。Meta自称8B和70B的LLaMA 3是当今 8B 和 70B 参数规模的最佳模型,并在推理、代码生成和指令跟踪方面有了很大进步。(对LLaMa系列有兴趣的可以看看我上一篇博客第二十一章大模型基底之llama1以及第二十二章大模型基底之llama2)

相比与LLaMa2, LLaMa3主要进行了下面几点突破:

  • 扩大词汇量: Llama 3 的词汇量从 Llama 128,256 的 2 个令牌增加到 32,000 个令牌。此增强功能支持更高效的输入和输出文本编码,并增强了其多语言功能。
  • 扩展上下文长度: Llama 3 模型提供 8,000 个令牌的上下文长度,是 Llama 4,090 支持的 2 个令牌的两倍。这种增加允许更广泛的内容处理,包括用户提示和模型响应。
  • 升级后的训练数据: Llama 3 的训练数据集比 Llama 2 大七倍,其中代码量多四倍。它包含超过 5% 的高质量非英语数据,涵盖 30 多种语言,这对于多语言应用支持至关重要。这些数据使用启发式和 NSFW 过滤器、语义重复数据删除和文本分类器等先进技术进行严格的质量控制。
  • 精细化指令调整和评估: 与 Llama 2 不同,Llama 3 采用先进的指令调优技术,包括监督微调 (SFT)、拒绝采样、近端策略优化 (PPO) 和直接策略优化 (DPO)。为了增强这一过程,引入了新的高质量人类评估集,由 1,800 个提示组成,涵盖建议、头脑风暴、分类、编码等不同用例,确保对模型功能的全面评估和微调。
  • 先进的人工智能安全: Llama 3 与 Llama 2 一样,采用了严格的安全措施,例如指令微调和全面的红队,以降低风险,特别是在网络安全和生物威胁等关键领域。为了支持这些努力,Meta 还推出了 Llama Guard 2,它是在 Llama 8 的 3B 版本上进行微调的。这个新模型增强了 羊驼卫士系列 通过对 LLM 输入和响应进行分类来识别潜在的不安全内容,使其成为生产环境的理想选择



一. 模型性能

目前发布的是早期版本,包括 8B 和 70B 大小两个不同版本。目前发布的LLaMA 3仅支持文本输入和输出,今年晚些会发布405B(也称400B)和多模态版本。
在这里插入图片描述


Llama 3 8B 在 MMLU、ARC、DROP 和 HumanEval 等 9 个基准测试中,优于具有相似参数数量的其他开源模型,例如 Mistral 的 Mistral 7B 和 Google 的 Gemma 7B。 Llama 3 70B 超越了 Claude 3 Sonnet,并可与 Google 的 Gemini 1.5 Pro 匹敌。 在目前的lmsys排名中排名第5,开源模型榜单排名第一。

在这里插入图片描述

LLaMa3 还与Claude Sonnet、Mistral Medium 和 GPT-3.5进行了人工评价上的对比,其性能如下:

在这里插入图片描述



二. 模型架构

根据官方文档介绍: LlaMa3 选择了相对标准的纯解码器转换器架构。与 LlaMa32 相比,进行了几项关键改进。

1)LLaMA 3具有 128K词汇量大小的Tokenizer,可以更有效的对文本进行编码,从而显着提高模型性能。

2)8B 和 70B 的LLaMA3都采用了分组查询注意力 (GQA)机制,以提高Inference速度。(LLaMA 2 70B也采用了GQA)

3)在8,192 个Token的较长序列上训练模型,使用掩码机制确保自注意力不会跨越文档边界。需要注意的是LLaMA 3采用了8K Token进行训练,并不代表只能生成8K Token以内文本。(LLaMA 2 为4096)



LlaMa3 和LLaMa2 同样选择了GQA 和 RoPE 这两个关键技术,有关于这两点技术的优点可以参考我笔者之前关于LLaMa2的介绍。

三. 模型训练

3.1 训练数据集

Llama 3 在超过 15T tokens上进行了预训练,这些tokens都是从公开来源收集的。我们的训练数据集比 Llama 2 使用的数据集大 7 倍,包含的代码是 Llama 2 的 4 倍。为了应对即将到来的多语言用例,Llama 3 预训练数据集的 5% 以上由涵盖 30 多种语言的高质量非英语数据组成。

Meta使用一系列数据清洗方法,包括使用启发式过滤器、NSFW 过滤器、语义重复数据删除方法和文本分类器来预测数据质量。其中LLaMA 2 为LLaMA 3 提供文本质量分类器的训练数据


3.2 预训练

为了在 Llama 3 模型中有效地利用预训练数据,Meta为下游基准评估制定了一系列详细的扩展法则。这些缩放定律使我们能够选择最佳的数据组合,并就如何最好地使用我们的训练计算做出明智的决策。重要的是,缩放定律允许我们在实际训练模型之前预测最大模型在关键任务上的性能(例如,在 HumanEval 基准测试中评估的代码生成——见上文)。这有助于我们确保最终模型在各种用例和功能中具有强大的性能。

举个例子: 虽然 8B 参数模型的 Chinchilla 最优训练计算量对应于 ~200B 标记,即使在模型使用两个数量级的数据进行训练后,模型性能仍在继续提高。我们的 8B 和 70B 参数模型在我们对高达 15T 的token进行训练后,继续对数线性改进。较大的模型可以与这些较小模型的性能相匹配,但训练计算较少,但通常首选较小的模型,因为它们在推理过程中效率更高。

在这里插入图片描述


LLaMA 3在H100-80GB 的GPGPU上训练(TDP 为 700W),8B和70B的模型训练累计使用了 770 万个 GPGPU 时长。训练过程使用了3种并行加速:数据并行、模型并行和管道并行。在 16000个 GPU 上进行训练时,可实现每个 GPU 超过 400 TFLOPS 的计算利用率。(需要注意H100的稠密算力约为2000TFLOPS)


Meta还开发了一种先进的训练堆栈,可以自动执行错误检测、处理和维护。改进了硬件可靠性和静默数据损坏检测机制,并开发了新的可扩展存储系统,以减少检查点和训练回滚的开销。


以上这些改进使总体有效培训时间超过 95%,训练效率比 Llama 2 提高了约3倍。



3.3 指令微调

为了在聊天用例中充分释放预训练模型的潜力,我们还对指令调整方法进行了创新。我们的后培训方法是监督微调 (SFT)、拒绝抽样、近端策略优化 (PPO) 和直接偏好优化 (DPO) 的组合。SFT 中使用的提示的质量以及 PPO 和 DPO 中使用的偏好排名对对齐模型的性能有很大影响。我们在模型质量方面的一些最大改进来自于仔细管理这些数据,并对人工注释者提供的注释执行多轮质量保证。

通过 PPO 和 DPO 从偏好排名中学习也大大提高了 Llama 3 在推理和编码任务上的表现。我们发现,如果你问一个模型一个它难以回答的推理问题,模型有时会产生正确的推理痕迹:模型知道如何产生正确的答案,但它不知道如何选择它。对偏好排名的训练使模型能够学习如何选择它。

在这里插入图片描述



总结:

LLaMa系列是Meta公司开源的最强模型,但是由于LLaMa3是近期发布的,具体的技术论文Meta还没有公开后续如果公开的话,技术细节会继续更新。 根据现有的资料,咱们可以发现:

  1. 高质量数据集以及数据量的重要性, 超过7倍的预训练数据
  2. 大模型标配 RoPE 以及 GQA 增加推理速度以及提高性能
  3. RLHF(对齐训练的重要性)

最后让我们期待以下Meta在年底发布的LLaMa3的后续版本。






参考资料:

陈巍:LLaMA3大模型技术全网最全解析——模型架构与训练方法(收录于GPT-4/ChatGPT技术与产业分析) - 知乎 (zhihu.com)

揭晓 Meta Llama 3:大型语言模型的飞跃 - Unite.AI

Meta Llama 3 简介:迄今为止最有能力的公开产品LLM — Introducing Meta Llama 3: The most capable openly available LLM to date

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1619192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习】YOLOv5,烟雾和火焰,目标检测,防火检测,森林火焰检测

文章目录 数据收集和数据标注查看标注好的数据的脚本下载yolov5创建 dataset.yaml训练参数开始训练yolov5n训练训练后的权重下载gradio部署 数据收集和数据标注 搜集数据集2w张。 pip install labelme labelme 然后标注矩形框和类别。 下载数据请看这里: https:…

Go 堆内存分配源码解读

简要介绍 在Go的内存分配中存在几个关键结构,分别是page、mspan、mcache、mcentral、mheap,其中mheap中又包括heapArena,具体这些结构在内存分配中担任什么角色呢? 如下图,可以先看一下整体的结构: mcach…

Jackson 2.x 系列【30】Spring Boot 集成之数据脱敏

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 概述2. 实现思路3. 案例演示3.1 脱敏规则3.2 自…

SpringBoot学习之Kafka发送消费消息入门实例(三十五)

使用Kafka之前需要先启动fKafka,如何下载安装启动kafka请先参考本篇文章的前两篇: 《SpringBoot学习之Kafka下载安装和启动【Windows版本】(三十四)》 《SpringBoot学习之Kafka下载安装和启动【Mac版本】(三十三)》 一、POM依赖 1、加入kafka依赖 2、我的整个POM代码…

docker容器技术篇:容器集群管理实战mesos+zookeeper+marathon(一)

容器集群管理实战mesoszookeepermarathon(一) mesos概述 1.1 Mesos是什么 Apache Mesos 是一个基于多资源调度的集群管理软件,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行 Hadoop、Spark以及docker等。 1.2 为…

银河麒麟V10 SP1服务器客户端定时数据同步

银河麒麟V10 SP1服务器客户端定时数据同步 0.概述 当前只测试了将数据从客户端往服务端推送,两个客户端分别推送不同的数据 1.环境 三台电脑均为银河麒麟V10SP1桌面操作系统 服务器IP:192.168.1.51 用户名:wlh 客户端IP:192…

C语言Linux vim shell命令

无论是在插入模式或者是其他模式下对于文件的修改都是对于内存缓冲区进行修改,只有当点击w进行保存以后才会将数据写入到一个新的文件中的,将源文件删除,并且新文件改为文件的名字 1. actionmotion dG删到文件尾 ggdG先到开头再删除到末尾…

微服务项目实战-黑马头条(八):App端-文章ES搜索、MongoDB搜索记录和关键词联想

文章目录 一、今日内容介绍1.1 App端搜索-效果图1.2 今日内容 二、搭建ElasticSearch环境2.1 拉取镜像2.2 创建容器2.3 配置中文分词器 ik2.4 使用postman测试 三、app端文章搜索3.1 需求分析3.2 思路分析3.3 创建索引和映射3.4 数据初始化到索引库3.4.1 导入es-init到heima-le…

光纤网络电力控制系统设计方案:623-6U CPCI的光纤网络电力控制系统

6U CPCI的光纤网络电力控制系统 一、设备概述 柔性直流输电系统中用于控制与测量的FS系统,适用于风电和太阳能发电的并网快速数值计算和闭环控制,以及与直流输电系统的换流器有关的特殊控制功能,包括门控单元的信号处理。该控制板的最大…

Tensorflow2.0笔记 - BatchNormalization

本笔记记录BN层相关的代码。关于BatchNormalization,可以自行百度,或参考这里: 一文读懂Batch Normalization - 知乎神经网络基础系列: 《深度学习中常见激活函数的原理和特点》《过拟合: dropout原理和在模型中的多种应用》深度…

ZYNQ--PL读写PS端DDR数据

PL 和PS的高效交互是zynq 7000 soc开发的重中之重,我们常常需要将PL端的大量数 据实时送到PS端处理,或者将PS端处理结果实时送到PL端处理,常规我们会想到使用DMA 的方式来进行,但是各种协议非常麻烦,灵活性也比较差&am…

【Linux-14】进程地址空间&虚拟空间&页表——原理&知识点详解

前言 大家好吖,欢迎来到 YY 滴 系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

k8s calico vxlan式详解

之前的文章讲了k8s ipip模式的使用以及流量路径,本篇文章主要是来讲解一下vxlan 模式下pod 流量是如何通信的。 一、ipip模式转vxlan 修改calico backend参数 将calico_backend参数由bird设置为vxlan,因为vxlan部署不使用bgp 修改calico controllers的configmap…

Linux安装redis(单机和集群)

一、单机安装 1.源码安装(方式一) 1.1 下载并上传tar包 将redis-6.2.6.tar.gz 上传到/home/data/install_pkg/redis下 1.2 解压缩 cd /home/data/install_pkg/redis //切到指定目录 tar -xvf redis-6.2.6.tar.gz //解压缩 1.3 编译安…

Esp8266 - USB开关分享(开源)

文章目录 简介推广自己gitee项目地址:嘉立创项目地址:联系我们 功能演示视频原理图嘉立创PCB开源地址原理图PCB预览 固件烧录代码编译烧录1. 软件和驱动安装2. 代码编译1. 安装所需要的依赖库文件2. 下载源代码3. 烧录代码 使用说明1. 设备配网2. 打开设备操作页面3…

vue3去掉el-table底部白色边框

加入下面这一行代码就行了,我用的是less :deep(.el-table__inner-wrapper:before) {background: none;}效果图

腾讯云向量数据库-RAG介绍2

1.chunk拆分对最终效果的影响 2.改进知识的拆分方案 3.AI套件 4.相似性检索的关键:embedding技术 嵌入技术是相似性检索的关键,它能够将数据转换为向量表示,并通过比较向量之间的相似性来实现相似性检索;embedding:将…

全面解析平台工程与 DevOps 的区别与联系

平台工程的概念非常流行,但很多开发人员仍然不清楚它是如何实际运作的,这是非常正常的。 平台工程是与 DevOps 并行吗?还是可以相互替代?或者 DevOps 和平台工程是两个完全不同的概念? 一种比较容易将两者区分开来的方…

网站在线生成链接

源码简介 输入前缀、开始数字、结束数字、后缀 即可快速生成 几万、十万、百万 条链接。 支持 一键复制、 一键导出本地 txt 文件。 安装教程 纯HTML,直接将压缩包上传网站目录解压即可 首页截图 源码下载 网站在线生成链接-小8源码屋源码简介 输入前缀、开始…

算法练习(2)——约瑟夫环和坐标公式的推导

看一下上面的牛客题。题目的意思是n个小朋友围成一个圆环,编号从0开始,数m个数时,让小朋友出列,然后出列小朋友的下一个位置为0,继续数m个数,然后小朋友出来,直到最后一个小朋友,然后…