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

news2024/11/24 10:38:00

图片

图片

论文地址: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.coloradmin.cn/o/771024.html

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

相关文章

常用API学习06(Java)

Biglnteger public BigInteger(int num, Random rnd) 获取随机大整数,范围:[0~2的num次方-1] public BigInteger(String val) 获取指定的大整数 public BigInteger(String val, int radix) 获取指定进制的大整数 public static BigInteg…

spring starter

统一返回参数 public class R {private Integer code;private String msg;private Object obj;public static R build() {return new R();}public static R ok(String msg) {return new R(200, msg, null);}public static R ok(String msg, Object obj) {return new R(200, msg…

Spring学习记录---回顾反射机制

目录 10.回顾反射机制 10.1 分析方法四要素 //不使用反射机制调用这些方法 使用反射机制调用方法 代码: 运行结果: 10.4 假设你知道属性名 测试代码 运行结果 10.回顾反射机制 10.1 分析方法四要素 package com.dong.reflect;public class Som…

深入学习 Redis - 深挖经典数据类型之 string

目录 前言 一、string 类型 1.1、操作命令 set / get (设置 / 获取) mset / mget(批量 > 设置 / 获取) setnx / setex / psetex (设置时指定不同方式) incr / incrby / decr / decrby/ incrbyfloat…

GAMES101作业2

文章目录 作业内容Step 1. 创建三角形的2维bounding boxStep 2. 判断bBox中的像素中心点是否在三角形内Step 3. 比较插值深度和Depth BufferMSAA 作业内容 在屏幕上画出一个实心三角形, 换言之,栅格化一个三角形。上一次作业中,在视口变化之…

P1403 [AHOI2005] 约数研究

题目描述 科学家们在 Samuel 星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机 Samuel II 的长时间运算成为了可能。由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用 Samuel II 进行数学研究。 小联最近在研究和约数有关的问题&…

Vue+axios 使用CancelToken多次发送请求取消前面所有正在pendding的请求

需求: 项目中 折线图数据是循环调用的,此时勾选一个设备, 会出现多条线。 原因 折线图数据一进来接口循环在调用,勾选设备时,循环调用的接口有的处于pedding状态 ,有的还在加载中,这就导致勾…

安泰电子:ATA-ML100水声功率放大器模块技术参数

随着人类对海洋的深度探索和利用的不断加深,水下通信技术日益成为研究的热点。水下通信技术是指在海洋、湖泊等水体中实现信息传递和交流的技术手段。它不仅在海洋资源勘探、海洋环境监测等领域具有广泛应用,还在水下考古、水下工程等领域发挥着重要作用…

018 - STM32学习笔记 - SPI读写FLASH(三)- 写入字符串、小数与整数

018 - STM32学习笔记 - SPI访问Flash(三)- 写入字符串、小数与整数 上节对Flash的跨页写入数据进行了完善,但是数据写入都是以Byte数组的方式进行写入,这节分别进行字符串的写入和小数整数的写入,本节内容对SPI的函数…

linux之Ubuntu系列(四)用户管理 用户和权限 chmod 超级用户root, R、W、X、T、S 软链接和硬链接

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。 w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移…

Burp Suite---渗透测试工具

文章目录 Burp SuiteBurp Suite入门设置代理HTTP的代理 Proxy(代理) Burp Suite 是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击。 Burp Suite由Java语言编写,基于…

十大网络安全上市公司分析,让我们重点聊聊F5

网络安全上市厂商业务广泛分布于网络安全硬件、软件,网络安全服务等板块,总体来看,十大网络安全上市公司的竞争可谓是如火如荼。今天让我们把目光集中在F5,这个能为我们所有人创造更安全的数字世界的企业,在应用及API交…

PuTTY下载(免安装exe)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

手写数字识别Minst(CNN)

文章目录 手写数字识别网络结构加载数据集数据集可视化CNN网络结构训练模型保存模型和加载模型测试模型 手写数字识别 网络结构 网上给出的基本网络结构: 然而在本数据集中,输入图不是1*32*32,是1*28*28。所以正确的网络结构应该是 level…

实现关注公众号以后自动推送小程序

准备好小程序的APPID和跳转路径 然后一行代码搞定&#xff1a; <a data-miniprogram-appid"小程序APPID" data-miniprogram-path"跳转路径">点我跳转到小程序</a>

Shuffle简单理解

map的结果本身是无序的&#xff0c;但是map输出的结果有序 mapper和reduce是不同的机器&#xff0c;进行了网络传输&#xff0c;所以存在数据拷贝 第二次排序&#xff0c;是将每个reduce对应的task进行排序&#xff0c;然后再进入reduce maptask运行结束&#xff0c;每个mask块…

被字节拷打了~基础还是太重要了...

今天分享一篇一位同学去字节面试的实习面经&#xff0c;技术栈是java&#xff0c;投了go后端岗位&#xff0c;主要拷打了 redismysql网络系统java算法&#xff0c;面试问题主要集中在 mysql、redis、网络这三部门&#xff0c;因为面试官是搞 go 的&#xff0c;java 只是随便问了…

55 # 实现可写流

先在 LinkedList.js 给链表添加一个移除方法 class Node {constructor(element, next) {this.element element;this.next next;} }class LinkedList {constructor() {this.head null; // 链表的头this.size 0; // 链表长度}// 可以直接在尾部添加内容&#xff0c;或者根据…

数据库小白看这里,这个Oracle数据库知识图谱你值得拥有

2022年前后&#xff0c;墨天轮社区曾陆续推出PostgreSQL知识图谱、MySQL知识图谱&#xff0c;并得到了大家的广泛好评。此后&#xff0c;便有众多朋友对Oracle知识图谱发起不断“催更“。经过近期的内容搜集整合、专家复审与打磨&#xff0c;墨天轮社区正式推出Oracle知识图谱&…

MySQL五种约束类型(普通 /自增主键,外键等) + 进阶查询(聚合查询,内 /外连接查询,自连接查询,子查询,合并查询)

文章目录 前言一、五种约束NOT NULL 约束UNIQUE 约束DEFAULT 约束PRIMARY KEY 主键约束(重点)普通主键自增主键 FOREIGN KEY 外键约束(重点) 二、进阶查询聚合查询聚合函数GROUP BY子句HAVING 联合查询笛卡尔积内连接外连接自连接子查询单行子查询&#xff1a;返回一行记录的子…