模型简介
模型特点
模型能力
使用案例
🚀 Meta Llama 3.1 多语言大语言模型
Meta Llama 3.1 是一系列多语言大语言模型,涵盖 8B、70B 和 405B 三种参数规模。这些模型经过预训练和指令微调,在多语言对话场景中表现出色,在行业基准测试中超越了许多开源和闭源的聊天模型。
🚀 快速开始
若你想了解如何使用 Llama 3.1 模型,可参考模型 README 获取反馈或评论说明。如需更多关于生成参数和在应用中使用 Llama 3.1 的技术信息,请访问 此处。
✨ 主要特性
- 多语言支持:支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
- 高性能表现:在常见行业基准测试中,超越了许多开源和闭源的聊天模型。
- 工具使用支持:支持多种工具使用格式,可通过 Transformers 中的聊天模板实现。
📦 安装指南
文档未提供具体安装步骤,故跳过此章节。
💻 使用示例
基础用法
# First, define a tool
def get_current_temperature(location: str) -> float:
"""
Get the current temperature at a location.
Args:
location: The location to get the temperature for, in the format "City, Country"
Returns:
The current temperature at the specified location in the specified units, as a float.
"""
return 22. # A real function should probably actually get the temperature!
# Next, create a chat and apply the chat template
messages = [
{"role": "system", "content": "You are a bot that responds to weather queries."},
{"role": "user", "content": "Hey, what's the temperature in Paris right now?"}
]
inputs = tokenizer.apply_chat_template(messages, tools=[get_current_temperature], add_generation_prompt=True)
高级用法
tool_call = {"name": "get_current_temperature", "arguments": {"location": "Paris, France"}}
messages.append({"role": "assistant", "tool_calls": [{"type": "function", "function": tool_call}]})
messages.append({"role": "tool", "name": "get_current_temperature", "content": "22.0"})
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型开发者 | Meta |
模型架构 | Llama 3.1 是一种自回归语言模型,采用优化的 Transformer 架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF),以符合人类对有用性和安全性的偏好。 |
训练数据 | 预训练数据来自公开可用的来源,约 15 万亿个标记。微调数据包括公开可用的指令数据集,以及超过 2500 万个合成生成的示例。 |
参数规模 | 8B、70B 和 405B |
输入模态 | 多语言文本 |
输出模态 | 多语言文本和代码 |
上下文长度 | 128k |
GQA | 是 |
标记计数 | 15T+ |
知识截止日期 | 2023 年 12 月 |
支持语言 | 英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语 |
模型发布日期 | 2024 年 7 月 23 日 |
状态 | 这是一个基于离线数据集训练的静态模型。随着我们通过社区反馈改进模型安全性,未来将发布微调模型的新版本。 |
许可证 | 自定义商业许可证,Llama 3.1 社区许可证,可在 此处 获取。 |
预期用途
- 预期用例:Llama 3.1 旨在用于多语言的商业和研究用途。经过指令微调的纯文本模型适用于类似助手的聊天场景,而预训练模型可用于各种自然语言生成任务。Llama 3.1 模型系列还支持利用其模型输出改进其他模型,包括合成数据生成和蒸馏。Llama 3.1 社区许可证允许这些用例。
- 超出范围的使用:以任何违反适用法律法规(包括贸易合规法律)的方式使用。以可接受使用政策和 Llama 3.1 社区许可证禁止的任何其他方式使用。在本模型卡片中未明确提及支持的语言之外使用。
硬件和软件
- 训练因素:我们使用自定义训练库、Meta 定制的 GPU 集群和生产基础设施进行预训练。微调、注释和评估也在生产基础设施上进行。
- 训练计算量:在 H100 - 80GB(TDP 为 700W)类型的硬件上,累计使用了 3930 万 GPU 小时的计算资源。
- 训练温室气体排放:基于位置的估计总温室气体排放量为 11390 吨 CO2eq。自 2020 年以来,Meta 在全球运营中保持净零温室气体排放,并以可再生能源匹配 100% 的电力使用,因此基于市场的总温室气体排放量为 0 吨 CO2eq。
训练数据
- 概述:Llama 3.1 在来自公开可用来源的约 15 万亿个标记的数据上进行预训练。微调数据包括公开可用的指令数据集,以及超过 2500 万个合成生成的示例。
- 数据新鲜度:预训练数据截止到 2023 年 12 月。
基准测试分数
基础预训练模型
类别 | 基准测试 | 样本数 | 指标 | Llama 3 8B | Llama 3.1 8B | Llama 3 70B | Llama 3.1 70B | Llama 3.1 405B |
---|---|---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc_char | 66.7 | 66.7 | 79.5 | 79.3 | 85.2 |
通用 | MMLU - Pro (CoT) | 5 | macro_avg/acc_char | 36.2 | 37.1 | 55.0 | 53.8 | 61.6 |
通用 | AGIEval English | 3 - 5 | average/acc_char | 47.1 | 47.8 | 63.0 | 64.6 | 71.6 |
通用 | CommonSenseQA | 7 | acc_char | 72.6 | 75.0 | 83.8 | 84.1 | 85.8 |
通用 | Winogrande | 5 | acc_char | - | 60.5 | - | 83.3 | 86.7 |
通用 | BIG - Bench Hard (CoT) | 3 | average/em | 61.1 | 64.2 | 81.3 | 81.6 | 85.9 |
通用 | ARC - Challenge | 25 | acc_char | 79.4 | 79.7 | 93.1 | 92.9 | 96.1 |
知识推理 | TriviaQA - Wiki | 5 | em | 78.5 | 77.6 | 89.7 | 89.8 | 91.8 |
阅读理解 | SQuAD | 1 | em | 76.4 | 77.0 | 85.6 | 81.8 | 89.3 |
阅读理解 | QuAC (F1) | 1 | f1 | 44.4 | 44.9 | 51.1 | 51.1 | 53.6 |
阅读理解 | BoolQ | 0 | acc_char | 75.7 | 75.0 | 79.0 | 79.4 | 80.0 |
阅读理解 | DROP (F1) | 3 | f1 | 58.4 | 59.5 | 79.7 | 79.6 | 84.8 |
指令微调模型
类别 | 基准测试 | 样本数 | 指标 | Llama 3 8B Instruct | Llama 3.1 8B Instruct | Llama 3 70B Instruct | Llama 3.1 70B Instruct | Llama 3.1 405B Instruct |
---|---|---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc | 68.5 | 69.4 | 82.0 | 83.6 | 87.3 |
通用 | MMLU (CoT) | 0 | macro_avg/acc | 65.3 | 73.0 | 80.9 | 86.0 | 88.6 |
通用 | MMLU - Pro (CoT) | 5 | micro_avg/acc_char | 45.5 | 48.3 | 63.4 | 66.4 | 73.3 |
通用 | IFEval | 76.8 | 80.4 | 82.9 | 87.5 | 88.6 | ||
推理 | ARC - C | 0 | acc | 82.4 | 83.4 | 94.4 | 94.8 | 96.9 |
推理 | GPQA | 0 | em | 34.6 | 30.4 | 39.5 | 46.7 | 50.7 |
代码 | HumanEval | 0 | pass@1 | 60.4 | 72.6 | 81.7 | 80.5 | 89.0 |
代码 | MBPP ++ base version | 0 | pass@1 | 70.6 | 72.8 | 82.5 | 86.0 | 88.6 |
代码 | Multipl - E HumanEval | 0 | pass@1 | - | 50.8 | - | 65.5 | 75.2 |
代码 | Multipl - E MBPP | 0 | pass@1 | - | 52.4 | - | 62.0 | 65.7 |
数学 | GSM - 8K (CoT) | 8 | em_maj1@1 | 80.6 | 84.5 | 93.0 | 95.1 | 96.8 |
数学 | MATH (CoT) | 0 | final_em | 29.1 | 51.9 | 51.0 | 68.0 | 73.8 |
工具使用 | API - Bank | 0 | acc | 48.3 | 82.6 | 85.1 | 90.0 | 92.0 |
工具使用 | BFCL | 0 | acc | 60.3 | 76.1 | 83.0 | 84.8 | 88.5 |
工具使用 | Gorilla Benchmark API Bench | 0 | acc | 1.7 | 8.2 | 14.7 | 29.7 | 35.3 |
工具使用 | Nexus (0 - shot) | 0 | macro_avg/acc | 18.1 | 38.5 | 47.8 | 56.7 | 58.7 |
多语言 | Multilingual MGSM (CoT) | 0 | em | - | 68.9 | - | 86.9 | 91.6 |
多语言基准测试
类别 | 基准测试 | 语言 | Llama 3.1 8B | Llama 3.1 70B | Llama 3.1 405B |
---|---|---|---|---|---|
通用 | MMLU (5 - shot, macro_avg/acc) | 葡萄牙语 | 62.12 | 80.13 | 84.95 |
通用 | MMLU (5 - shot, macro_avg/acc) | 西班牙语 | 62.45 | 80.05 | 85.08 |
通用 | MMLU (5 - shot, macro_avg/acc) | 意大利语 | 61.63 | 80.4 | 85.04 |
通用 | MMLU (5 - shot, macro_avg/acc) | 德语 | 60.59 | 79.27 | 84.36 |
通用 | MMLU (5 - shot, macro_avg/acc) | 法语 | 62.34 | 79.82 | 84.66 |
通用 | MMLU (5 - shot, macro_avg/acc) | 印地语 | 50.88 | 74.52 | 80.31 |
通用 | MMLU (5 - shot, macro_avg/acc) | 泰语 | 50.32 | 72.95 | 78.21 |
工具使用支持
LLaMA - 3.1 支持多种工具使用格式。你可以在 此处 查看完整的提示格式指南。工具使用也可通过 Transformers 中的 聊天模板 实现。
责任与安全
负责任的部署
Llama 是一种基础技术,旨在用于各种用例。有关 Meta 的 Llama 模型如何负责任地部署的示例,可在我们的 社区故事网页 中找到。我们的方法是构建最有用的模型,使世界能够从技术力量中受益,通过调整模型安全性以应对通用用例中的标准危害。开发者应根据自己的用例定制安全性,定义自己的政策,并在其 Llama 系统中部署必要的保障措施。Llama 3.1 是按照我们的《负责任使用指南》中概述的最佳实践开发的,你可以参考 《负责任使用指南》 了解更多信息。
Llama 3.1 指令微调
我们进行安全微调的主要目标是为研究社区提供一个有价值的资源,用于研究安全微调的鲁棒性,同时为开发者提供一个随时可用、安全且强大的模型,用于各种应用,以减少开发者部署安全 AI 系统的工作量。有关实施的安全缓解措施的更多详细信息,请阅读 Llama 3 论文。
Llama 3.1 系统
大型语言模型,包括 Llama 3.1,并非设计为单独部署,而是应作为整体 AI 系统的一部分,并根据需要添加额外的安全护栏。开发者在构建自主系统时应部署系统保障措施。保障措施对于实现正确的有用性 - 安全性对齐以及减轻系统固有的安全和风险以及模型或系统与外部工具集成时的风险至关重要。
新功能
本次发布引入了新功能,包括更长的上下文窗口、多语言输入和输出,以及开发者可能与第三方工具的集成。使用这些新功能除了需要遵循适用于所有生成式 AI 用例的最佳实践外,还需要进行特定的考虑。
评估
我们对 Llama 模型进行了常见用例和特定功能的评估。常见用例评估衡量了系统在最常见构建的应用程序(包括聊天机器人、编码助手、工具调用)中的安全风险。我们构建了专门的对抗性评估数据集,并评估了由 Llama 模型和 Llama Guard 3 组成的系统,以过滤输入提示和输出响应。在上下文中评估应用程序很重要,我们建议为你的用例构建专门的评估数据集。如果与应用程序相关,Prompt Guard 和 Code Shield 也可用。
关键和其他风险
我们特别关注减轻以下关键风险领域:
- CBRNE(化学、生物、放射性、核和爆炸物材料)有用性:为评估与化学和生物武器扩散相关的风险,我们进行了提升测试,旨在评估使用 Llama 3.1 模型是否会显著增强恶意行为者使用这些类型武器策划或实施攻击的能力。
- 儿童安全:使用专家团队进行了儿童安全风险评估,以评估模型产生可能导致儿童安全风险的输出的能力,并通过微调提供必要和适当的风险缓解建议。我们利用这些专家红队测试来扩展我们在 Llama 3 模型开发过程中评估基准的覆盖范围。
- 网络攻击支持:我们的网络攻击提升研究调查了大语言模型是否能在技能水平和速度方面增强人类在黑客任务中的能力。
社区
生成式 AI 安全需要专业知识和工具,我们相信开放社区的力量可以加速其发展。我们是开放联盟的积极成员,包括 AI 联盟、AI 合作组织和 MLCommons,积极为安全标准化和透明度做出贡献。我们鼓励社区采用像 MLCommons 概念验证评估这样的分类法,以促进安全和内容评估方面的合作和透明度。我们的 Purple Llama 工具已开源供社区使用,并广泛分发给包括云服务提供商在内的生态系统合作伙伴。我们鼓励社区为我们的 Github 仓库 做出贡献。
🔧 技术细节
文档未提供具体技术细节,故跳过此章节。
📄 许可证
自定义商业许可证,Llama 3.1 社区许可证,可在 此处 获取。
伦理考虑和局限性
Llama 3.1 的核心价值观是开放性、包容性和有用性。它旨在为所有人服务,并适用于广泛的用例。因此,它设计为可供不同背景、经验和观点的人使用。Llama 3.1 以用户的实际需求为出发点,不插入不必要的判断或规范性,同时认识到即使在某些情况下可能看似有问题的内容,在其他情况下也可能有价值。它尊重所有用户的尊严和自主权,特别是在推动创新和进步的自由思想和表达价值观方面。
然而,Llama 3.1 是一项新技术,与任何新技术一样,其使用存在风险。到目前为止进行的测试尚未涵盖,也不可能涵盖所有场景。出于这些原因,与所有大语言模型一样,Llama 3.1 的潜在输出无法提前预测,并且在某些情况下,模型可能会对用户提示产生不准确、有偏见或其他令人反感的响应。因此,在部署 Llama 3.1 模型的任何应用程序之前,开发者应针对其特定应用进行安全测试和微调。请参考可用资源,包括我们的 《负责任使用指南》、信任与安全 解决方案以及其他 资源,以了解更多关于负责任开发的信息。



