Introducing Meta Llama 3: The most capable openly available LLM to date

要点

  • 今天,我们推出 Meta Llama 3,这是我们最先进的开源大型语言模型的下一代。
  • Llama 3型号将很快在AWS,Databricks,Google Cloud,Hugging Face,Kaggle,IBM WatsonX,Microsoft Azure,NVIDIA NIM和Snowflake上提供,并得到AMD,AWS,戴尔,英特尔,英伟达和高通提供的硬件平台的支持。
  • 我们致力于以负责任的方式开发 Llama 3,并提供各种资源来帮助其他人负责任地使用它。这包括通过 Llama Guard 2、Code Shield 和 CyberSec Eval 2 引入新的信任和安全工具。
  • 在接下来的几个月里,我们预计将推出新的功能、更长的上下文窗口、额外的模型大小和增强的性能,我们将分享 Llama 3 的研究论文。
  • Meta AI 采用 Llama 3 技术构建,现已成为世界领先的 AI 助手之一,可以提高您的智力并减轻您的负担——帮助您学习、完成工作、创建内容和建立联系,以充分利用每一刻。您可以在此处试用 Meta AI。

今天,我们很高兴与大家分享下一代 Llama 的前两个型号 Meta Llama 3,可供广泛使用。此版本具有预训练和指令微调的语言模型,具有 8B 和 70B 参数,可支持广泛的用例。下一代 Llama 在广泛的行业基准测试中展示了最先进的性能,并提供了新功能,包括改进的推理。我们相信这些是同类产品中最好的开源模型。为了支持我们长期以来的开放方法,我们将 Llama 3 交到社区手中。我们希望在整个堆栈中启动下一波 AI 创新浪潮——从应用程序到开发人员工具,从评估到推理优化等等。我们迫不及待地想看看您构建的内容,并期待您的反馈。

我们对 Llama 3 的目标

在 Llama 3 中,我们着手构建与当今最好的专有模型相媲美的最佳开放模型。我们希望解决开发人员的反馈,以提高 Llama 3 的整体实用性,并在这样做的同时继续在负责任地使用和部署 LLMs.我们正在接受尽早发布的开源精神,并经常发布,以使社区能够在这些模型仍在开发中时访问它们。我们今天发布的基于文本的模型是 Llama 3 模型集合中的第一个。在不久的将来,我们的目标是使 Llama 3 成为多语言和多模态的,具有更长的上下文,并继续提高推理和编码等核心LLM功能的整体性能。

最先进的性能

我们新的 8B 和 70B 参数 Llama 3 模型是 Llama 2 的重大飞跃,并为LLM这些规模的模型建立了新的最先进的技术。由于预训练和训练后改进,我们的预训练和指令微调模型是当今 8B 和 70B 参数尺度上存在的最佳模型。我们培训后程序的改进大大降低了错误拒绝率,改善了一致性,并增加了模型响应的多样性。我们还看到了推理、代码生成和指令等功能的大幅改进,使 Llama 3 更具可操控性。

image.png

*有关计算这些评估的设置和参数,请参阅评估详细信息。

在 Llama 3 的开发中,我们研究了标准基准测试下的模型性能,并试图针对真实场景的性能进行优化。为此,我们开发了一套新的高质量人体评估集。该评估集包含 1,800 个提示,涵盖 12 个关键用例:寻求建议、头脑风暴、分类、封闭式问答、编码、创意写作、提取、栖息角色/角色、开放式问答、推理、重写和总结。为了防止我们的模型在这个评估集上意外过拟合,即使是我们自己的建模团队也无法访问它。下图显示了我们对这些类别的人工评估的汇总结果,并针对 Claude Sonnet、Mistral Medium 和 GPT-3.5 进行了提示。
image.png

人类注释者基于此评估集的偏好排名突出了我们的 70B 指令跟踪模型与实际场景中规模相当的竞争模型相比的强大性能。
image.png
我们的预训练模型还为LLM这些规模的模型建立了新的最先进的技术。

*有关计算这些评估的设置和参数,请参阅评估详细信息。

为了开发一个伟大的语言模型,我们认为创新、扩展和优化以简化是很重要的。我们在整个 Llama 3 项目中采用了这种设计理念,重点关注四个关键要素:模型架构、预训练数据、扩展预训练和指令微调。

模型架构

根据我们的设计理念,我们在 Llama 3 中选择了相对标准的纯解码器转换器架构。与 Llama 2 相比,我们进行了几项关键改进。Llama 3 使用具有 128K 标记词汇表的分词器,可以更有效地编码语言,从而大大提高模型性能。为了提高 Llama 3 模型的推理效率,我们在 8B 和 70B 大小中都采用了分组查询注意力 (GQA)。我们在 8,192 个令牌的序列上训练模型,使用掩码来确保自我注意力不会跨越文档边界。

训练数据

为了训练最佳语言模型,管理大型、高质量的训练数据集至关重要。根据我们的设计原则,我们在预训练数据方面投入了大量资金。Llama 3 在超过 15T 的代币上进行了预训练,这些代币都是从公开来源收集的。我们的训练数据集比 Llama 2 使用的数据集大 7 倍,包含的代码是 Llama 2 的 4 倍。为了应对即将到来的多语言用例,Llama 3 预训练数据集的 5% 以上由涵盖 30 多种语言的高质量非英语数据组成。但是,我们预计这些语言的性能水平与英语不同。

为了确保 Llama 3 接受最高质量的数据训练,我们开发了一系列数据过滤管道。这些管道包括使用启发式筛选器、NSFW 筛选器、语义重复数据删除方法和文本分类器来预测数据质量。我们发现前几代 Llama 在识别高质量数据方面出奇地好,因此我们使用 Llama 2 为 Llama 3 提供支持的文本质量分类器生成训练数据。

我们还进行了广泛的实验,以评估在最终的预训练数据集中混合来自不同来源的数据的最佳方法。这些实验使我们能够选择一种数据组合,确保 Llama 3 在包括琐事问题、STEM、编码、历史知识等在内的用例中表现良好。

扩大预训练规模

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

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

为了训练我们最大的 Llama 3 模型,我们结合了三种类型的并行化:数据并行化、模型并行化和管道并行化。我们最高效的实现是在 16K GPU 上同时训练时,每个 GPU 的计算利用率超过 400 TFLOPS。我们在两个定制的 24K GPU 集群上执行了训练运行。为了最大限度地延长 GPU 正常运行时间,我们开发了一种先进的新训练堆栈,可自动执行错误检测、处理和维护。我们还大大改进了硬件可靠性和静默数据损坏检测机制,并开发了新的可扩展存储系统,以减少检查点和回滚的开销。这些改进使总体有效培训时间超过 95%。总之,这些改进将 Llama 3 的训练效率提高了 ~3 倍,比 Llama 2 提高了 ~3 倍。

指令微调

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

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

使用Llma3 构建

我们的愿景是使开发人员能够自定义 Llama 3 以支持相关用例,并使其更容易采用最佳实践和改进开放生态系统。在此版本中,我们将提供新的信任和安全工具,包括 Llama Guard 2 和 Cybersec Eval 2 的更新组件,并引入了 Code Shield,这是一种用于过滤 生成的不安全代码的推理时间护栏LLMs。

我们还与 torchtune 共同开发了 Llama 3,torchtune 是新的 PyTorch 原生库,可轻松创作、微调和试验LLMs。torchtune 提供完全用 PyTorch 编写的内存高效且可破解的训练配方。该库与Hugging Face、Weights & Biases和EleutherAI等流行平台集成,甚至支持Executorch,以便在各种移动和边缘设备上运行高效推理。对于从提示工程到将 Llama 3 与 LangChain 一起使用的方方面面,我们都有一份全面的入门指南,带您从下载 Llama 3 一直到在生成式 AI 应用程序中大规模部署。

系统级的责任方法

我们设计的 Llama 3 模型具有最大的帮助,同时确保采用行业领先的方法来负责任地部署它们。为了实现这一目标,我们采用了一种新的系统级方法来负责任地开发和部署 Llama。我们将 Llama 模型设想为更广泛系统的一部分,让开发人员坐在驾驶座上。Llama 模型将作为系统的基础部分,开发人员在设计时会考虑到他们独特的最终目标。
image.png

指令微调在确保模型安全方面也起着重要作用。我们的指令微调模型已通过内部和外部努力进行了安全测试。我们的红队方法利用人类专家和自动化方法来生成对抗性提示,试图引发有问题的响应。例如,我们应用全面的测试来评估与化学、生物、网络安全和其他风险领域相关的滥用风险。所有这些努力都是迭代的,用于为正在发布的模型的安全微调提供信息。您可以在模型卡中阅读有关我们努力的更多信息。

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

随着生成式人工智能领域的发展速度,我们相信开放方法是将生态系统整合在一起并减轻这些潜在危害的重要方式。作为其中的一部分,我们正在更新我们的负责任使用指南 (RUG),该指南提供了负责任的LLMs开发综合指南。正如我们在 RUG 中概述的那样,我们建议根据适合应用程序的内容指南检查和过滤所有输入和输出。此外,许多云服务提供商提供内容审核 API 和其他工具,用于负责任的部署,我们鼓励开发人员也考虑使用这些选项。

大规模部署 Llama 3

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

我们的基准测试显示,代币化器提供了更高的代币效率,与 Llama 2 相比,代币产量减少了 15%。此外,Group Query Attention (GQA) 现在也已添加到 Llama 3 8B 中。因此,我们观察到,尽管该模型的参数比 Llama 2 7B 多了 1B,但分词器效率和 GQA 的提高有助于保持推理效率与 Llama 2 7B 相当。

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

Llama 3 的下一步是什么?

Llama 3、8B 和 70B 型号标志着我们计划为 Llama 3 发布的产品的开始。还有很多事情要做。

我们最大的模型参数超过 400B,虽然这些模型仍在训练中,但我们的团队对它们的趋势感到兴奋。在接下来的几个月里,我们将发布多个具有新功能的模型,包括多模态、使用多种语言交谈的能力、更长的上下文窗口和更强大的整体功能。一旦我们完成了Llama 3的训练,我们还将发表一篇详细的研究论文。

为了让您先睹为快,了解这些模型在继续训练时所处的位置,我们认为我们可以分享一些我们最大的LLM模型趋势的快照。请注意,此数据基于仍在训练的 Llama 3 的早期检查点,今天发布的模型不支持这些功能。

*有关计算这些评估的设置和参数,请参阅评估详细信息。

我们致力于开放 AI 生态系统的持续增长和发展,以负责任地发布我们的模型。我们一直认为,开放会带来更好、更安全的产品、更快的创新和更健康的整体市场。这对 Meta 有好处,对社会也有好处。我们在 Llama 3 中采用社区优先的方法,从今天开始,这些模型可以在领先的云、托管和硬件平台上使用,未来还会有更多模型。

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

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

相关文章

代码随想录算法训练营第四十六天| LeetCode139.单词拆分

一、LeetCode139.单词拆分 题目链接/文章讲解/视频讲解:https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html 状态:已解决 1.思路 单词明显就是物品,字符串s明显就是背包,那么问题就变成了物品能不能把背…

Three 银河系

总体效果图 当然,这也只是银河系的一部分,要想知道全景视野下的银河系是什么样的,只有通过科学家依据观测结果所制作的绘图来实现,因为银河系实在是太大了,目前的技术水平还无法实现全景捕捉。绘制的这张三维立体图像…

记录:阿里云服务器网站搭建(4)

Docker安装Nginx 现阶段主要目的是做一些静态资源路径的转发代理,相当于一个web服务器,tomcat也可以设置凡访问静态资源。但考虑到后续还需要作为代理服务器对域名等进行代理转发,所以使用nginx。 准备好要挂载的nginx配置目录 mkdir -p /m…

React-RTK

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-RTK 目录 1、介绍 2、安装 3、编写RTK使用示例 4、官方提供项目包示例 创建 Redux …

ROS 2边学边练(33)-- 写一个静态广播(C++)

前言 通过这一篇我们将了解并学习到如何广播静态坐标变换到tf2(由tf2来转换这些坐标系)。 发布静态变换对于定义机器人底座与其传感器或非移动部件之间的关系非常有用。例如,在以激光扫描仪中心的坐标系中推理激光扫描测量数据是最简单的。 这…

基于人工智能的机动车号牌检测与推理系统v1.0

基于人工智能的机动车号牌检测与推理系统v1.0代码重构与实现。 目前整合3中现有算法,并完成阶段性改造,包括【传统方法检测车牌,SVM推理字符】、【YOLO方法检测车牌,SVM推理字符】、【YOLO方法检测车牌,CNN推理字符】&…

MapReduce案例-电影网站数据统计分析

本文适合大数据初学者学习MapReduce统计分析业务问题的步骤和基础的MapReduce编程方法,初步掌握Hadoop对计算任务的管理。 本文末尾有全部数据集和完整代码连接。 1.准备工作 安装Hadoop:Hadoop 3.3.2 离线安装-CSDN博客 按照好Hadoop之后要检查一下datanode运行情况…

Llama网络结构介绍

LLaMA现在已经是开源社区里炙手可热的模型了,但是原文中仅仅介绍了其和标准Transformer的差别,并没有一个全局的模型介绍。因此打算写篇文章,争取让读者不参考任何其他资料把LLaMA的模型搞懂。 结构 如图所示为LLaMA的示意图,由…

ESP32学习第一天-ESP32点亮LED,按键控制LED状态,LED流水灯

第一天使用到的函数: 函数第一个参数设置哪一个引脚,第二个参数设置引脚模式。 pinMode(led_pin,OUTPUT); //设置引脚模式 函数的第一个参数设置哪一个引脚,第二个参数设置是高电平还是低电平。 digitalWrite(led_pin,HIGH);//将引脚电平拉高 #incl…

电脑怎么拖动文件到想要的位置?电脑上拖拽没了的文件怎么找回

在日常的办公和学习中,电脑文件拖拽操作是每位用户都不可或缺的技能。然而,有时在拖动文件时,可能会因为误操作或其他原因,导致文件消失或移至未知位置。本文将详细解析如何在电脑上轻松拖动文件到指定位置,并为您提供…

大模型中的位置编码ALiBi,RoPE的总结和实现

目录 Alibi与旋转位置编码的比较 1. Alibi和旋转位置编码的外推性能比较 2. Alibi的处理方式 注意力线性偏置:ALiBi位置编码的实现 1. ALiBi的基本概念 2. ALiBi的实现方式 ALiBi位置编码的代码解读 1. 导入必要的库 2. 定义get_slopes函数 3. 定义get_al…

C++ Primer 总结索引 | 第十三章:拷贝控制

1、类可以定义构造函数,用来控制在创建此类型对象时做什么 类如何控制该类型对象拷贝、赋值、移动或销毁时做什么 类通过一些 特殊的成员函数 控制这些操作,包括:拷贝构造函数、移动构造函数、拷贝赋值运算符、移动赋值运算符 以及 析构函数 …

API请求报错 Required request body is missing问题解决

背景 在进行调用的时候,加载方法,提示以下错误 错误信息如下: {"code": 10001,"msg": "Required request body is missing: XXX","data": null,"extra": null }Required request body…

Qt使用miniblink第三方浏览器模块

文章目录 一、前言二、miniblink简介三、miniblink使用四、运行效果五、工程结构 一、前言 本文取自刘典武大师:Qt编写地图综合应用58-兼容多浏览器内核 用Qt做项目过程中,遇到需要用到浏览器控件的项目,可能都会绕不开一个问题,那…

机器人模型匹配控制(MPC)MATLAB实现

模型匹配控制(Model matching control)是指设计一个控制器使闭环系统的传递函数tf(s)与td(s)相一致! mpcDesigner 可以分为: 2时域精确模型匹配控制3频域精确模型匹配控制 机械臂控制中应用模型匹配控制(Model Matc…

手把手教你搭建鲜花团购小程序

随着互联网的快速发展,线上小程序商城已经成为了一种流行的电商模式。对于花店来说,开发线上小程序商城不仅可以扩大销售渠道,提高销售效率,还可以增加客户粘性,提升品牌形象。下面就以花店为例,教你怎么开…

【python】Python成语接龙游戏[1-3难度均有](源码+数据)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

平衡二叉树(AVLTree)

AVLTree 1、树的分类2、平衡二叉树2.1、构建一个平衡二叉树2.2、删除节点2.3、搜索方式2.3.1、广度优先搜索(BFS)2.3.2、深度优先搜索(DFS) 1、树的分类 树形结构是编程当中特别常见的一种数据结构。比如电脑中的文件管理系统就大…

模拟BACnet设备(八)

文章目录 前言模拟呼梯设备的功能前期准备——xml文件的编写创建工程,建立BACnet模拟设备如何将设备的对象列表打包发送呢?被订阅的属性值变化时,如何主动通知对方?读写属性值完整代码小结 前言 前面一到七篇,从理论&…

[Collection与数据结构] PriorityQueue与堆

1. 优先级队列 1.1 概念 前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列,该中场景下,使用队列显然…