模型简介
模型特点
模型能力
使用案例
🚀 Meta Llama 3.2 多语言大语言模型
Meta Llama 3.2 是一系列多语言大语言模型,包含 1B 和 3B 规模的预训练及指令调优生成模型。这些模型在多语言对话场景,如智能检索和摘要任务中表现出色,在行业基准测试中超越了许多开源和闭源聊天模型。
🚀 快速开始
使用 transformers
库
从 transformers >= 4.43.0
版本开始,你可以使用 transformers
库的 pipeline
抽象或 Auto
类结合 generate()
函数进行对话推理。
确保通过以下命令更新 transformers
库:
pip install --upgrade transformers
以下是一个使用示例:
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B-Instruct"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
outputs = pipe(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
更多关于如何在本地使用模型、使用 torch.compile()
、辅助生成、量化等详细方法,请参考 huggingface-llama-recipes。
使用 llama
库
请遵循 仓库 中的说明。
若要下载原始检查点,可使用以下 huggingface-cli
命令示例:
huggingface-cli download meta-llama/Llama-3.2-1B-Instruct --include "original/*" --local-dir Llama-3.2-1B-Instruct
✨ 主要特性
- 多语言支持:官方支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语,并且在更广泛的语言数据集上进行了训练。
- 优化架构:采用优化的变压器架构,调优版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF),以更好地符合人类对有用性和安全性的偏好。
- 高性能表现:在多个标准自动基准测试中表现出色,超越了许多现有模型。
📦 安装指南
使用 transformers
库
确保你已经安装了 transformers
库,并且版本不低于 4.43.0。可以使用以下命令进行安装或更新:
pip install --upgrade transformers
使用 llama
库
请参考 仓库 中的安装说明。
💻 使用示例
基础用法
以下是使用 transformers
库进行对话推理的基础示例:
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B-Instruct"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"},
]
outputs = pipe(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"])
高级用法
在实际应用中,你可以根据具体需求调整模型的参数,例如 max_new_tokens
、temperature
等,以获得不同的输出效果。以下是一个高级用法示例:
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B-Instruct"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a professional travel advisor."},
{"role": "user", "content": "I want to travel to Paris. Can you give me some suggestions?"},
]
outputs = pipe(
messages,
max_new_tokens=512,
temperature=0.7,
top_p=0.9,
)
print(outputs[0]["generated_text"])
📚 详细文档
模型信息
- 模型开发者:Meta
- 模型架构:Llama 3.2 是一种自回归语言模型,采用优化的变压器架构。调优版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)。
- 支持语言:官方支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。开发者可以在遵守许可证和使用政策的前提下,对模型进行微调以支持其他语言。
- 模型发布日期:2024 年 9 月 25 日
- 状态:这是一个基于离线数据集训练的静态模型,未来可能会发布改进版本。
- 许可证:使用 Llama 3.2 需遵循 Llama 3.2 社区许可证。
预期用途
- 预期用例:适用于多语言的商业和研究用途,如智能聊天、知识检索、摘要生成、移动 AI 写作助手等。
- 超出范围:禁止用于违反适用法律法规(包括贸易合规法律)、违反使用政策和许可证的情况,以及在未明确支持的语言上使用。
硬件和软件
- 训练因素:使用自定义训练库、Meta 定制的 GPU 集群和生产基础设施进行预训练,微调、标注和评估也在生产基础设施上进行。
- 训练能源使用:训练共使用了 916k GPU 小时的 H100 - 80GB(TDP 为 700W)类型硬件。
- 训练温室气体排放:估计基于位置的总温室气体排放量为 240 吨 CO2eq,基于市场的总温室气体排放量为 0 吨 CO2eq。
训练数据
Llama 3.2 在来自公开来源的多达 9 万亿个标记的数据上进行了预训练。在模型开发的预训练阶段,将 Llama 3.1 8B 和 70B 模型的输出(logits)作为标记级目标。预训练数据的截止时间为 2023 年 12 月。
基准测试
基础预训练模型
类别 | 基准测试 | 样本数 | 指标 | Llama 3.2 1B | Llama 3.2 3B | Llama 3.1 8B |
---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc_char | 32.2 | 58 | 66.7 |
AGIEval English | 3 - 5 | average/acc_char | 23.3 | 39.2 | 47.8 | |
ARC - Challenge | 25 | acc_char | 32.8 | 69.1 | 79.7 | |
阅读理解 | SQuAD | 1 | em | 49.2 | 67.7 | 77 |
QuAC (F1) | 1 | f1 | 37.9 | 42.9 | 44.9 | |
DROP (F1) | 3 | f1 | 28.0 | 45.2 | 59.5 | |
长上下文 | Needle in Haystack | 0 | em | 96.8 | 1 | 1 |
指令调优模型
能力 | 基准测试 | 样本数 | 指标 | Llama 3.2 1B | Llama 3.2 3B | Llama 3.1 8B |
---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc | 49.3 | 63.4 | 69.4 |
重写 | Open - rewrite eval | 0 | micro_avg/rougeL | 41.6 | 40.1 | 40.9 |
摘要 | TLDR9+ (test) | 1 | rougeL | 16.8 | 19.0 | 17.2 |
指令遵循 | IFEval | 0 | avg(prompt/instruction acc loose/strict) | 59.5 | 77.4 | 80.4 |
数学 | GSM8K (CoT) | 8 | em_maj1@1 | 44.4 | 77.7 | 84.5 |
MATH (CoT) | 0 | final_em | 30.6 | 47.3 | 51.9 | |
推理 | ARC - C | 0 | acc | 59.4 | 78.6 | 83.4 |
GPQA | 0 | acc | 27.2 | 32.8 | 32.8 | |
Hellaswag | 0 | acc | 41.2 | 69.8 | 78.7 | |
工具使用 | BFCL V2 | 0 | acc | 25.7 | 67.0 | 70.9 |
Nexus | 0 | macro_avg/acc | 13.5 | 34.3 | 38.5 | |
长上下文 | InfiniteBench/En.QA | 0 | longbook_qa/f1 | 20.3 | 19.8 | 27.3 |
InfiniteBench/En.MC | 0 | longbook_choice/acc | 38.0 | 63.3 | 72.2 | |
NIH/Multi - needle | 0 | recall | 75.0 | 84.7 | 98.8 | |
多语言 | MGSM (CoT) | 0 | em | 24.5 | 58.2 | 68.9 |
多语言基准测试
类别 | 基准测试 | 语言 | Llama 3.2 1B | Llama 3.2 3B | Llama 3.1 8B |
---|---|---|---|---|---|
通用 | MMLU (5 - shot, macro_avg/acc) | 葡萄牙语 | 39.82 | 54.48 | 62.12 |
西班牙语 | 41.5 | 55.1 | 62.5 | ||
意大利语 | 39.8 | 53.8 | 61.6 | ||
德语 | 39.2 | 53.3 | 60.6 | ||
法语 | 40.5 | 54.6 | 62.3 | ||
印地语 | 33.5 | 43.3 | 50.9 | ||
泰语 | 34.7 | 44.5 | 50.3 |
责任与安全
负责任的部署
- 方法:Llama 是一种基础技术,旨在用于各种用例。Meta 的 Llama 模型的负责任部署示例可在 社区故事网页 中找到。
- Llama 3.2 指令调优:目标是为研究社区提供研究安全微调鲁棒性的有价值资源,为开发者提供安全强大的模型。采用多方面的数据收集方法,结合人类生成数据和合成数据,开发了多个基于大语言模型的分类器来选择高质量的提示和响应。
- Llama 3.2 系统:大语言模型(包括 Llama 3.2)不应单独部署,而应作为整体 AI 系统的一部分,并配备必要的安全护栏。Meta 提供了 安全防护措施,开发者应在部署 Llama 模型或其他大语言模型时使用。
新功能和用例
Llama 3.2 1B 和 3B 模型预计将部署在高度受限的环境中,如移动设备。开发者应确保系统的安全性符合用例要求,建议使用轻量级的系统安全防护措施。
评估
- 扩展评估:构建了专门的对抗性评估数据集,评估由 Llama 模型和 Purple Llama 安全防护措施组成的系统。建议为具体用例构建专门的评估数据集。
- 红队测试:定期进行红队测试,目标是通过对抗性提示发现风险,并利用这些经验改进基准测试和安全调优数据集。
关键风险
- CBRNE(化学、生物、放射、核和爆炸武器):对 Llama 3.1 70B 和 405B 进行了提升测试,以评估与化学和生物武器扩散相关的风险,该测试也适用于较小的 1B 和 3B 模型。
- 儿童安全:使用专家团队进行儿童安全风险评估,通过 Llama 3 模型开发扩展了评估基准的覆盖范围。
- 网络攻击:对 Llama 3.1 405B 进行了网络攻击提升研究和攻击自动化研究,认为这些测试也适用于 Llama 3.2 模型。
社区
- 行业合作:积极参与开放联盟,如 AI 联盟、AI 合作组织和 MLCommons,为安全标准化和透明度做出贡献。鼓励社区采用 MLCommons 概念验证评估等分类法。
- 资助计划:设立了 Llama 影响资助计划,支持对社会有益的应用。
- 反馈机制:建立了 输出报告机制 和 漏洞赏金计划,以持续改进 Llama 技术。
伦理考虑和限制
- 价值观:Llama 3.2 的核心价值观是开放性、包容性和有用性,旨在为广泛的用户和用例服务。
- 测试:作为新技术,Llama 3.2 的使用存在风险,测试无法覆盖所有场景。在部署应用之前,开发者应进行针对特定应用的安全测试和调优。
🔧 技术细节
模型架构
Llama 3.2 采用优化的变压器架构,是一种自回归语言模型。调优版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)来对齐人类偏好。
训练过程
在预训练阶段,使用来自公开来源的多达 9 万亿个标记的数据。将 Llama 3.1 8B 和 70B 模型的输出(logits)作为标记级目标,在剪枝后使用知识蒸馏恢复性能。在训练后,使用与 Llama 3.1 类似的方法,通过多轮对齐生成最终的聊天模型,每轮包括监督微调(SFT)、拒绝采样(RS)和直接偏好优化(DPO)。
📄 许可证
使用 Llama 3.2 需遵循 Llama 3.2 社区许可证(自定义商业许可协议)。具体许可条款如下:
LLAMA 3.2 社区许可协议
Llama 3.2 版本发布日期:2024 年 9 月 25 日
“协议”指本协议中规定的使用、复制、分发和修改 Llama 材料的条款和条件。
“文档”指 Meta 在 https://llama.meta.com/doc/overview 上分发的随 Llama 3.2 附带的规范、手册和文档。
“被许可方”或“您”指您,或您的雇主,或任何其他个人或实体(如果您代表该个人或实体签订本协议),且该个人或实体达到适用法律、规则或法规要求的提供合法同意的年龄,并具有约束您的雇主或该其他个人或实体的法律权力(如果您代表他们签订本协议)。
“Llama 3.2”指 Meta 在 https://www.llama.com/llama-downloads 上分发的基础大语言模型、软件和算法,包括机器学习模型代码、训练好的模型权重、推理启用代码、训练启用代码、微调启用代码以及上述内容的其他元素。
“Llama 材料”指根据本协议提供的 Meta 专有的 Llama 3.2 和文档(及其任何部分)的统称。
“Meta”或“我们”指 Meta Platforms Ireland Limited(如果您位于欧洲经济区或瑞士,或者如果您是一家实体,您的主要营业地位于欧洲经济区或瑞士)和 Meta Platforms, Inc.(如果您位于欧洲经济区或瑞士以外)。
通过点击下面的“我接受”,或使用或分发 Llama 材料的任何部分或元素,您同意受本协议约束。
-
许可权利和再分发
- 权利授予:您被授予在 Meta 体现在 Llama 材料中的知识产权或其他权利下的非排他性、全球性、不可转让且免版税的有限许可,以使用、复制、分发、拷贝、创作衍生作品并对 Llama 材料进行修改。
- 再分发和使用
- 如果您分发或提供 Llama 材料(或其任何衍生作品),或包含其中任何内容的产品或服务(包括其他 AI 模型),您应(A)随任何此类 Llama 材料提供本协议的副本;(B)在相关网站、用户界面、博客文章、关于页面或产品文档上显著显示“Built with Llama”。如果您使用 Llama 材料或其任何输出或结果来创建、训练、微调或以其他方式改进一个 AI 模型,并进行分发或提供,您还应在任何此类 AI 模型名称的开头包含“Llama”。
- 如果您作为集成最终用户产品的一部分从被许可方处接收 Llama 材料或其任何衍生作品,则本协议第 2 条不适用于您。
- 您必须在您分发的所有 Llama 材料副本中保留以下归属声明,该声明应包含在作为此类副本一部分分发的“Notice”文本文件中:“Llama 3.2 is licensed under the Llama 3.2 Community License, Copyright © Meta Platforms, Inc. All Rights Reserved.”
- 您对 Llama 材料的使用必须遵守适用的法律法规(包括贸易合规法律法规),并遵守 Llama 材料的可接受使用政策(可在 https://www.llama.com/llama3_2/use-policy 上找到),该政策特此通过引用并入本协议。
-
额外商业条款:如果在 Llama 3.2 版本发布日期,被许可方或其关联方提供的产品或服务的月活跃用户在前一个日历月超过 7 亿,则您必须向 Meta 请求许可,Meta 可自行决定是否授予您许可,并且在 Meta 明确授予您此类权利之前,您无权行使本协议下的任何权利。
-
保修免责声明:除非适用法律要求,否则 Llama 材料及其任何输出和结果按“现状”提供,不提供任何形式的保证,Meta 明确排除所有形式的保证,包括但不限于所有权、不侵权、适销性或特定用途适用性的保证。您独自负责确定使用或再分发 Llama 材料的适当性,并承担与您使用 Llama 材料及其任何输出和结果相关的任何风险。
-
责任限制:在任何情况下,Meta 或其关联方均不对因本协议引起的任何利润损失或任何间接、特殊、后果性、偶发性、示范性或惩罚性损害承担责任,无论责任理论如何,即使 Meta 或其关联方已被告知此类损害的可能性。
-
知识产权
- 本协议未授予商标许可,与 Llama 材料相关的情况下,除非在描述和再分发 Llama 材料的合理和惯常使用中需要,或如本节 5(a) 所述,否则 Meta 和被许可方均不得使用对方或其任何关联方拥有或关联的任何名称或标记。Meta 特此授予您仅在遵守第 1.b.i 条最后一句的要求时使用“Llama”(“标记”)的许可。您将遵守 Meta 的品牌指南(目前可在 https://about.meta.com/brand/resources/meta/company-brand/ 上找到)。因您使用标记而产生的所有商誉将归属于 Meta。
- 鉴于 Meta 对 Llama 材料及其衍生作品的所有权,就您对 Llama 材料进行的任何衍生作品和修改而言,您是且将是此类衍生作品和修改的所有者。
- 如果您对 Meta 或任何实体提起诉讼或其他法律程序(包括在诉讼中的反诉或反请求),声称 Llama 材料或 Llama 3.2 的输出或结果,或上述任何内容的任何部分,构成侵犯您拥有或可许可的知识产权或其他权利,则本协议授予您的任何许可应自此类诉讼或索赔提起之日起终止。您将赔偿并使 Meta 免受因您使用或分发 Llama 材料而产生的任何第三方索赔的损害。
-
期限和终止:本协议的期限自您接受本协议或访问 Llama 材料之日起开始,并将持续有效,直至根据本协议的条款和条件终止。如果您违反本协议的任何条款或条件,Meta 可终止本协议。本协议终止后,您应删除并停止使用 Llama 材料。第 3、4 和 7 条在本协议终止后仍然有效。
-
适用法律和管辖权:本协议受加利福尼亚州法律管辖并依其解释,不考虑法律选择原则,《联合国国际货物销售合同公约》不适用于本协议。加利福尼亚州的法院对因本协议引起的任何争议具有专属管辖权。
Llama 3.2 可接受使用政策
Meta 致力于促进其工具和功能(包括 Llama 3.2)的安全和公平使用。如果您访问或使用 Llama 3.2,您同意本可接受使用政策(“政策”)。本政策的最新版本可在 https://www.llama.com/llama3_2/use-policy 上找到。
禁止使用情况
- 违反法律或他人权利
- 从事、促进、生成、促成、鼓励、策划、煽动或进一步推动非法或违法活动或内容,例如暴力或恐怖主义、对儿童的剥削或伤害、人口贩运、性暴力、向未成年人非法分发信息或材料、性引诱、任何其他犯罪活动等。
- 从事、促进、煽动或便利对个人或群体的骚扰、虐待、威胁或欺凌。
- 从事、促进、煽动或便利在就业、就业福利、信贷、住房、其他经济福利或其他基本商品和服务方面的歧视或其他非法或有害行为。
- 从事未经授权或无执照的任何专业实践,包括但不限于金融、法律、医疗/健康或相关专业实践。
- 收集、处理、披露、生成或推断个人的私人或敏感信息,除非您已根据适用法律获得这样做的权利。
- 从事或便利任何侵犯、盗用或以其他方式侵犯任何第三方权利的行为或生成任何内容,包括使用 Llama 材料的任何产品或服务的输出或结果。
- 创建、生成或便利创建恶意代码、恶意软件、计算机病毒或做任何可能禁用、使负担过重、干扰或损害网站或计算机系统的正常运行、完整性、操作或外观的事情。
- 从事或便利任何故意规避或移除使用限制或其他安全措施的行为,或启用 Meta 禁用的功能。
- 从事、促进、煽动、便利或协助策划或开展对个人造成死亡或身体伤害风险的活动,包括与军事、战争、核工业或应用、间谍活动、受美国国务院维护的《国际武器贸易条例》(ITAR)或 1989 年《美国生物武器反恐法》或 1997 年《化学武器公约执行法》约束的材料或活动相关的 Llama 3.2 使用。
- 故意欺骗或误导他人,包括生成、促进或进一步推动欺诈或虚假信息的创建或推广、生成、促进或进一步推动诽谤性内容、生成、促进或进一步分发垃圾邮件、未经同意、授权或合法权利冒充他人、表示 Llama 3.2 的使用或输出是人类生成的、生成或便利虚假的在线互动。
- 未能向最终用户适当披露您的 AI 系统的任何已知危险。
- 与旨在生成非法内容或从事非法或有害行为的第三方工具、模型或软件进行交互,并/或表示此类工具、模型或软件的输出与 Meta 或 Llama 3.2 相关联。
对于 Llama 3.2 中包含的任何多模态模型,如果您是居住在欧盟的个人或主要营业地在欧盟的公司,则本 Llama 3.2 社区许可协议第 1(a) 条授予的权利不适用于您。此限制不适用于包含任何此类多模态模型的产品或服务的最终用户。
请通过以下方式报告任何违反本政策、软件“漏洞”或其他可能导致违反本政策的问题:
- 报告模型问题:https://github.com/meta-llama/llama-models/issues
- 报告模型生成的风险内容:developers.facebook.com/llama_output_feedback
- 报告漏洞和安全问题:facebook.com/whitehat/info
- 报告违反可接受使用政策或未经授权使用 Llama 3.2 的情况:LlamaUseReport@meta.com



