本文件提供关于Llama 3.2模型的详细信息,重点介绍其架构、功能、量化方法和技术规格。有关Llama家族中其他模型的信息,请参阅Llama模型版本及其相关页面,包括Llama 3、Llama 3.1和Llama 3.3。
Llama 3.2是Meta于2024年10月24日发布的一系列轻量级多语言大型语言模型(LLM)。它包括1B(12.3亿参数)和3B(32.1亿参数)大小的模型,专门设计用于在移动设备等资源受限环境中部署,同时在同等大小的模型中保持有竞争力的性能。
模型提供不同变体:
所有Llama 3.2模型都支持128K令牌上下文窗口,并针对多语言对话用例进行了优化,包括检索和摘要任务。
来源: [models/llama3_2/MODEL_CARD.md:1-16]
Llama 3.2采用与其他Llama模型类似的优化Transformer架构,具有多项关键特性,使其能够在参数量较少的情况下仍能保持高性能:
这些模型在来自公共来源的最多9万亿个token上进行了训练,知识截止日期为2023年12月。
来源: [models/llama3_2/MODEL_CARD.md:6-12], [models/llama3_2/MODEL_CARD.md:56-59]
Llama 3.2利用先进的量化技术,针对资源受限设备上的部署进行优化。模型实现了两种主要的量化策略:
SpinQuant是一种后训练量化技术,与生成式后训练量化(GPTQ)结合应用。该过程包括:
量化感知训练与低秩适应(QLoRA)遵循以下步骤:
该量化方案是为PyTorch的ExecuTorch推理框架和Arm CPU后端设计的。
来源: [models/llama3_2/MODEL_CARD.md:62-79]
下表比较了不同量化方法与BF16基线的性能指标,评估是在Android OnePlus 12设备上,使用ExecuTorch框架作为推理引擎和ARM CPU后端进行。
| 模型 | 解码(tokens/秒) | 首个token生成时间(秒) | 预填充(tokens/秒) | 模型大小(MB) | 内存大小(MB) |
|---|---|---|---|---|---|
| 1B BF16(基线) | 19.2 | 1.0 | 60.3 | 2358 | 3,185 |
| 1B SpinQuant | 50.2 (2.6x) | 0.3 (-76.9%) | 260.5 (4.3x) | 1083 (-54.1%) | 1,921 (-39.7%) |
| 1B QLoRA | 45.8 (2.4x) | 0.3 (-76.0%) | 252.0 (4.2x) | 1127 (-52.2%) | 2,255 (-29.2%) |
| 3B BF16(基线) | 7.6 | 3.0 | 21.2 | 6129 | 7,419 |
| 3B SpinQuant | 19.7 (2.6x) | 0.7 (-76.4%) | 89.7 (4.2x) | 2435 (-60.3%) | 3,726 (-49.8%) |
| 3B QLoRA | 18.5 (2.4x) | 0.7 (-76.1%) | 88.8 (4.2x) | 2529 (-58.7%) | 4,060 (-45.3%) |
关键性能指标说明
来源: [models/llama3_2/MODEL_CARD.md:132-156]
Llama 3.2模型在各种标准基准上进行了评估。以下是指令微调模型的一些关键结果:
| 功能 | 基准测试 | 1B bf16 | 1B SpinQuant | 1B QLoRA | 3B bf16 | 3B SpinQuant | 3B QLoRA | Llama 3.1 8B |
|---|---|---|---|---|---|---|---|---|
| 通用 | MMLU (5-shot) | 49.3 | 47.3 | 49.0 | 63.4 | 62.0 | 62.4 | 69.4 |
| 数学 | GSM8K (CoT) | 44.4 | 40.6 | 46.5 | 77.7 | 75.7 | 77.9 | 84.5 |
| 数学 | MATH (CoT) | 30.6 | 25.3 | 31.0 | 48.0 | 45.3 | 49.2 | 51.9 |
| 推理 | ARC-C | 59.4 | 57.0 | 60.7 | 78.6 | 77.6 | 77.6 | 83.4 |
| 工具使用 | BFCL V2 | 25.7 | 15.9 | 23.7 | 67.0 | 60.1 | 63.5 | 67.1 |
| 长上下文 | NIH/Multi-needle | 75.0 | 不适用 | 不适用 | 84.7 | 不适用 | 不适用 | 98.8 |
基准测试结果表明,3B模型在所有任务中均显著优于1B变体,并且QLoRA量化模型通常优于SpinQuant模型,尤其是在推理和数学任务中。
来源: [models/llama3_2/MODEL_CARD.md:80-116]
Llama 3.2官方支持8种语言:英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。这些模型在比官方支持语言更广泛的语言集合上进行了训练。
多语言基准性能(MMLU 5-shot准确率)
| 语言 | 1B bf16 | 1B SpinQuant | 1B QLoRA | 3B bf16 | 3B SpinQuant | 3B QLoRA | Llama 3.1 8B |
|---|---|---|---|---|---|---|---|
| 葡萄牙语 | 39.8 | 38.9 | 40.2 | 54.5 | 53.3 | 53.4 | 62.1 |
| 西班牙语 | 41.5 | 39.8 | 41.8 | 55.1 | 53.6 | 53.6 | 62.5 |
| 意大利语 | 39.8 | 38.1 | 40.6 | 53.8 | 52.1 | 51.7 | 61.6 |
| 德语 | 39.2 | 37.5 | 39.6 | 53.3 | 52.2 | 51.3 | 60.6 |
| 法语 | 40.5 | 39.2 | 40.8 | 54.6 | 53.3 | 53.3 | 62.3 |
| 印地语 | 33.5 | 32.1 | 34.0 | 43.3 | 42.0 | 42.1 | 50.9 |
| 泰语 | 34.7 | 32.4 | 34.9 | 44.5 | 44.0 | 42.2 | 50.3 |
多语言性能遵循与英语基准类似的模式,3B模型优于1B模型,QLoRA变体通常显示出比SpinQuant版本更好的结果。
来源: [models/llama3_2/MODEL_CARD.md:16-18], [models/llama3_2/MODEL_CARD.md:118-130]
Llama 3.2推理管道旨在在资源受限设备上高效运行,尤其在使用量化模型时。
推理管道利用ExecuTorch框架作为推理引擎和ARM CPU优化,以实现比全精度模型显著更好的性能。主要性能改进包括:
来源: [models/llama3_2/MODEL_CARD.md:132-156]
Llama 3.2模型通过多阶段过程开发:
训练过程利用了自定义训练库和Meta的GPU集群。训练资源总量如下:
来源: [models/llama3_2/MODEL_CARD.md:34-54], [models/llama3_2/MODEL_CARD.md:56-60]
Llama 3.2模型旨在用于多种语言的商业和研究应用:
量化模型专门为部署在计算资源受限的移动和边缘设备上进行了优化。
与所有语言模型一样,Llama 3.2也存在用户应注意的局限性:
来源: [models/llama3_2/MODEL_CARD.md:28-32], [models/llama3_2/MODEL_CARD.md:212-216]
Llama 3.2模型不应单独部署,而应作为整体AI系统的一部分,并辅以额外的安全防护措施。开发者应:
此存储库提供了默认包含安全防护的参考实现,以帮助开发者构建更安全的系统。
来源: [models/llama3_2/MODEL_CARD.md:157-186]