Llama 3.1 发布说明:多语言、长上下文和 405B 模型
Meta 已发布 Llama 3.1,这是 Llama 系列的新一代,推出了一个庞大的 405B 参数密集模型,同时还有 8B 和 70B 版本。此发布的重要之处在于将上下文窗口扩展至 128K 令牌,新增原生多语言支持,并更新许可协议,允许使用模型输出改进其他大型语言模型(LLM)。
模型变体与核心能力
Llama 3.1 包含八个开源权重模型,包括三个基础模型和五个微调变体。所有模型均支持 128K 令牌的上下文长度,并能够处理八种语言:英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
生成模型
- Llama 3.1 8B:针对在消费级 GPU 上的高效部署和开发进行优化。
- Llama 3.1 70B:面向大规模 AI 原生应用而设计。
- Llama 3.1 405B:一种非常大的密集模型,旨在用于合成数据生成、蒸馏,并充当“LLM 评审者”。
这些尺寸均提供基础(预训练)和指令微调两种版本。
安全与分类模型
- Llama Guard 3:在 Llama 3.1 8B 上微调的安全模型,用于根据风险分类法对 LLM 输入和响应进行分类。它支持 128K 上下文长度并具备多语言能力。
- Prompt Guard:基于 BERT 的 279M 参数分类器,旨在检测提示注入和越狱尝试。
技术规格与训练
Llama 3.1 模型在超过 15 万亿令牌上进行训练,使用自定义 GPU 集群,总计 3930 万 GPU 小时。训练细分如下:
- 8B:1.46M GPU 小时
- 70B:7.0M GPU 小时
- 405B:30.84M GPU 小时
Llama 3.1 指令模型通过使用公开可用的数据集以及超过 2500 万通过监督微调(SFT)和人类反馈强化学习(RLHF)生成的合成示例,对指令遵循进行了优化。
内存与硬件需求
运行 Llama 3.1 需要大量显存,具体取决于模型大小和精度。
推理内存(检查点加载)
| 模型大小 | FP16 | FP8 | INT4 |
|---|---|---|---|
| 8B | 16 GB | 8 GB | 4 GB |
| 70B | 140 GB | 70 GB | 35 GB |
| 405B | 810 GB | 405 GB | 203 GB |
KV 缓存内存(FP16)
随着上下文长度的增加,KV 缓存成为关键的内存因素。对于 128K 令牌,内存需求如下:
- 8B:15.62 GB
- 70B:39.06 GB
- 405B:123.05 GB
训练内存(估计)
| 模型大小 | 完整微调 | LoRA | Q-LoRA |
|---|---|---|---|
| 8B | 60 GB | 16 GB | 6 GB |
| 70B | 500 GB | 160 GB | 48 GB |
| 405B | 3.25 TB | 950 GB | 250 GB |
工具使用与提示
Llama 3.1 指令模型针对代理使用场景进行微调,并支持工具调用。
内置工具调用
通过在系统提示中包含 Environment: ipython,模型即可启用代码解释器模式。它可以使用 <|python_tag|> 和 <|eom_id|> 分隔符生成 Python 代码。内置工具包括 brave_search、wolfram_alpha 和 code_interpreter。
自定义工具调用
模型支持自定义 JSON 函数调用。当调用工具时,模型以 JSON 格式输出函数名称和参数。随后使用 <|python_tag|> 分隔符将工具的响应传回模型,以生成最终答案。
许可与合成数据
Llama 3.1 采用比前代更宽松的许可证。关键变化在于明确允许使用模型输出改进其他 LLM。这使得合成数据生成和蒸馏成为可能,使 405B 模型在作为小型、专用 LLM 的教师模型时尤为有价值。
生态系统集成
Llama 3.1 已通过 transformers >= 4.43.2 集成到 Hugging Face 生态系统中。
- Quantization:官方提供的 FP8 量化权重适用于 405B 模型,使其能够在 8xH100 GPU 上运行。Hugging Face 还提供了额外的 AWQ 和 GPTQ INT4 变体,以进一步降低内存占用。
- Deployment:通过 Hugging Face 推理 API(针对 PRO 用户)、推理端点以及包括 AWS、Google Cloud、Microsoft Azure 和 DELL 在内的合作伙伴提供支持。