揭秘 Llama 3.1 405B:能与 GPT-4o 相媲美的开源 AI 模型

256 阅读12分钟

cover.png

就在七月,Meta 宣布推出了其 Llama 系列 LLM 的最新版本:Llama 3.1。

虽然这只是针对于 Llama 3 模型的一个小更新,但其特别之处在于引入了 Llama 3.1 405B。

这是一个拥有 4050 亿参数的模型,是目前全球最大的开源 LLM,超越了 NVIDIA 的 Nemotron-4-340B-Instruct。

实验评估表明,它在各种任务上的表现可与 GPT-4、GPT-4o 和 Claude 3.5 Sonnet 等领先模型相媲美。

我在上一篇文章RAG 入门指南:从零开始构建一个 RAG 系统中也提到并且使用了 Llama 3.1 这个模型,但是我使用的是它的 8B 版本。

本文将为你详细介绍 Meta 的 Llama 3.1 405B 模型、其工作机制以及这个模型的应用场景,在文章的后半部分,我还会介绍 Llama 3.1 系列的其他模型以及对比大小模型的优势和劣势。

目录

  • Llama 3.1 405B 简介
  • Llama 3.1 405B 的工作机制
  • Llama 3.1 405B 的应用场景
  • Llama 3.1 405B 的安全性
  • 如何使用 Llama 3.1 405B
  • Llama 3.1 系列模型
  • 关于大小模型的争论
  • 总结

Llama 3.1 405B 简介

多语言能力

从 Llama 3 到 Llama 3.1 的主要更新是更好的非英语支持。

Llama 3 的训练数据 95% 是英语,因此在其他语言中的表现较差。

3.1 更新提供了对德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语的支持。

更长的上下文窗口

Llama 3 模型的上下文窗口(一次可以推理的文本量)为 8k 个 token(约 6k 个单词)。

而Llama 3.1 提升到了 128k,对于企业使用案例,比如总结长文档或者生成大量代码这样的场景来说,就非常有用了。

开放模型许可证协议

Llama 3.1 模型在 Meta 的自定义开放模型许可证协议下可用。

这个宽松的许可证允许研究人员、开发人员和企业在研究和商业应用中自由使用该模型。

Llama 3.1 405B 的工作机制

Transformer 架构

Llama 3.1 405B 基于标准的 Decoder-Only Transformer 架构,这是许多成功的 LLM 常用的设计。

Decoder-Only Transformer 是一种特定类型的 Transformer 架构,它仅使用解码器部分进行处理和生成。与标准 Transformer 架构中的编码器-解码器结构不同,Decoder-Only Transformer 省略了编码器部分,仅使用解码器来完成所有任务。

虽然核心结构保持一致,但是 Meta 在这其中引入了一些小的调整来增强模型在训练过程中的稳定性和性能。

需要注意的是,为了优先考虑训练过程中的稳定性和可扩展性,Meta 故意排除了 MoE (Mixture-of-Experts) 架构。

MoE (Mixture-of-Experts) 架构是一种让计算机更加聪明和高效的方法。可以把它想象成一个大团队,每个成员都是某个领域的专家,比如有的专家擅长数学,有的擅长语言。

image_87b73fa57b.png

上面这张图展示了 Llama 3.1 405B 处理语言的方式。

首先,输入文本被分割成较小单元,也就是 token,然后转化为 token embedding 的数值表示。

Token embedding 是将文字转换为数字的方法。可以把它想象成把每个单词变成一组数字,这样计算机就能理解和处理这些文字了。通过这种转换,模型可以更好地理解单词之间的关系和含义。

这些嵌入通过多层 Self-Attention 机制进行处理,模型分析不同 token 之间的关系来理解它们在输入中的重要性和上下文。

Self-Attention 是一种帮助计算机理解每个单词在句子中重要性的机制。可以把它想象成在阅读一段文字时,计算机会“关注”每个单词,并考虑它与句子中其他单词的关系。这样,它能更好地理解上下文和每个单词的意义。

Self-Attention 层收集的信息接着传递到前馈网络 (Feedforward Network),这进一步处理和组合信息以得出意义。这个自注意力和前馈处理的过程重复多次,以加深模型的理解。

前馈网络 (Feedforward Network) 是一种简单的神经网络架构,它将输入数据逐层传递,直到输出结果。每一层都会对输入进行处理和转换,产生新的输出。可以把它想象成一系列筛子,每个筛子都会进一步精炼和处理数据,直到得到最终结果。

最后,模型使用这些信息生成响应 token,通过构建先前的输出来创建连贯且相关的文本。

这个迭代过程称为自回归解码 (Autoregressive Decoding),使得模型能够对输入提示语生成流畅并且适应上下文的回答。

多阶段训练过程

Llama 3.1 405B 涉及一个多阶段的训练过程。

最初,模型在一个包含数万亿个 token 的庞大而多样化的数据集上进行预训练。通过大量文本的训练,模型可以从中学习语法、事实和推理能力。

在预训练之后,模型会进行多轮的监督微调(SFT)和直接偏好优化(DPO)。

SFT 涉及在人类反馈的指导下,针对特定任务和数据集进行训练,使模型能够产生期望的输出。

DPO 则侧重于根据人类评估者的偏好来优化模型的响应。这个迭代过程逐步提升模型遵循指令、改进响应质量并确保安全的能力。

数据质量和数量

Meta 声称他们非常重视训练数据的质量和数量。

Llama 3.1 405B 涉及一个严格的数据准备过程,这个过程通过广泛的过滤和清理来提高数据集的整体质量。

而 405B 模型本身也会用于生成合成数据,这些数据会被纳入训练过程中,进一步提升模型的能力。

计算扩展

训练像 Llama 3.1 405B 这样庞大且复杂的模型需要大量的计算能力。

为了高效地训练该模型,Meta 使用了超过 16000 个 NVIDIA 最强大的 H100 GPU。

量化推理

为了使 Llama 3.1 405B 更加适用于实际应用,Meta 应用了量化技术,将模型的权重从 16 位精度(BF16)转换为 8 位精度(FP8)。

简单理解的话,就是类似于将高分辨率图像转换为稍低分辨率的图像:在保留重要细节的同时减少文件大小。

同样,量化简化了模型的内部计算,使其在单个服务器上运行得更快、更高效。

Llama 3.1 405B 的应用场景

合成数据生成

该模型能够生成与人类语言非常相似的文本,可用于创建大量的合成数据。

这些合成数据对于训练其他语言模型、增强数据扩展技术(使现有数据更加多样化)以及开发各种应用的现实模拟非常有价值。

模型蒸馏(Distillation)

通过称为蒸馏的过程,可以将 405B 模型中嵌入的知识转移到更小、更高效的模型上。

可以将模型蒸馏想象成将专家(Llama 3.1 405B 大模型)的知识传授给学生(较小的 AI 模型)。这个过程使得较小的模型能够学习并执行任务,而不需要与大模型相同的复杂性或计算资源。

也就是说,通过这种能力,可以在手机或笔记本电脑等计算能力有限的设备上运行先进的 AI 功能。

最近的一个模型蒸馏示例是就是 OpenAI 的 GPT-4o mini,它是 GPT-4o 的蒸馏版本。

研究与实验

Llama 3.1 405B 是一个非常有价值的研究工具,科学家和开发人员可以利用这个模型探索自然语言处理和 AI 的新领域。

行业特定解决方案

通过将模型适应于特定行业的数据,如医疗、金融或教育,可以创建定制的 AI 解决方案来解决这些领域的定制化需求。

Llama 3.1 405B 的安全性

image_5114455fa5.png

红队演练(Red team exercises)

在发布 Llama 3.1 405B 之前,他们进行了广泛的红队演练(Red team exercises)。

在这些演练中,内部和外部专家充当对手,尝试找到让模型表现出不当行为的方法,识别模型行为中的潜在的风险或漏洞。

安全微调

除了部署前的测试,Llama 3.1 405B 还进行了安全微调。

这个过程包括从人类反馈中进行强化学习(RLHF),模型学习如何让它的回答能够与人类的价值观和偏好对齐。

这有助于减轻有害或偏见输出的风险,让模型在实际应用中更加安全和可靠。

Llama Guard 3

image_7b3588b9a4.png

Meta 还推出了 Llama Guard 3,这是一种新的多语言安全模型,用于过滤和标记 Llama 3.1 405B 生成的不当内容。

这一额外的保护层有助于确保模型的输出符合伦理和安全准则。

Prompt Guard

image_0b2b62f7cc.png

另一项安全功能是 Prompt Guard,用于防止提示语注入攻击。这些攻击涉及将恶意指令插入用户提示语中以操纵模型行为。

提示语注入攻击是一种试图通过在用户输入的提示语中插入恶意指令来操控 LLM 的行为的攻击方式。这种攻击的目标是让模型执行不原本不应该执行的任务,产生不当的输出。

Code Shield

image_d136062940.png

此外,Meta 还集成了 Code Shield,这一功能专注于 Llama 3.1 405B 生成代码的安全性。

Code Shield 在推理过程中会实时过滤掉不安全的代码建议,并为七种编程语言提供安全命令执行保护,平均延迟为 200ms。

如何使用 Llama 3.1 405B

可以通过以下两个方式来使用或者下载 Llama 3.1 405B:

  1. Ollama 官网直接下载ollama.com/
  2. Hugging Face 平台huggingface.co/meta-llama/…

如果是在自己电脑上安装,通过 ollama show llama3.1 命令就可以看到模型的信息。

Llama 3.1 系列模型

Llama 3.1 系列还包括其他模型,这些模型可以满足不同的用例和资源限制需求。

Llama 3.1 70B:多用途

Llama 3.1 70B 模型在性能和效率之间取得了平衡,使其成为各种应用的强有力候选者。

它在长文本摘要、多语言对话代理的创建和提供编码帮助等任务中表现出色。

尽管比 405B 模型小,但在各种基准测试中,它仍与其他相似规模的开放和闭源模型竞争。

较小的体积也让它可以更容易在标准硬件上部署和管理。

Llama 3.1 8B:轻量高效

Llama 3.1 8B 模型优先考虑速度和低资源消耗。它非常适合对这些因素要求较高的场景,如边缘设备、移动平台或计算资源有限的环境。

所有 Llama 3.1 模型的共享改进点

所有 Llama 3.1 模型都共享以下几个关键的改进点:

  • 扩展的上下文窗口(128K Tokens)
  • 多语言支持
  • 改进的工具使用和推理能力
  • 增强的安全性

关于大小模型的争论

Llama 3.1 405B 的发布,虽然在规模上令人印象深刻,但也引发了关于当前 AI 领域中语言模型最佳规模的讨论。

较小的模型通常需要更少的计算资源,这样可以更易于部署和针对特定任务进行微调。

而大型模型的支持者认为其庞大的规模使其能够捕捉更深更广的知识,从而在更广泛的任务上表现出色。

他们还指出,这些大型模型可以作为基础模型,通过蒸馏技术构建更小、更专业化的小型模型。

其实大小模型之间的争论最终归结为能力与实用性之间的权衡。

虽然较大模型提供了更强的性能和潜力,但是也伴随着计算需求的增加和潜在的环境影响(由于其能源消耗)。

而小型模型虽然可能会在性能上有所牺牲,但它们在可获取性和部署便捷性上具有优势。

就拿 Llama 3.1 的系列模型来看,Llama 3.1 405B 以及较小的 70B 和 8B 版本,似乎就是在表明这一权衡。通过提供一系列不同规模的模型,可以满足了 AI 社区中不同需求和偏好的用户。

最终,选择大型模型还是小型模型取决于具体的使用场景、可用资源和期望的性能特性。

随着该领域的不断发展,可能会出现两种方法并存的局面,各自在 AI 应用的多样化格局中找到自己的定位。

总结

Llama 3.1 系列的发布,特别是 405B 模型,代表了开源大型语言模型领域的一项重要贡献。

尽管它的性能可能没有超越所有的闭源模型,但是它的强大能力以及 Meta 对透明度和协作的承诺,为 AI 发展提供了一条新的路径。

如果你想要尝试使用一下 Llama 3.1 这个系列下的各个模型,可以参照上文中如何使用 Llama 3.1 405B这一章节去下载或者使用。