了解 LLM 规模

Maud Nalpas
Maud Nalpas

虽然大语言模型 (LLM) 中的“L”表示规模庞大,但现实情况更为细致。有些 LLM 包含数万亿个参数,而有些 LLM 只需使用少得多的参数即可高效运行。

我们来看几个真实示例,以及不同模型大小的实际影响。

LLM 大小和大小类

作为 Web 开发者,我们往往会将资源的大小视为其下载大小。模型的记录大小是指其参数数量。例如,Gemma 2B 表示具有 20 亿个参数的 Gemma。

LLM 可能有数十万、数百万、数十亿甚至数万亿个参数。

大型 LLM 比小型 LLM 具有更多参数,因此可以捕获更复杂的语言关系并处理细微的提示。它们通常还会基于更大的数据集进行训练。

您可能已经注意到,某些模型大小(例如 20 亿或 70 亿)很常见。例如 Gemma 2B、Gemma 7BMistral 7B。模型大小类别是近似分组。例如,Gemma 2B 有 大约 20 亿个参数,但不是确切的。

模型大小类提供了一种实用的 LLM 性能评估方法。不妨将其视为拳击比赛中的重量级别:同一个尺寸类别内的手机更具可比性。两种 2B 模型的性能应该相似。

不过,对于特定任务,较小的模型可以达到与较大模型相同的性能

HuggingFace 模型大小复选框的屏幕截图。
HuggingFace 上的模型大小类别。这些类并非业界标准,而是自然而然地出现的。

虽然最新最先进的 LLM(例如 GPT-4 和 Gemini Pro 或 Ultra)的模型大小并不总是公开披露,但据信它们有数百亿或数万亿个参数

模型大小可能差异很大。在该插图中,与巨大的 Gemini Pro 相比,DistilBERT 只是一个小点。

并非所有模型的名称中都指明了参数数量。某些模型的后缀是版本号。例如,Gemini 1.5 Pro 是指该模型的 1.5 版(紧随版本 1 之后)。

是否使用 LLM?

什么情况下模型太小而不能被视为 LLM?在 AI 和机器学习社区中,LLM 的定义可能有些不稳定。

有些人认为只有拥有数十亿个参数的超大型模型才是真正的大语言模型,而较小的模型(例如 DistilBERT)则被视为简单的 NLP 模型。还有一些人将体积较小但仍然强大的模型纳入了 LLM 的定义,例如 DistilBERT。

适用于设备端应用场景的更小 LLM

较大的 LLM 需要大量的存储空间和大量的计算能力才能进行推理。它们需要在配备特定硬件(例如 TPU)的强大专用服务器上运行。

作为 Web 开发者,我们关注的一个方面是模型是否足够小,可以下载到用户设备上并在其上运行。

不过,这个问题很难回答!目前,您无法轻松了解“此模型可以在大多数中档设备上运行”,原因如下:

  • 设备功能因内存、GPU/CPU 规格等而异。低端 Android 手机和 NVIDIA® RTX 笔记本电脑完全不同。您可能有一些数据点,可了解用户使用的是哪些设备。我们尚未定义用于访问网站的基准设备。
  • 模型或其运行框架可能会经过优化,以便在特定硬件上运行。
  • 无法通过编程方式确定特定 LLM 是否可以在特定设备上下载和运行。设备的下载能力取决于 GPU 上的 VRAM 大小等因素。

不过,我们有一些经验性知识:目前,一些具有几百万到几十亿个参数的模型可以在浏览器中运行,并且可以在消费类设备上运行。

例如:

  • 搭配使用 MediaPipe LLM Inference API 的 Gemma 2B(甚至适用于仅使用 CPU 的设备)。试一试
  • 结合使用 DistilBERT 和 Transformers.js

这是一个新兴领域。您可以预见,该领域将会不断发展:

  • 随着 WebAssembly 和 WebGPU 的创新,WebGPU 支持将更多库、新库和优化引入,预计用户设备将越来越能够高效运行各种大小的 LLM。
  • 随着新兴的缩减技术的出现,体积更小、性能更出色的 LLM 将越来越常见。

小型 LLM 的注意事项

使用较小的 LLM 时,您应始终考虑性能和下载大小。

性能

任何模型的功能都取决于您的应用场景!与大型通用 LLM 相比,针对您的应用场景进行精细调整的小型 LLM 的性能可能会更好。

不过,在同一模型系列中,较小的 LLM 的功能不如较大的 LLM。对于相同的用例,使用较小的 LLM 时,通常需要执行更多提示性工程工作

Chrome DevTools 网络面板的屏幕截图。
Gemma 2B 的得分低于 Gemma 7B 的得分。
来源:2024 年 4 月的 HuggingFace 开放式 LLM 排行榜

下载大小

参数越多,下载大小就越大,这也会影响模型(即使被视为小型模型)能否合理下载以用于设备端用例。

虽然有方法可根据参数数量计算模型的下载大小,但这可能很复杂。

自 2024 年初以来,我们很少记录模型下载大小。因此,对于设备端和浏览器内用例,我们建议您在 Chrome DevTools 的 Network 面板中或使用其他浏览器开发者工具,以经验为依据查看下载大小。

Chrome DevTools 网络面板的屏幕截图。
在 Chrome DevTools 的“网络”面板中,使用 Gemma 2BDistilBERT 在 Web 应用中进行浏览器端设备端推理。下载大小分别为 1.3GB 和 67MB。

Gemma 与 MediaPipe LLM Inference API 搭配使用。DistilBERT 与 Transformers.js 搭配使用。

模型缩减技术

有多种方法可以显著降低模型的内存要求:

  • LoRA(低秩自适应):一种微调方法,其中会冻结预训练的权重。详细了解 LoRA
  • 修剪:从模型中移除不太重要的权重,以缩减其大小。
  • 量化:将权重的精度从浮点数(例如 32 位)降低到低位数表示法(例如 8 位)。
  • 知识蒸馏:训练较小的模型来模仿较大的预训练模型的行为。
  • 参数共享:为模型的多个部分使用相同的权重,从而减少唯一参数的总数。