模型简介
模型特点
模型能力
使用案例
🚀 Llama 3.2 大语言模型
Llama 3.2 是一系列多语言大语言模型,具备强大的文本生成能力。它经过预训练和指令微调,在多种语言和常见行业基准测试中表现出色,适用于商业和研究领域。
🚀 快速开始
安装依赖
确保你已安装最新版本的 transformers
库:
pip install --upgrade transformers
使用示例
以下是使用 transformers
库进行对话推理的示例代码:
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
pipe("The key to life is")
✨ 主要特性
- 多语言支持:官方支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语,且在更多语言上进行了训练。
- 高性能表现:在常见行业基准测试中,超越了许多开源和闭源聊天模型。
- 多种模型版本:提供 1B 和 3B 大小的模型,以及量化版本,适用于不同的计算资源和应用场景。
- 优化架构:采用优化的变压器架构,结合监督微调(SFT)和基于人类反馈的强化学习(RLHF),以符合人类对有用性和安全性的偏好。
📦 安装指南
使用 transformers
库
从 transformers >= 4.43.0
版本开始,你可以使用 transformers
管道抽象或 Auto
类的 generate()
函数进行对话推理。确保通过以下命令更新 transformers
库:
pip install --upgrade transformers
使用原始 llama
代码库
请遵循 仓库 中的说明。使用 huggingface-cli
下载原始检查点的示例命令如下:
huggingface-cli download meta-llama/Llama-3.2-1B --include "original/*" --local-dir Llama-3.2-1B
💻 使用示例
基础用法
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
pipe("The key to life is")
高级用法
你可以根据具体需求调整模型的参数,例如生成的最大长度、温度等:
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
max_length=200, # 生成的最大长度
temperature=0.7 # 温度参数,控制生成的随机性
)
pipe("The key to life is")
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型开发者 | Meta |
模型架构 | 自回归语言模型,使用优化的变压器架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)。 |
训练数据 | 公开可用的在线数据的新组合,截止到 2023 年 12 月。 |
参数 | 1B(1.23B)和 3B(3.21B) |
输入模态 | 多语言文本 |
输出模态 | 多语言文本和代码 |
上下文长度 | 128k(文本模型),8k(量化模型) |
GQA | 是 |
共享嵌入 | 是 |
令牌计数 | 最多 9T 令牌 |
知识截止日期 | 2023 年 12 月 |
预期用途
预期用例
- 商业和研究:适用于多种语言的商业和研究用途。
- 指令微调文本模型:用于类似助手的聊天和代理应用,如知识检索和总结、移动 AI 写作助手以及查询和提示重写。
- 预训练模型:可适应各种自然语言生成任务。
- 量化模型:适用于计算资源有限的设备上的各种用例。
超出范围
- 违法违规使用:以任何违反适用法律法规(包括贸易合规法律)的方式使用。
- 违反政策使用:以任何违反可接受使用政策和 Llama 3.2 社区许可证的方式使用。
- 不支持语言使用:在本模型卡中未明确提及为支持的语言中使用。
硬件和软件
训练因素
使用自定义训练库、Meta 的自定义 GPU 集群和生产基础设施进行预训练。微调、量化、注释和评估也在生产基础设施上进行。
训练能源使用
训练在 H100 - 80GB(TDP 为 700W)类型的硬件上累计使用了 916k GPU 小时的计算资源。
训练温室气体排放
估计基于位置的总温室气体排放量为 240 吨 CO2eq。自 2020 年以来,Meta 在全球运营中保持净零温室气体排放,并以可再生能源匹配 100% 的电力使用。
训练数据
Llama 3.2 在来自公开可用来源的最多 9 万亿令牌的数据上进行了预训练。在模型开发的预训练阶段,将 Llama 3.1 8B 和 70B 模型的 logits 纳入其中。在训练后,使用与 Llama 3.1 类似的方法,通过多轮对齐生成最终的聊天模型。
量化
量化方案
- 变压器块:所有变压器块中的线性层量化为 4 位分组方案(组大小为 32)的权重和 8 位每个令牌的动态量化激活。
- 分类层:量化为 8 位每通道的权重和 8 位每个令牌的动态量化激活。
- 嵌入层:使用 8 位每通道的量化。
量化感知训练和 LoRA
量化感知训练(QAT)与低秩适应(LoRA)模型仅经过训练后阶段,使用与全精度模型相同的数据。初始化 QAT 时,利用监督微调(SFT)后获得的 BF16 Llama 3.2 模型检查点,并进行额外一轮的 SFT 训练。然后冻结 QAT 模型的主干,并对变压器块内的所有层应用 LoRA 适配器进行另一轮 SFT。
SpinQuant
应用 SpinQuant 和生成式训练后量化(GPTQ)。对 SpinQuant 旋转矩阵进行 100 次迭代优化,使用 WikiText 2 数据集中序列长度为 2048 的 800 个样本。对于 GPTQ,使用相同数据集和序列长度的 128 个样本。
基准测试
英文文本基准测试
类别 | 基准测试 | 样本数 | 指标 | 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 bf16 | Llama 3.2 1B Vanilla PTQ** | Llama 3.2 1B Spin Quant | Llama 3.2 1B QLoRA | Llama 3.2 3B bf16 | Llama 3.2 3B Vanilla PTQ** | Llama 3.2 3B Spin Quant | Llama 3.2 3B QLoRA | Llama 3.1 8B | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 通用 | MMLU | 5 | macro_avg/acc | 49.3 | 43.3 | 47.3 | 49.0 | 63.4 | 60.5 | 62 | 62.4 | 69.4 | | 重写 | Open - rewrite eval | 0 | micro_avg/rougeL | 41.6 | 39.2 | 40.9 | 41.2 | 40.1 | 40.3 | 40.8 | 40.7 | 40.9 | | 总结 | TLDR9+ (test) | 1 | rougeL | 16.8 | 14.9 | 16.7 | 16.8 | 19.0 | 19.1 | 19.2 | 19.1 | 17.2 | | 指令遵循 | IFEval | 0 | Avg(Prompt/Instruction acc Loose/Strict) | 59.5 | 51.5 | 58.4 | 55.6 | 77.4 | 73.9 | 73.5 | 75.9 | 80.4 | | 数学 | GSM8K (CoT) | 8 | em_maj1@1 | 44.4 | 33.1 | 40.6 | 46.5 | 77.7 | 72.9 | 75.7 | 77.9 | 84.5 | | | MATH (CoT) | 0 | final_em | 30.6 | 20.5 | 25.3 | 31.0 | 48.0 | 44.2 | 45.3 | 49.2 | 51.9 | | 推理 | ARC - C | 0 | acc | 59.4 | 54.3 | 57 | 60.7 | 78.6 | 75.6 | 77.6 | 77.6 | 83.4 | | | GPQA | 0 | acc | 27.2 | 25.9 | 26.3 | 25.9 | 32.8 | 32.8 | 31.7 | 33.9 | 32.8 | | | Hellaswag | 0 | acc | 41.2 | 38.1 | 41.3 | 41.5 | 69.8 | 66.3 | 68 | 66.3 | 78.7 | | 工具使用 | BFCL V2 | 0 | acc | 25.7 | 14.3 | 15.9 | 23.7 | 67.0 | 53.4 | 60.1 | 63.5 | 67.1 | | | Nexus | 0 | macro_avg/acc | 13.5 | 5.2 | 9.6 | 12.5 | 34.3 | 32.4 | 31.5 | 30.1 | 38.5 | | 长上下文 | InfiniteBench/En.QA | 0 | longbook_qa/f1 | 20.3 | N/A | N/A | N/A | 19.8 | N/A | N/A | N/A | 27.3 | | | InfiniteBench/En.MC | 0 | longbook_choice/acc | 38.0 | N/A | N/A | N/A | 63.3 | N/A | N/A | N/A | 72.2 | | | NIH/Multi - needle | 0 | recall | 75.0 | N/A | N/A | N/A | 84.7 | N/A | N/A | N/A | 98.8 | | 多语言 | MGSM (CoT) | 0 | em | 24.5 | 13.7 | 18.2 | 24.4 | 58.2 | 48.9 | 54.3 | 56.8 | 68.9 |
注:带 ** 的模型仅用于比较,未发布。
多语言基准测试
类别 | 基准测试 | 语言 | Llama 3.2 1B | Llama 3.2 1B Vanilla PTQ** | Llama 3.2 1B Spin Quant | Llama 3.2 1B QLoRA | Llama 3.2 3B | Llama 3.2 3B Vanilla PTQ** | Llama 3.2 3B Spin Quant | Llama 3.2 3B QLoRA | Llama 3.1 8B |
---|---|---|---|---|---|---|---|---|---|---|---|
通用 | MMLU (5 - shot, macro_avg/acc) | 葡萄牙语 | 39.8 | 34.9 | 38.9 | 40.2 | 54.5 | 50.9 | 53.3 | 53.4 | 62.1 |
西班牙语 | 41.5 | 36.0 | 39.8 | 41.8 | 55.1 | 51.9 | 53.6 | 53.6 | 62.5 | ||
意大利语 | 39.8 | 34.9 | 38.1 | 40.6 | 53.8 | 49.9 | 52.1 | 51.7 | 61.6 | ||
德语 | 39.2 | 34.9 | 37.5 | 39.6 | 53.3 | 50.0 | 52.2 | 51.3 | 60.6 | ||
法语 | 40.5 | 34.8 | 39.2 | 40.8 | 54.6 | 51.2 | 53.3 | 53.3 | 62.3 | ||
印地语 | 33.5 | 30.0 | 32.1 | 34.0 | 43.3 | 40.4 | 42.0 | 42.1 | 50.9 | ||
泰语 | 34.7 | 31.2 | 32.4 | 34.9 | 44.5 | 41.3 | 44.0 | 42.2 | 50.3 |
注:带 ** 的模型仅用于比较,未发布。
推理时间
类别 | 解码(令牌/秒) | 首令牌时间(秒) | 预填充(令牌/秒) | 模型大小(PTE 文件大小,MB) | 内存大小(RSS,MB) |
---|---|---|---|---|---|
1B BF16(基线) | 19.2 | 1.0 | 60.3 | 2358 | 3185 |
1B SpinQuant | 50.2(2.6 倍) | 0.3(-76.9%) | 260.5(4.3 倍) | 1083(-54.1%) | 1921(-39.7%) |
1B QLoRA | 45.8(2.4 倍) | 0.3(-76.0%) | 252.0(4.2 倍) | 1127(-52.2%) | 2255(-29.2%) |
3B BF16(基线) | 7.6 | 3.0 | 21.2 | 6129 | 7419 |
3B SpinQuant | 19.7(2.6 倍) | 0.7(-76.4%) | 89.7(4.2 倍) | 2435(-60.3%) | 3726(-49.8%) |
3B QLoRA | 18.5(2.4 倍) | 0.7(-76.1%) | 88.8(4.2 倍) | 2529(-58.7%) | 4060(-45.3%) |
注:性能测量使用基于 adb 二进制的方法,在 Android OnePlus 12 设备上进行,首令牌时间(TTFT)测量时提示长度为 64。
🔧 技术细节
模型架构
Llama 3.2 是自回归语言模型,采用优化的变压器架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF),以符合人类对有用性和安全性的偏好。
量化技术
量化方案包括对变压器块、分类层和嵌入层的不同量化方式。量化感知训练(QAT)与低秩适应(LoRA)结合,以提高模型在有限计算资源下的性能。
基准测试方法
使用内部评估库对模型在标准自动基准测试上的性能进行评估,包括英文文本基准测试和多语言基准测试。
📄 许可证
使用 Llama 3.2 受 Llama 3.2 社区许可证(自定义商业许可协议)的约束。
LLAMA 3.2 社区许可协议
协议概述
本协议规定了 Llama 3.2 材料的使用、复制、分发和修改的条款和条件。通过点击“我接受”或使用或分发 Llama 材料的任何部分,即表示同意受本协议约束。
许可权利和再分发
- 权利授予:授予非排他性、全球性、不可转让和免版税的有限许可,用于使用、复制、分发、创建衍生作品和修改 Llama 材料。
- 再分发和使用:
- 分发 Llama 材料或包含其的产品或服务时,需提供本协议副本,并显著显示“Built with Llama”。
- 若使用 Llama 材料创建、训练、微调或改进 AI 模型,模型名称开头需包含“Llama”。
- 保留 Llama 材料副本中的归属声明。
- 使用 Llama 材料需遵守适用法律法规和可接受使用政策。
额外商业条款
若在 Llama 3.2 版本发布日期,被许可人或其关联方的产品或服务的月活跃用户数超过 7 亿,则需向 Meta 请求许可。
保修免责声明
除非适用法律要求,Llama 材料及其输出和结果按“原样”提供,Meta 不提供任何形式的保证。
责任限制
Meta 及其关联方在任何情况下均不对因本协议引起的任何间接、特殊、后果性、偶发性、示范性或惩罚性损害承担责任。
知识产权
- 商标许可:本协议未授予商标许可,仅在特定情况下允许使用“Llama”商标。
- 衍生作品所有权:用户对自己创建的 Llama 材料的衍生作品和修改拥有所有权。
- 侵权诉讼:若对 Meta 提起诉讼或索赔,本协议授予的许可将终止。
期限和终止
协议自接受或访问 Llama 材料起生效,直至按协议条款终止。Meta 可因违约终止协议,终止后用户需删除并停止使用 Llama 材料。
适用法律和管辖权
本协议受加利福尼亚州法律管辖,相关争议由加利福尼亚州法院专属管辖。
Llama 3.2 可接受使用政策
禁止使用情况
- 违法违规行为:包括参与、促进、煽动或协助非法活动、侵犯他人权利、收集敏感信息等。
- 危害人身安全活动:如军事、战争、核工业、武器开发等。
- 欺骗误导行为:包括生成欺诈、虚假信息、诽谤内容等。
- 未披露危险信息:未能向最终用户适当披露 AI 系统的已知危险。
- 与非法工具交互:与设计用于生成非法内容或从事非法有害行为的第三方工具、模型或软件交互。
报告方式
可通过以下方式报告违反政策、软件“漏洞”或其他可能导致违反政策的问题:
- 模型问题报告:https://github.com/meta-llama/llama-models/issues
- 模型生成的风险内容报告:developers.facebook.com/llama_output_feedback
- 漏洞和安全问题报告:facebook.com/whitehat/info
- 违反可接受使用政策或未经授权使用 Llama 3.2 报告:LlamaUseReport@meta.com
责任与安全
负责任的部署
- 部署方法:Llama 是一种基础技术,可用于多种用例。Meta 的 Llama 模型的负责任部署示例可在 社区故事网页 中找到。开发者应根据具体用例定制安全策略,并在 Llama 系统中部署必要的安全防护措施。
- Llama 3.2 指令微调:安全微调的主要目标是为研究社区提供研究安全微调鲁棒性的有价值资源,为开发者提供安全强大的模型。采用多方面的数据收集方法,结合人类生成数据和合成数据,以减轻潜在安全风险。
- Llama 3.2 系统:大型语言模型(包括 Llama 3.2)不应单独部署,而应作为整体 AI 系统的一部分,并根据需要添加额外的安全防护措施。Meta 为社区提供了 安全防护措施,开发者应在部署 Llama 模型或其他大语言模型时使用。
新功能和用例
- 技术进步:Llama 版本通常会引入新功能,需要在通用生成式 AI 用例的最佳实践基础上进行特定考虑。
- 受限环境:Llama 3.2 1B 和 3B 模型预计将部署在高度受限的环境中,如移动设备。使用较小模型的 LLM 系统在对齐配置文件和安全/有用性权衡方面与更复杂的大型系统不同。开发者应确保系统安全符合用例要求。
评估
- 规模化评估:构建专门的对抗性评估数据集,评估由 Llama 模型和 Purple Llama 安全防护措施组成的系统。建议为具体用例构建专门的评估数据集。
- 红队测试:进行定期的红队测试,目标是通过对抗性提示发现风险,并利用这些经验改进基准测试和安全调优数据集。红队成员包括网络安全、对抗性机器学习、负责任 AI 和内容完整性等领域的专家。
关键风险
- CBRNE 风险:对 Llama 3.1 70B 和 405B 模型进行了与化学和生物武器扩散相关的风险评估,该评估也适用于 Llama 3.2 的 1B 和 3B 模型。
- 儿童安全风险:使用专家团队进行儿童安全风险评估,通过微调减轻风险。在 Llama 3 模型开发过程中,利用专家红队测试扩展评估基准的覆盖范围。
- 网络攻击风险:对 Llama 3.1 405B 模型进行了网络攻击提升研究,评估其在黑客任务中的能力。由于 Llama 3.2 的 1B 和 3B 模型较小且能力较弱,认为对 405B 模型的测试也适用于 Llama 3.2 模型。
社区
- 行业合作:积极参与开放联盟,如 AI 联盟、AI 合作组织和 MLCommons,为安全标准化和透明度做出贡献。鼓励社区采用 MLCommons 概念验证评估等分类法,促进安全和内容评估的协作和透明度。
- 资助计划:设立 Llama 影响资助 计划,支持 Meta 的 Llama 模型在教育、气候和开放创新等领域的应用。
- 报告机制:建立 输出报告机制 和 漏洞赏金计划,借助社区力量不断改进 Llama 技术。
伦理考虑和局限性
价值观
Llama 3.2 的核心价值观是开放性、包容性和有用性。旨在为所有人服务,适用于广泛的用例,尊重所有用户的尊严和自主权。
测试局限性
Llama 3.2 作为新技术,其使用存在风险。目前的测试无法涵盖所有场景,模型可能会产生不准确、有偏见或其他令人反感的响应。在部署 Llama 3.2 模型的应用之前,开发者应进行针对具体应用的安全测试和调优。可参考 负责任使用指南、信任与安全 解决方案和其他 资源 了解负责任开发的更多信息。



