手记

LLama 3.2 1B和3B:小而强!

评估:看看它们的性能、安全、长文本理解能力等等:

图片由作者创作

MetaAI 刚刚发布了 Llama-3.2,这是一套新的模型,包括两个轻量级的大规模语言模型(LLM),参数分别为10亿(1B)和30亿(3B),以及参数为110亿和90亿的大规模视觉语言模型(VLM)。

根据你问的人不同,这可能被视为人工智能领域的一个突破性进展——而另一些人,或许对不断涌现的新模型感到厌烦,可能甚至都不会多看一眼。

但正是这一点使得这次发布真正引人关注:这些轻量级的LLM是专门为边缘设备优化的。它们提供诸如摘要生成、指令遵循和文本重写等功能,尽管体积更小,依然能保持良好的性能——尤其是像Llama-3.1这样拥有4050亿参数的惊人规模。这引发了这样一个问题:如果你没有充裕的GPU资源,这些较小的模型是否值得你特别关注?

如果你一直在思考较小、更高效的模型是否能够处理你关心的任务——而不需要庞大的服务器群——这篇文章就是为你准备的。我们将教你如何使用LlamaCPP在本地设置Llama-3.2,并看看这些模型在各种任务中的表现如何。从推理到摘要,再到处理长文字段以及多语言支持,我们将这些模型放到各种任务中进行测试。我们还将谈谈模型的安全性,看看它们是否容易受到对抗性或恶意提示的攻击。

准备好看看这些模型真正能做什么了吧,那我们开始。

The Llama-3.2 1B和3B 版本

虽然它们很小,但威力十足,在各种任务中表现出色。这就是它们的亮点:

高上下文窗口功能:这两种模型都支持长达128,000个文本片段的上下文长度,使其能够处理更复杂的任务,如总结大文档、长时间对话或重写内容——同时也能记住较长的对话内容。

高效表现:虽然这些模型体积较小,1B 和 3B 模型在计算效率上超过了它们的体积。3B 版本在 MMLU 5-shot 基准测试中获得了 63.4 的分数。

修剪和知识蒸馏:MetaAI 通过修剪减少模型的大小,裁剪掉不必要的部分,并使用知识蒸馏让其“学习”来自更大的模型(LLama-3.1–8B 和 70B),从而增强其能力。

多种任务处理得心应手:这些模型不仅仅追求效率——它们设计用于摘要生成、重写或长文本对话等高要求任务。

实时交互:由于超快的处理速度,这些模型的响应几乎感觉是即时的——非常适合需要实时互动的应用场景。

来源链接:https://ai.meta.com/blog/llama-3-2-connect-2024-vision-edge-mobile-devices/

我们现在来部署这些模型并检查它们的表现,看看它们的表现。

运行LLama-3.2使用LLamaCPP框架

在我们动手评估时,我们将使用LlamaCPP运行Llama-3.2模型的量化版

为什么是LlamaCPP?

简单来说:它降低了硬件要求,使得即使在配置较低的设备上也能运行这些模型,让这些模型同时保持高效并提高速度。

安装LLamaCPP:

要安装带有 GPU 支持的 LlamaCPP,请首先从 支持的后端选项 中选择适合您硬件的选项。例如,如果你使用的是 CUDA,你可以使用以下命令来安装并启用 GPU 加速:

使用以下命令安装 llama-cpp-python

CMAKE_ARGS="-DGGML_CUDA=on" pip install --no-cache-dir llama-cpp-python
从HuggingFace下载模型文件。

接下来,你可以前往Hugging Face并在搜索栏中输入“Llama-3.2”。你会看到几个GGUF格式的版本

对于这个实验,我们将使用巴特沃斯基的Hugging Face页面上的量化的Q4_K_M版本。这个特定的量化版本在尺寸和性能之间取得了良好的平衡。

如何引导模型

现在所有的安装都已完成,是时候让Llama-3.2工作了!使用LlamaCPP运行一个提示非常简单,但我们也想进一步构建一个聊天机器人来实现交互,我们将更进一步操作。

为了使流程更加顺畅,请安装 llama-cpp-agent 以轻松地为您的 Llama-3.2 模型安装聊天界面。

    pip install llama-cpp-agent

安装好之后,你就可以和模型聊天并管理聊天记录。

有了这些条件,我们现在可以来测试一下他们的功能表现如何!

LLama-3.2 性能测试

现在Llama-3.2已经开始运行了,我们来评估一下它的性能,并用它的量化版本与3.1-8B版本进行比较。

显卡内存使用

Llama-3.2模型在内存消耗方面非常高效,尤其是当上下文窗口达到8k时。

  • Llama-3.2 (大约1.8 GB):需要的GPU内存为1.8 GB

  • Llama-3.2 (大约3.4 GB):需要的GPU内存为3.4 GB

  • Llama-3.1 (大约7.6 GB):则需要更多,达到7.6 GB的GPU内存。

这使得1B和3B模型非常适合有限GPU容量的设备,同时还能保持高性能。

速度对比

我们对Llama-3.2 1B、3B和Llama-3.1 8B这些模型运行了一组基准提示,以测试它们处理提示评估和生成令牌的速度。下面是测试结果。

比较Llama-3.2 1B和3B,以及Llama-3.1-8B的速度

平均而言,一个人每分钟阅读大约200到300个词元。仅一秒钟,Llama-3.2-1B就能生成这种数量的词元,而它的3B版本只需两秒。这速度简直快得惊人!

推理能力

在广受认可的MMLU(大规模多任务语言理解)基准中,涵盖从基础数学到法律和物理等57个任务的测试中,Llama-3.2模型和Llama-3.1–8B的表现如下(使用5-shot提示进行测试):

  • Llama-3.2–1B :49.3
  • Llama-3.2–3B :63.4
  • Llama-3.1–8B :66.7

尽管Llama-3.2–3B模型在推理能力上比1B版本有了显著提高,但它仍然略逊于更大的Llama-3.1–8B模型。然而,考虑到其体积小很多,对于那些更看重速度和效率的人来说,这是一个值得称赞的权衡。

为了进行更为严格的测试,我们转向了MMLU-Pro基准。这是原版MMLU的扩展版本,旨在更具挑战性,这一扩展专注于在各个领域的复杂和细致推理。以下是模型在MMLU-Pro上的表现情况:

  • Llama-3.2-1B :约7.58
  • Llama-3.2-3B :约24.39
  • Llama-3.1-8B :约30.68

正如预期的那样,1B模型 在处理这些复杂任务时表现挣扎,尽管它仍然保持了其标志性的速度。相比之下,3B模型 有了显著的改进,与更大的Llama-3.1–8B模型相比而言,尽管其大小小得多且执行速度更快,差距也显著缩小了。

关于长上下文:使用BABILong数据集测试Llama-3.2

Llama-3.2模型能够处理多达128k tokens的上下文。但这不仅仅关乎容量,更重要的是它们能否从海量信息中筛选出相关细节。为了测试这一点,我们转向了BABILong数据集来进行测试。

zh: BABILong:数据集

BABILong 设计用于通过从 0k 到 128k 令牌 的不同提示来挑战模型。随着上下文大小的增加,复杂性也随之提升,包含更多支持事实和更多周围“噪音”。想法是,看看模型是否能在“针在稻草堆中”找到针。

  • 目的 :测试模型在提示长度增加时保持准确性有多好。
  • 挑战 :提示中的事实数量随着上下文的增加而增多,模拟了长文档中既有关键信息又有无关信息的任务。

想了解更多详情,您可以访问BABILong的GitHub页面

Llama-3.2 表现得怎么样?

我们测试了具有10亿和30亿参数的模型,看看它们如何处理长上下文场景。由于资源限制,我们专注于从 0k到8k token 的提示,并使用了 qa1(2到10个事实,每个事实都有1个支持事实)和 qa2(10到68个事实,每个事实都有2个支持事实)的集合。

我们来看看LLama-3.2模型的10亿和30亿版本在BABILong数据集上的表现。

结果如下:

  • Llama-3.2 1B :随着提示长度的增加开始遇到困难,特别是在更复杂的 qa2 数据集(dataset) 上,对于 4k-token 的提示,准确率仅为 11%
  • Llama-3.2 3B :在 qa1 和 qa2 数据集(dataset)上表现更加一致,随着提示变长和变复杂,性能逐渐下降。

要点:

  • 虽然这些模型在理论上支持最多128k的标记,但10亿版本在处理长且复杂的提示时很快就显得力不从心,尤其是那些包含大量无关事实的提示。
  • 30亿版本展示了更大的韧性,但是我们可以预期这两个模型在执行像检索增强生成(Retrieval-Augmented Generation, RAG)这样的任务时,如果遇到密集或扩展的提示,都会有局限性。
  • 尽管轻量且非常快速,这些模型在处理大量信息时会遇到挑战。它们的小尺寸是一个权衡——适合处理中等复杂度的快速任务,但面对需要高准确度的密集、长上下文场景时可能会吃力。
多语言支持

为了评估Llama-3.2模型系列的多语言能力,我们使用从维基百科获取的不同语言的文本片段,测试了1B和3B版本。为了这个目的,我们让模型生成简洁的英文摘要文本,以评估这些较小模型处理非英语文本的能力。

测试语言: 法语、西班牙语、意大利语、俄语、中文(汉语)、罗马尼亚语和日语。

这两种模型在这些语言上都表现得很棒,都很好地理解了内容,并且能够有效地概括信息。

虽然我们承认,更全面的评估将带来更深入的见解,理想情况下,通过使用像GPT-4这样的大型模型作为评判工具来评估输出的质量,我们可以自信地说,即使是这些轻量模型处理多语言内容的能力也相当出色。

安全性评估

为了评估Llama-3.2模型的安全性,我们采用了ALERT框架(一种评估模型安全性的工具,有关方法论和代码的更多细节,请参阅此链接)。为了优化资源使用,我们仅测试了100个恶意提示,分为四类:对抗前缀、对抗后缀、令牌操控和破解尝试,每类攻击类型有25个提示

结果显示:96%的提示对LLama-3.2–1B来说是安全的,而其3B版本的比例则为98%。

LLama-3.2–1B 和 LLama-3.2–3B 在 ALERT 数据集中的 100 个提示上的结果

尽管数据集相对较小,这些结果表明两种模型都表现出较强的安全性和对恶意提示的抵御能力。此外,通过提示工程微调等技术,安全性可以进一步提升,从而更好地保护模型免受潜在威胁的影响。

结论

总之,Llama-3.2模型展示了大小和效率之间的出色平衡,证明了它们在各种任务中都非常有能力。尽管它们的占用资源较小,但在速度和性能上表现出色,使其非常适合资源受限的应用场景。然而,需要注意的是,我们的部分测试由于资源和时间的限制,可能会影响评估的深度和广度。

他们为热衷于利用高效、轻量级AI解决方案并能满足特定需求的开发者提供了有趣的可能性。总之,他们在现代AI领域中表现优异,证明了小也可以很厉害。

0人推荐
随时随地看视频
慕课网APP