一文速览Llama3:含8B和70B、长度8K、15T训练数据、组合PPO和DPO等方法

前言

4.19日凌晨正准备睡觉时,突然审稿项目组的文弱同学说:Meta发布Llama 3系列大语言模型了

一查,还真是

本文以大模型开发者的视角,帮你迅速梳理下LLama的关键特征,并对比上一个版本的LLama2,且本文后续,将更新用我司paper-review数据集微调llama3的训练过程

第一部分 Meta发布Llama 3:所有大模型开发者的福音

1.1 Llama 3的性能

1.1.1 在多个榜单上超越Google的gemma 7B、Mistral 7B

此次发布的Llama 3有两个版本:8B 和 70B。由于预训练和指令微调的加强,模型在推理、代码生成和指令跟踪等方面的能力得到比较大的提高,最终在多个榜单上超越Google的gemma 7B、Mistral 7B(当然了,我还是得说一句,榜单肯定能够说明一些东西,但不代表全部)

*请参阅评估详细信息以了解计算这些评估的设置和参数。

1.1.2 一套专门的评估数据集:1800个prompt 涵盖12类任务

为了更好的评估llama3的性能,Meta开发了一套新的高质量人类评估集。该评估集包含 1,800 个提示,涵盖 12 个关键用例:寻求建议、头脑风暴、分类、封闭式问答、编码、创意写作、提取、塑造角色/角色、开放式问答、推理、重写和总结

且为了防止模型在此评估集上过度拟合,即使Meta的建模团队也无法访问它(说白了,保证评估数据集中的数据不被模型实现学到)。下图显示了Meta针对 Claude Sonnet、Mistral Medium 和 GPT-3.5 对这些类别和提示进行人工评估的汇总结果(compared to competing models of comparable size in real-world scenarios,即PK的开源模型也都是70B左右的大小)

且llama3的预训练模型这些榜单上PK同等规模的其他模型时,亦有着相对突出的表现

*请参阅评估详细信息以了解计算这些评估的设置和参数。

1.2 Llama 3:模型架构、预训练数据、扩大预训练和指令微调

1.2.1 模型架构:继续transformer解码器架构、分组查询注意力、8K上下文

和Llama 2一样,Llama 3 继续采用相对标准的decoder-only transformer架构,但做了如下几个关键的改进
  1. Llama 3 使用具有 128K tokens的tokenizer,可以更有效地对语言进行编码
  2. 为了提高 Llama 3 模型的推理效率,在 8B 和 70B 都采用了分组查询注意力(GQA)
    这点其实也和llama 2保持了一致,因为llama 2也是用的GQA「详见LLaMA的解读与其微调(含LLaMA 2):Alpaca-LoRA/Vicuna/BELLE/中文LLaMA/姜子牙的第3.2节LLaMA2之分组查询注意力——Grouped-Query Attention

  3. 在 8,192 个token的序列上训练模型,且通过掩码操作以确保自注意力不会跨越文档边界
    这点相比llama 2是一个进步,毕竟llama 2的上下文长度还只有4K,所以我司审稿项目组在用平均长度8K的paper-review数据集去微调llama2时,不得已必须用上longlora/longqlora这类扩展长度的技术(详见:七月论文审稿GPT第2版:用一万多条paper-review数据微调LLaMA2 7B最终反超GPT4)

1.2.2 训练数据:15T预训练数据

做大模型开发的都知道,数据的重要性不言而喻,为进一步提高模型的性能

  1.  Llama 3 经过超过 15T token的预训练(比 Llama 2 使用的数据集大七倍,并且包含四倍多的代码,要知道,llama 2的训练数据才2T个token,即2万亿个token),这些数据全部从公开来源收集
  2. Llama 3 预训练数据集的中,其中有超过5%的部分由涵盖 30 多种语言的高质量非英语数据组成。当然,大概率上,这些语言的性能水平不会与英语相同(原因在于其只占5%罗)
  3. 为了确保 Llama 3 接受最高质量数据的训练,他们还开发了一系列数据过滤管道。这些管道包括使用启发式过滤器、NSFW 过滤器、语义重复数据删除方法和文本分类器来预测数据质量
    且使用 Llama 2 作为文本质量分类器 为 Llama 3 生成训练数据
  4. 还进行了广泛的实验,以评估在最终预训练数据集中混合不同来源的数据的最佳方法。这些实验使能够选择一个数据组合,确保 Llama 3 在各种用例(包括琐事问题、STEM、编码、历史知识等)中表现良好

 1.2.3 扩大预训练规模

​为了有效利用 Llama 3 模型中的预训练数据,他们投入了大量精力来扩大预训练规模。具体来说

  1. 为下游基准评估制定了一系列详细的缩放法则。这些缩放法则使我们能够选择最佳的数据组合,且使我们能够在实际训练模型之前预测最大模型在关键任务上的性能(例如,在 HumanEval 基准上评估的代码生成 - 见上文)

    \rightarrow  比如在 Llama 3 的开发过程中,对缩放行为进行了一些新的观察。例如,虽然 8B 参数模型的 Chinchilla 最佳训练计算量对应于约 200B 个token,但发现即使在模型建立之后,模型性能仍在继续提高接受了两个数量级以上的数据训练
    \rightarrow  在对多达 15T 代币进行训练后,8B 和 70B 参数模型都继续以对数线性方式改进。较大的模型可以用较少的训练计算来匹配这些较小模型的性能,但较小的模型通常是首选,因为它们在推理过程中效率更高
  2. 为了训练Llama 3的400B的版本,Meta结合了三种类型的并行化:数据并行化、模​​型并行化和管道并行化
    当同时在 16K GPU 上进行训练时,可实现每个 GPU 超过 400 TFLOPS 的计算利用率,当然,最终在两个定制的24K GPU 集群上进行了训练

    且为了最大限度地延长 GPU 的正常运行时间,开发了一种先进的新训练堆栈,可以自动执行错误检测、处理和维护。还极大地改进了硬件可靠性和静默数据损坏检测机制,并且开发了新的可扩展存储系统,以减少检查点和回滚的开销。这些改进使总体有效培训时间超过 95%
    综合起来,这些改进使 Llama 3 的训练效率比 Llama 2 提高了约三倍​

1.2.4 指令微调:SFT之外,组合了拒绝采样、PPO和DPO

为了充分释放预训练模型在聊天用例中的潜力,我们还对指令调整方法进行了创新。我们的后训练方法是监督微调SFT、拒绝采样、近端策略优化PPO(关于PPO详见此文《强化学习极简入门:通俗理解MDP、DP MC TC和Q学习、策略梯度、PPO》的第4部分),和直接策略优化DPO的组合(关于DOP则见此文:《RLHF的替代之DPO原理解析:从RLHF、Claude的RAILF到DPO、Zephyr》)

  1. SFT 中使用的prompt质量以及 PPO 和 DPO 中使用的偏好排名对对齐模型的性能有着巨大的影响。最终,在模型质量方面的一些最大改进来自于仔细整理这些数据并对人类标注者提供的标注或注释进行多轮质量保证
  2. 通过 PPO 和 DPO 从偏好排名中学习也极大地提高了 Llama 3 在推理和编码任务上的性能。即如果你向模型提出一个它难以回答的推理问题,该模型有时会产生正确的推理轨迹:模型知道如何产生正确的答案,但不知道如何选择它。但对偏好排名的训练使模型能够学习如何选择它​

1.3 其他介绍

1.3.1 与其他开源库的兼容:比如PyTorch 原生库之torchtune、LangChain等

  1. 提供了新的信任和安全工具,包括 Llama Guard 2 和 Cyber​​sec Eval 2 的更新组件,并引入了 Code Shield——一种用于过滤 LLM 生成的不安全代码的推理时间防护栏
  2. 还与torchtune共同开发了 Llama 3 ,torchtune 是新的 PyTorch 原生库,可以轻松地使用 LLM 进行创作、微调和实验。 torchtune 提供完全用 PyTorch 编写的内存高效且可破解的训练方法。该库与 Hugging Face、Weights & Biases 和 EleutherAI 等流行平台集成,甚至支持 Executorch,以便在各种移动和边缘设备上运行高效推理
  3. 提供了关于「将 Llama 3 与 LangChain 结合使用」的全面入门指南

1.3.2 负责任地部署

为了方便让开发者负责任地部署llama3,他们采用了一种新的系统级方法


且指令微调模型已经通过内部和外部的努力进行了安全红队(测试)

红队方法利用人类专家和自动化方法来生成对抗性提示,试图引发有问题的响应。例如,我们应用全面的测试来评估与化学、生物、网络安全和其他风险领域相关的滥用风险

所有这些努力都是迭代的,并用于为正在发布的模型进行安全微调提供信息。可以在模型卡中详细了解我们的努力

  1. ​Llama Guard 模型旨在成为快速响应安全的基础,并且可以根据应用需求轻松进行微调以创建新的分类法。作为起点,新的 Llama Guard 2 使用最近宣布的MLCommons 分类法,努力支持这一重要领域行业标准的出现
  2. 此外,Cyber​​SecEval 2 在其前身的基础上进行了扩展,添加了对 LLM 允许滥用其代码解释器的倾向、攻击性网络安全功能以及对提示注入攻击的敏感性的测量(在我们的技术论文中了解更多信息)
  3. 最后,我们引入了 Code Shield,它增加了对 LLM 生成的不安全代码的推理时过滤的支持。这可以缓解不安全代码建议、代码解释器滥用预防和安全命令执行方面的风险

更多参见负责任使用指南(RUG),该指南为法学硕士负责任的开发提供了全面的指南。正如在 RUG 中概述的那样,Meta建议根据适合应用程序的内容指南检查和过滤所有输入和输出

1.3.3 大规模部署 Llama 3

Llama 3 很快将在所有主要平台上提供,包括云提供商、模型 API 提供商等等。 Llama 3 将无处不在

基准测试显示,标记生成器提高了标记效率,与 Llama 2 相比,生成的标记最多减少了 15%。此外,Llama 3 8B 现在也添加了组查询注意 (GQA)。结果观察到,尽管与 Llama 2 7B 相比,模型的参数多了 1B,但改进的分词器效率和 GQA 有助于保持与 Llama 2 7B 相同的推理效率。

有关如何利用所有这些功能的示例,请查看Llama Recipes,其中包含所有的开源代码,这些代码可用于从微调到部署再到模型评估的所有内容

1.3.4 Llama 3 的下一步是什么?

llama 3中最大的模型有超过 400B 个参数,不过这个模型仍在训练中(后续,Meta将发布多个具有新功能的模型,包括多模态、以多种语言交谈的能力、更长的上下文窗口和更强的整体功能。且后续还将发布一份详细的研究论文)

*请参阅评估详细信息以了解计算这些评估的设置和参数

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

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

相关文章

Python 字符串 Base64

因消息传输的需要,我们需要对大量文本的字符串进行一下 Base64 转换。 这样的好处是因为在传输的字符串中可能有存在一些特殊字符,这些特殊在经过网络传输的时候会出现编码的问题,并且会影响传输稳定性。 使用 Base64 可以避免这个问题。 方…

面试遇到的算法题

1.字符串转换整数 读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字…

GitOps 和 DevOps 有什么区别?

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…

03 JavaScript学习:浏览器中执行 JavaScript

我比较习惯Chrome浏览器。 Chrome 是由 Google 开发的免费网页浏览器,调试代码非常方便。 Chrome 官网地址:https://www.google.com/intl/zh-CN/chrome/。 控制台输出 浏览器的控制台是开发者工具中的一个重要组成部分,它可以用来查看网页…

【氮化镓】GaN HEMT失效物理和可靠性

概述: 本文是一篇关于AlGaN/GaN基高电子迁移率晶体管(HEMTs)的失效物理和可靠性研究的综述文章,发表在2013年10月的《IEEE Transactions on Electron Devices》上。文章由Enrico Zanoni等人撰写,主要关注了影响栅极边缘和肖特基结的失效机制,并探讨了提高这些器件可靠性…

springboot的开发流程

文章目录 springboot的开发流程 1.创建maven项目2.引用依赖 1)起步依赖2)项目依赖3.启动类4.配置文件5.业务代码 1)dto2)controller6.restful测试7.部署 1)打包2)部署 springboot的开发流程 1.创建maven项目 新建maven项目 配置…

若依框架后台管理系统_修改后台管理密码

若依框架后台管理系统_修改后台管理密码 1. 找见加密函数: /*** 生成BCryptPasswordEncoder密码** param password 密码* return 加密字符串*/public static String encryptPassword(String password){BCryptPasswordEncoder passwordEncoder new BCryptPasswordE…

linux 的Jdk1.8详细安装部署教程

一、环境准备 1.下载安装包 下载地址,这是1.8的你也可以选择安装别的版本的 https://www.oracle.com/java/technologies/downloads/#java8-windows 选择想要的系统和对应的位数,点击下载即可 2.上传安装包 选择自己要安装的路径,&#x…

软阈值函数的应用实例!

让我们通过一个简单的例子来展示软阈值的功能。 假设我们有一个包含一些信号的向量 ( x ),如下所示: [ x [3, -2, 5, -1, 7, -4, 2, 0] ] 现在,我们希望对这个信号进行软阈值处理,以去除幅值较小的分量,并减少噪音。…

Feign的使用

目录 一.概念 二.使用 2.1依赖 2.2启动类注释 2.3.创建service包,写接口 2.4.生产者方法 2.5效果 三.openfeign的服务降级 3.1理论 3.2使用 一.概念 Feign是Spring Cloud提供的声明式、模板化的HTTP生产者,它使得调用远程服务就像调用本地服…

创建SpringBoot控制台程序并打包运行(Windows)

1. 新建一个Springboot项目Study (PS&#xff1a; 这个不需要演示了吧?) 注意pom.xml&#xff0c;是spring-boot-starter&#xff0c;不是spring-boot-web-starter <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

蓝桥杯备赛(C/C++组)

README&#xff1a; 本笔记是自己的备考笔记&#xff0c;按照官网提纲进行复习&#xff01;适合有基础&#xff0c;复习用。 一、总考点 试题考查选手解决实际问题的能力&#xff0c;对于结果填空题&#xff0c;选手可以使用手算、软件、编程等方法解决&#xff0c;对于编程大…

BTP连接cloud connector中配置的SAP

登录地址 登录之后可以看到我们已经配置成功的后端系统SAP。 从cloud connector中获取location ID ,然后在BTP中配置Destination 选择目标标签页&#xff0c;点击‘新建目标’&#xff0c;如下图&#xff1a; 新建连接 暂时不知道错误原因 创建目标-HTTP  新建目标&…

软考134-上午题-【软件工程】-进度管理

一、甘特图&#xff08;了解&#xff09; 1-1、定义 Gantt图是一种简单的水平条形图&#xff0c;它以日历为基准描述项目任务。 水平轴表示日历时间线(如时、天、周、月和年等)&#xff0c;每个条形表示一个任务&#xff0c;任务名称垂直地列在左边的列中&#xff0c;图中水…

DIY mybatisPlus的分页插件

目录 起因修改定义接口重写MyPage的方法 实践测试 起因 在我们通过list返回的列表页&#xff0c;出现了一个需要数据合计的需求&#xff0c;例如一个订单1块钱&#xff0c;那么所有订单加起来多少钱&#xff0c;那么list一般都通过分页返回&#xff0c;而统计所有订单又不能只…

量化研究---小果因子分析系统使用教程,可转债macd因子为例子

文章链接 量化研究---小果因子分析系统使用教程&#xff0c;可转债macd因子为例子 (qq.com) 因子分析是一种多维变量统计分析方法&#xff0c;用于从多个变量中提取少数公共因子。 具体来说&#xff0c;因子分析的核心目的是通过研究变量之间的相关性&#xff0c;将多个相关联…

Spring 事务 (编程式 声明式, Spring 事务传播机制)

事务 事务是一组操作的集合, 是一个不可分割的整体 事务会把所有的操作作为一个整体, 一起向数据库提交或是撤销操作请求. 所以这组操作要么同时成功, 要么同时失败 Spring 中事务的实现 编程式 (手动写代码操作事务)声明式 (通过注解自动开启和提交事务) 编程式事务 开启事务 …

Module外贸主题开心版下载-v5.7.0版本WordPress企业模板

主题下载地址&#xff1a;Module外贸主题开心版下载-v5.7.0版本 Module主题介绍&#xff1a;采用全新模块化开发&#xff0c;首页模块可视化拖拽自由组合&#xff0c;可自定义搭建出不同行业适用的企业网站。同时主题全面支持WPML多语言切换&#xff0c;可轻松搭建外贸网站。W…

torchEEG工具箱

文章信息: 题目&#xff1a;TorchEEGEMO&#xff1a;基于脑电图的情绪识别深度学习工具箱 期刊&#xff1a;Expert Systems with Applications 环境&#xff1a;pytorch 1.11.0 CUDA 11.3 摘要&#xff1a; ​ 一个python工具箱TorchEEG&#xff0c;将工作流程分为五个模块…

学习STM32第十六天

RTC实时时钟 一、简介 RTC是一个独立的BCD格式定时器&#xff0c;提供一个时钟日历&#xff0c;两个可编程报警中断&#xff0c;一个具有中断功能周期性可编程唤醒标志&#xff0c;RTC和时钟配置系统处于后备区域。 通过两个32位寄存器以BCD格式实现秒、分钟、小时&#xff08…