Meta发布升级大模型LLaMA 2:开源可商用

图片

图片

论文地址:https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/ 

Github地址:https://github.com/facebookresearch/llama

LLaMA 2介绍

      Meta之前发布自了半开源的大模型LLaMA,自从LLaMA发布以来,基于它的扩展模型就层出不穷,尤其是羊驼系列,我最近正在总结这些大模型,感兴趣的读者可以阅读:LLaMA以及其扩展模型总结(一)

       今天Meta公司发布了LLaMA 2版本,是开源可商用的版本,而且在模型和效果上有了很大的更新。此次LLaMA 2总共公布了7B、13B和70B三种参数大小的模型,此外还训练了 340 亿参数变体,但并没有发布,只在技术报告中提到了。相比于LLaMA,LLaMA 2 的训练数据多了 40%,上下文长度也由之前的2048升级到4096,可以理解和生成更长的文本,并采用了分组查询注意力机制。具体来说,LLaMA 2 预训练模型是在 2 万亿的 token 上训练的,LLaMA 2-Chat模型是在 100 万人类标记数据上微调得到的。

图片

图片

       LLaMA 2 在包括推理、编码、精通性和知识测试等许多外部基准测试中都优于其他开源语言模型,评测结果如下表所示:

图片

LLaMA 2 预训练

       LLaMA 2 的训练语料库包含了来自公开可用资源的混合数据,并且不包括 Meta 产品或服务相关的数据。LLaMA 2 采用了 LLaMA中的大部分预训练设置和模型架构,包括标准 Transformer 架构、使用 RMSNorm 的预归一化、SwiGLU 激活函数和旋转位置嵌入。

      在超参数方面,Meta 使用 AdamW 优化器进行训练,其中 β_1 = 0.9,β_2 = 0.95,eps = 10^−5。同时使用余弦学习率计划(预热 2000 步),并将最终学习率衰减到了峰值学习率的 10%。

       下图 5 为这些超参数设置下 LLaMA 2 的训练损失曲线。

图片

      在训练硬件方面,Meta 在其研究超级集群(Research Super Cluster, RSC)以及内部生产集群上对模型进行了预训练。两个集群均使用了 NVIDIA A100。

       在预训练的碳足迹方面,Meta 根据以往的研究方法,利用 GPU 设备的功耗估算和碳效率,计算了 LLaMA 2 模型预训练所产生的碳排放量。

图片

LLaMA 2 预训练模型评估

图片

图片

LLaMA-Chat

       LLaMA-Chat是基于LLaMA 2在100人类标记的数据上微调得到的,LLaMA-Chat微调的整体流程图如下所示:

图片

下面分别介绍SFT和RLHF相关细节:

监督微调 (SFT)

       在SFT阶段,收集了几千个高质量 SFT 数据示例,如下表 5 所示:

图片

       在微调过程中,每个样本都包括一个提示和一个回答。为确保模型序列长度得到正确填充,Meta 将训练集中的所有提示和答案连接起来。他们使用一个特殊的 token 来分隔提示和答案片段,利用自回归目标,将来自用户提示的 token 损失归零,因此只对答案 token 进行反向传播。最后对模型进行了 2 次微调。

基于人类的反馈(RLHF)

       RLHF目的是使模型行为与人类偏好和指令跟随保持一致。下表 6 报告了 Meta 长期以来收集到的奖励建模数据的统计结果,并将其与多个开源偏好数据集进行了对比。他们收集了超过 100 万个基于人类应用指定准则的二元比较的大型数据集,也就是元奖赏建模数据。

图片

       RM奖励模型将模型响应及其相应的提示(包括前一轮的上下文)作为输入,并输出一个标量分数来表示模型生成的质量(例如有用性和安全性)。利用这种作为奖励的响应得分,Meta 在 RLHF 期间优化了 LLaMA 2-Chat,以更好地与人类偏好保持一致,并提高有用性和安全性。

       在每一批用于奖励建模的人类偏好注释中,Meta 都拿出 1000 个样本作为测试集来评估模型,并将相应测试集的所有提示的集合分别称为「元有用性」和「元安全性」。

      下表 7 中报告了准确率结果。不出所料,Meta 自己的奖励模型在基于 LLaMA 2-Chat 收集的内部测试集上表现最佳,其中「有用性」奖励模型在「元有用性」测试集上表现最佳,同样,「安全性」奖励模型在「元安全性」测试集上表现最佳。

       总体而言,Meta 的奖励模型优于包括 GPT-4 在内的所有基线模型。有趣的是,尽管 GPT-4 没有经过直接训练,也没有专门针对这一奖励建模任务,但它的表现却优于其他非元奖励模型。

图片

       Meta 研究了奖励模型在数据和模型大小方面的缩放趋势,在每周收集的奖励模型数据量不断增加的情况下,对不同的模型大小进行了微调。下图 6 报告了这些趋势,显示了预期的结果,即在类似的数据量下,更大的模型能获得更高的性能。

图片

       随着收到更多批次的人类偏好数据注释,能够训练出更好的奖励模型并收集更多的提示。因此,Meta 训练了连续版本的 RLHF 模型,在此称为 RLHF-V1、...... , RLHF-V5。

此处使用两种主要算法对 RLHF 进行了微调:

  • 近端策略优化 (PPO);

  • Rejection 采样微调。

RLHF 结果评估

       下图 11 报告了不同 SFT 和 RLHF 版本在安全性和有用性方面的进展,其中通过 Meta 内部的安全性和有用性奖励模型进行评估。

图片

       如下图 12 所示,LLaMA 2-Chat 模型在单轮和多轮提示方面均显著优于开源模型。特别地,LLaMA 2-Chat 7B 在 60% 的提示上优于 MPT-7B-chat,LLaMA 2-Chat 34B 相对于同等大小的 Vicuna-33B 和 Falcon 40B,表现出了 75% 以上的整体胜率。

图片

       虽然结果表明 LLaMA 2-Chat 在人工评估方面与 ChatGPT 不相上下,但必须指出的是,人工评估存在一些局限性。

  • 按照学术和研究标准,本文拥有一个 4k 提示的大型提示集。但是,这并不包括这些模型在现实世界中的使用情况,而现实世界中的使用情况可能要多得多。

  • 提示语的多样性可能是影响结果的另一个因素,例如本文提示集不包括任何编码或推理相关的提示。

  • 本文只评估了多轮对话的最终生成。更有趣的评估方法可能是要求模型完成一项任务,并对模型在多轮对话中的整体体验进行评分。

  • 人类对生成模型的评估本身就具有主观性和噪声性。因此,使用不同的提示集或不同的指令进行评估可能会产生不同的结果。

LLaMA安全性

该研究使用三个常用基准评估了 LLaMA 2 的安全性,针对三个关键维度:

  • 真实性,指语言模型是否会产生错误信息,采用 TruthfulQA 基准;

  • 毒性,指语言模型是否会产生「有毒」、粗鲁、有害的内容,采用 ToxiGen 基准;

  • 偏见,指语言模型是否会产生存在偏见的内容,采用 BOLD 基准。

预训练的安全性

       首先,预训练数据对模型来说非常重要。Meta 进行实验评估了预训练数据的安全性。

       该研究使用在 ToxiGen 数据集上微调的 HateBERT 分类器来测量预训练语料库英文数据的「毒性」,具体结果如下图 13 所示:

图片

       为了分析偏见方面的问题,该研究统计分析了预训练语料库中的代词和身份相关术语及其占比,如下表 9 所示:

图片

       此外,在语言分布方面,LLaMA 2 语料库涵盖的语种及其占比如下表 10 所示:

图片

安全微调

      具体来说,Meta 在安全微调中使用了以下技术:1、监督安全微调;2、安全 RLHF;3、安全上下文蒸馏。

       Meta 在 LLaMA 2-Chat 的开发初期就观察到,它能够在有监督的微调过程中从安全演示中有所总结。模型很快就学会了撰写详细的安全回复、解决安全问题、解释话题可能敏感的原因并提供更多有用信息。特别是,当模型输出安全回复时,它们往往比普通注释者写得更详细。因此,在只收集了几千个有监督的示范后,Meta 就完全改用 RLHF 来教模型如何写出更细致入微的回复。使用 RLHF 进行全面调整的另一个好处是,它可以使模型对越狱尝试更加鲁棒。

图片

       Meta 首先通过收集人类对安全性的偏好数据来进行 RLHF,其中注释者编写他们认为会引发不安全行为的 prompt,然后将多个模型响应与 prompt 进行比较,并根据一系列指南选择最安全的响应。接着使用人类偏好数据来训练安全奖励模型,并在 RLHF 阶段重用对抗性 prompt 以从模型中进行采样。

       如下图 15 所示,Meta 使用平均奖励模型得分作为模型在安全性和有用性方面的表现结果。Meta 观察到,当他们增加安全数据的比例时,模型处理风险和对抗性 prompt 的性能显著提高。

图片

      最后,Meta 通过上下文蒸馏完善了 RLHF 流程。这涉及到通过在 prompt 前加上安全前置 prompt 来生成更安全的模型响应,例如「你是一个安全且负责任的助手」,然后在没有前置 prompt 的情况下根据更安全的响应微调模型,这本质上是提取了安全前置 prompt(上下文)进入模型。

        Meta 使用了有针对性的方法,允许安全奖励模型选择是否对每个样本使用上下文蒸馏。

图片

下图 17 展示了各种 LLM 的总体违规百分比和安全评级。

图片

       下图 18 展示了单轮和多轮对话的违规百分比。跨模型的一个趋势是,多轮对话更容易引发不安全的响应。也就是说,与基线相比,LLaMA 2-Chat 仍然表现良好,尤其是在多轮对话中。

图片

下图 19 显示了不同 LLM 在不同类别中安全违规百分比。

图片

图片

参考文献:

[1] https://ai.meta.com/llama/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Apikit 自学日记:如何测试多个关联的 API

肯定会有人好奇,如果有多个关联的 API 如何做测试呢?很简单!在 APIkit 中也有测试多个关联 API 的功能。 1、在流程测试用例详情页中,点击“ 添加测试步骤”,选择“从API文档添加API请求” 2、在对应的项目下选择关联的…

STL好难(8):map和set

目录 1.一些概念的理解 🍉关联式容器和序列式容器 🍉key模型、key/value模型 🍉树形结构关联式容器 2.set的介绍 🍉set文档 🍉set的使用 🍒set的模板参数列表 🍒set的构造 &#x1f3…

从制造到智造,安捷利的云数蝶变

伴随着新一轮科技革命和产业变革的兴起,制造业的数字化转型步入深水区,尤其是在5G、工业互联网、大数据等为代表的新技术推动下,制造业全方位、全链条的升级已是大势所趋。 南沙地处中国的南大门,既是国家面向世界的重要战略平台…

python和django中安装mysqlclient失败的解决方案

在Pychram中和pip中安装mysqlclient都不成功,只能直接下载二进制包进行安装了,下载页面中根据python的版本选择对应WHL包下载,下载地址 mysqlclient PyPIhttps://pypi.org/project/mysqlclient/#files 通过pip命令进行安装 pip install d:\…

传输网络介绍

文章目录 1、通信传输介质有哪些?2、通信网络常见的组网形式有哪些?3、光纤通信常用的复用技术是哪两种?4、SDH的复用技术是什么?5、灰光和彩光的区别在哪里?6、波长的计算公式?7、5G时代,承载网…

esp32-cam红外实时监控报警系统(巴发云和邮箱同时推送)

esp32-cam红外实时监控报警系统 设想-巴发云转折-照片数量限制代码避开巴发云照片限制邮箱的坑同时我的巴发云微信也受到了提醒报警,虽然没有图片显示。 设想-巴发云 我想做一个人体红外传感器发现人体报警,同时给我手机发报警提醒,同时发送…

​​Layui之用户管理实例(对数据的增删改查)

目录 ​编辑一、R工具介绍() ​编辑二、数据表的增删改查 ​编辑2.1我们先得从查询数据库的语句入手 2.2优化dao类 2.4UserAction类 2.5前台的页面实现增删改查操作 2.6 userManage页面JS 2.7user新增、修改iframe层js 前言 上一篇我分享了…

【图像处理OpenCV(C++版)】——5.6 图像平滑之联合双边滤波

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

Orleans 微软基于 Actor 的分布式框架

一、Actor模型工作原理 Actor模型是一种并发编程模型,它基于消息传递实现,是一种轻量级的并发模型。在Actor模型中,每个Actor都是一个独立的执行单元,它可以接收和发送消息,并且可以执行一些本地操作,但是不…

Internet Download Manager IDM 破解版 中文便携版 v6.41.15

Internet Download Manager 介绍 Internet Download Manager,全球最佳下载利器。Internet Download Manager (简称IDM) 是一款Windows 平台功能强大的多线程下载工具,国外非常受欢迎。支持断点续传,支持嗅探视频音频,接管所有浏览…

【Python爬虫开发基础⑭】Scrapy架构(组件介绍、架构组成和工作原理)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: ⭐️前面比较重要的基础内容: 【Python爬…

【ArcGIS Pro微课1000例】0028:绘制酒店分布热力图(POI数据)

本文讲解在ArcGIS Pro中文版中,基于长沙市酒店宾馆分布矢量点数据(POI数据)绘制酒店分布热力图。 文章目录 一、加载酒店分布数据二、绘制热度图参考阅读: 【GeoDa实用技巧100例】004:绘制长沙市宾馆热度图 【ArcGIS微课1000例】0070:制作宾馆酒店分布热度热力图 一、加载…

从0到1构建证券行业组织级项目管理体系的探索与实践︱东吴证券PMO负责人娄鹏呈

东吴证券股份有限公司信息技术总部PMO负责人娄鹏呈先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:从0到1构建证券行业组织级项目管理体系的探索与实践。大会将于8月12-13日在北京举办,敬请关注! 议题简要&a…

联通 Flink 实时计算平台化运维实践

摘要:本文整理自联通数科实时计算团队负责人、Apache StreamPark Committer 穆纯进在 Flink Forward Asia 2022 平台建设专场的分享,本篇内容主要分为四个部分: 实时计算平台背景介绍 Flink 实时作业运维挑战 基于 StreamPark 一体化管理 …

力扣题目解析:生成奇数个字符的字符串的巧妙方法

本篇博客会讲解力扣“1374. 生成每种字符都是奇数个的字符串”的解题思路,这是题目链接。 这道题的解题思路很巧妙,它利用了字符串长度n的奇偶性: 如果n是奇数,那么就把字符串全部填充为’a’,这样每种字符都是奇数个…

基于linux下的高并发服务器开发(第一章)- 目录遍历函数

10 / 目录遍历函数 // 打开一个目录 #include <sys/types.h> #include <dirent.h>DIR *opendir(const char *name); 参数&#xff1a; - name: 需要打开的目录的名称 返回值&#xff1a; DIR * 类型&#xff0c;理解为目录流 错误…

网络安全/黑客技术—学习笔记

一、什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

韦东山Linux驱动入门实验班(4)LED驱动

前言 &#xff08;1&#xff09;我们学习完hello驱动之后&#xff0c;对驱动程序开发有了一点点认识了之后。现在可以开始对硬件进行实际操作了&#xff0c;本人使用的是i.max6ull开发板&#xff0c;STM32MP157和全志的D1H也会进行讲解。 &#xff08;2&#xff09;如果还有对于…

Simulink仿真模块 - Data Store Read

Data Store Read:从数据存储中读取数据 在仿真库中的位置为:Simulink / Signal Routing 模型为: 说明 Data Store Read 模块将指定数据存储中的数据复制到其输出中。多个 Data Store Read 模块可从同一个数据存储读取数据。 用来读取数据的源数据存储由 Data Store Memory 模…

低代码技术:提高效率降低成本的全新选择

一、前言 企业想要独立的应用程序&#xff0c;开发者在寻求更快速、更高效、更灵活的开发方法&#xff0c;以适应快速变化的市场需求。在这个背景下&#xff0c;低代码技术以提高效率降低成本的方式走进人们视野&#xff0c;成为了一种全新的应用程序开发方式。 二、相比传统的…