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_searchwolfram_alphacode_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 在内的合作伙伴提供支持。

Sources