Meta Llama 3 发布说明

Meta 已发布 Llama 3,这是一代全新开放获取的大型语言模型(LLM),提供 8B 与 70B 参数规模。此次发布通过大幅增加训练数据量和重新设计分词器,显著提升了开源 AI 能力。

模型变体与规格

Llama 3 提供四种主要配置,均拥有 8K token 的上下文长度,并兼容消费级硬件:

  • Meta-Llama-3-8B:面向高效部署的基础预训练模型。
  • Meta-Llama-3-8B-Instruct:8B 模型的指令微调版本。
  • Meta-Llama-3-70B:用于大规模应用的基础预训练模型。
  • Meta-Llama-3-70B-Instruct:70B 模型的指令微调版本。

此外,Meta 发布了 Llama Guard 2,这是一款针对安全的模型,在 Llama 3 8B 上进行微调。它旨在生产环境中对 LLM 提示和响应进行分类,以基于风险分类法检测不安全内容。

相较于 Llama 2 的技术改进

Llama 3 引入了多项架构与数据驱动的增强,以提升性能与效率:

扩展的分词器和词汇表

Llama 3 使用全新分词器,将词汇表规模提升至 128,256 token,远高于 Llama 2 的 32,000。此扩展提升了文本编码效率,并可能增强多语言能力。由于嵌入输入/输出矩阵变大,小模型的参数量也从 7B 增至 8B。

训练规模与数据策划

模型在超过 15 万亿 token 上进行训练——约为前代的 8 倍,使用了全新的公开在线数据混合。训练在两套集群上完成,共计使用 24,000 块 GPU。

架构优化

8B 模型现在实现了分组查询注意力(Grouped-Query Attention,GQA),在处理更长上下文时提升了效率。

指令微调流程

Llama 3 Instruct 系列模型通过超过 1000 万条人工标注的数据进行对话优化。微调过程结合了监督微调(SFT)、拒绝采样、近端策略优化(PPO)以及直接策略优化(DPO)。

性能评估

根据 Open LLM Leaderboard,Llama 3 相较前代表现出显著提升。Llama 3 8B 获得 13.41 分,而 Llama 2 7B 为 8.72 分。Llama 3 70B 获得 26.37 分,超过 Llama 2 70B 的 18.25 分。

部署与集成

Llama 3 已完整集成至 Hugging Face 生态,提供多种部署与推理路径:

  • 🤗 Transformers:兼容 4.40 版本,支持 safetensors、通过 bitsandbytes 实现的 4 位量化,以及 Flash Attention 2。Llama 3 模型兼容 torch.compile() 与 CUDA 图,可在推理时提供最高 4 倍的加速。
  • Inference Endpoints:可通过 Text Generation Inference (TGI) 部署,提供连续批处理和令牌流式等生产就绪特性。
  • Cloud Providers:可通过 Google Cloud(Vertex AI 与 GKE)和 Amazon SageMaker(AWS Jumpstart)实现一键部署。

微调与提示

提示格式

虽然基础模型没有特定格式,但 Instruct 版本需要严格的对话结构才能有效运行:

<|begin_of_text|><|start_header_id|>system<|end_header_id|>

{{ system_prompt }}<|eot_id|><|start_header_id|>user<|end_header_id|>

{{ user_msg_1 }}<|eot_id|><|start_header_id|>assistant<|end_header_id|>

{{ model_answer_1 }}<|eot_id|>

高效微调

Llama 3 可使用 🤗 TRL(Transformer Reinforcement Learning)库在消费级 GPU 上进行微调。通过 4 位量化和 QLoRA,8B 模型可在单块 A10G GPU 上约四小时完成训练。

许可

Llama 3 采用宽松许可证,允许再分发、微调及衍生作品。Llama 3 的新要求是明确署名:衍生模型名称必须以 “Llama 3” 开头,并在衍生作品或服务中注明 “Built with Meta Llama 3”。

Sources