过去几年,设备端人工智能和在较小设备上运行大型语言模型一直是人工智能行业领导者的重点关注点之一。该研究领域是人工智能领域最关键的研究领域之一,有可能深刻影响和重塑人工智能、计算机和移动设备在日常生活中的作用。这项研究在幕后进行,用户基本上看不到,但却反映了计算机的演变——从曾经占据整个房间、只有政府和大公司才能使用的机器,到现在舒适地藏在我们口袋里的智能手机。
现在,大多数大型语言模型都部署在云环境中,它们可以利用数据中心的巨大计算资源。这些数据中心配备了专门的硬件,例如 GPU 和 TPU,甚至专门的人工智能芯片,旨在处理法学硕士所需的密集工作负载。但这种对云的依赖带来了重大挑战:
成本高: 云服务很昂贵。大规模运行法学硕士需要持续访问高性能服务器,这可能会增加运营成本。对于初创公司或个人工程师来说,这些成本可能令人望而却步,限制了谁可以真正利用这项强大的技术。
数据隐私问题:当用户与基于云的法学硕士交互时,他们的数据必须发送到远程服务器进行处理。这会产生潜在的漏洞,因为个人对话、搜索历史或财务详细信息等敏感信息可能会被拦截或错误处理。
环境影响:这种规模的云计算消耗大量能源。数据中心不仅需要持续供电来进行计算,还需要用于冷却和维护基础设施,这会产生大量的碳足迹。随着全球推动可持续发展,这个问题必须得到解决。例如,谷歌最近的一份报告 显示 过去五年,温室气体排放量增加了 48%,这在很大程度上归因于人工智能技术不断增长的需求。
这就是为什么这个问题继续引起行业领导者以及小型研究中心和开源社区的关注,他们正在投入大量资源来解决这个问题。理想的解决方案是允许用户直接在其设备上运行这些强大的模型,而无需持续的云连接。这样做可以降低成本、增强隐私并减少与人工智能相关的环境影响。但这说起来容易做起来难。
大多数个人设备,尤其是智能手机,缺乏运行全面法学硕士的计算能力。例如,具有 6 GB RAM 的 iPhone 或具有高达 12 GB RAM 的 Android 设备无法与云服务器的功能相匹配。即使是 Meta 最小的 LLM,LLaMA-3.1 8B,也需要至少 16 GB 的 RAM,而实际上,在不使手机过载的情况下,需要更多的 RAM 才能获得良好的性能。尽管移动处理器取得了进步,但功率差距仍然很大。
这就是为什么业界专注于优化这些模型——使它们更小、更快、更高效,同时又不牺牲太多性能。
本文探讨了旨在实现这一目标的近期重要研究论文和方法,强调了该领域目前的状况:
- 元的 MobileLLM:针对设备上用例优化数十亿参数语言模型
- 华为的 GPT 压缩的 Kronecker 分解方法
- “TQCompressor:通过排列改进神经网络中的张量分解方法”,最近的一个开源项目和研究论文改进了 Kronecker 分解方法,允许 GPT 模型压缩 1.5 倍,而不会显着增加时间要求,这是我作为合著者参与的一项研究。
Meta 为设备上用例设计法学硕士的方法
今年夏天,Meta AI 研究人员推出了一种新方法,专门为智能手机和其他资源有限的设备创建高效的语言模型,并发布了使用这种方法构建的名为 MobileLLM 的模型。
Meta 的团队没有依赖具有数十亿甚至数万亿参数的模型(如 GPT-4),而是专注于优化参数少于 10 亿的模型。
作者发现,对于具有多达或大约 10 亿个参数的较小模型,“深度”缩放模型比“宽度”缩放模型效果更好,使它们更适合智能手机。 换句话说,拥有更多数量的较小层比拥有几个大层更有效。例如,他们的 1.25 亿参数模型 MobileLLM 有 30 层,而 GPT-2、BERT 等模型以及大多数具有 100-2 亿参数的模型通常有 12 层左右。具有相同数量参数但层数较高(而不是每层参数较大)的模型在多个基准测试任务(例如 Winogrande 和 Hellaswag)中表现出更好的准确性。
Meta 研究的图表显示,在模型大小相当的情况下,更深和更薄的模型在各种任务中通常优于更宽和更浅的模型,例如零样本常识推理、问题回答和阅读理解。
图片来源: MobileLLM:针对设备上用例优化数十亿参数语言模型
层共享是研究中用于减少参数和提高效率的另一种技术。不是在神经网络中复制层,而是多次重复使用单个层的权重。例如,在计算出一层的输出后,可以将其反馈到同一层的输入中。这种方法有效地减少了参数的数量,因为传统方法需要多次复制层。通过重用层,他们在不影响性能的情况下实现了显着的效率提升。
如研究表所示,具有 1.25 亿个参数的其他模型通常有 10-12 层,而 MobileLLM 有 30 层。MobileLLM 在大多数基准测试中都优于其他模型(基准测试领先者以粗体突出显示)。
图片来源: MobileLLM:针对设备上用例优化数十亿参数语言模型
Meta 在他们的论文中介绍了 MobileLLM 模型的两个版本——1.25 亿和 3.5 亿个参数。他们公开了 MobileLLM 的培训代码 GitHub。随后,Meta 还发布了该模型的 6 亿、10 亿、15 亿版本。
这些模型在零样本常识推理、问题回答和阅读理解等任务上显示出令人印象深刻的改进,优于以前最先进的方法。此外,MobileLLM 的微调版本在聊天和 API 调用等常见设备应用程序中展示了其有效性,使其特别适合移动环境的需求。
Meta 的信息很明确: 如果我们希望模型在移动设备上运行,则需要以不同的方式创建它们。
但这种情况并不常见。以人工智能世界中最流行的模型为例,例如 拉玛3、Qwen2 或 Gemma-2 — 它们不仅具有更多的参数;而且还具有更多的参数。它们的层数更少但更大,这使得在移动设备上运行这些模型实际上非常困难。
压缩现有的法学硕士
Meta 最近的研究不再压缩现有的神经网络,而是提出了一种专门为智能手机设计模型的新方法。然而,全球数以百万计的工程师并不是从头开始构建模型(让我们面对现实,他们中的大多数)仍然必须使用这些广泛的参数密集型模型。压缩不仅仅是一种选择,而且是一种选择。这对他们来说是必需的。
事情是这样的:虽然 Meta 的发现具有开创性,但现实是开源模型不一定是根据这些原则构建的。大多数尖端模型,包括 Meta 自己的 LLaMA,仍然是为具有强大 GPU 的大型服务器设计的。这些模型通常具有更少但更广泛的层。例如,LLaMA3 8B 的参数比 MobileLLM-125M 多出近 65 倍,尽管这两个模型都有大约 30 层。
那么,还有什么选择呢?您可以继续从头开始创建新模型,并针对移动使用进行定制。或者,您可以压缩现有的。
当使这些大而宽的模型在移动设备上更加高效时,工程师通常会求助于一组经过验证的压缩技术。这些方法是量化、剪枝、矩阵分解和知识蒸馏。
量化
神经网络压缩最常用的方法之一是量化,它以简单且有效地保持性能而闻名。
图片来源: 扬·马塞尔·凯兹曼 在 中等的
基本概念是神经网络由存储在矩阵中的数字组成。这些数字可以以不同的格式存储,例如浮点数或整数。您可以通过将这些数字从更复杂的格式(如 float32)转换为更简单的格式(如 int8)来大幅减小模型的大小。例如,最初占用 100MB 的模型可以通过量化压缩到仅 25MB。
修剪
如前所述,神经网络由一组填充数字的矩阵组成。修剪是从这些矩阵中删除“不重要”数字(称为“权重”)的过程。
通过删除这些不重要的权重,模型的行为受到的影响最小,但内存和计算要求显着降低。
矩阵分解
矩阵分解是压缩神经网络的另一种有效技术。这个想法是将网络中的大矩阵分解(或“分解”)为更小、更简单的矩阵。可以将其分解为两个或多个较小的矩阵,而不是存储整个矩阵。当相乘时,这些较小的矩阵产生与原始结果相同或非常接近的结果。这使我们能够用较小的矩阵替换较大的矩阵,而无需改变模型的行为。然而,这种方法并非完美无缺——有时,分解后的矩阵不能完美地复制原始矩阵,从而导致较小的近似误差。尽管如此,效率方面的权衡通常是值得的。
知识蒸馏
知识蒸馏,由 Hinton 等人提出。 2015 年,这是一种简单而有效的方法,通过从预先训练的较大模型(“教师模型”)转移知识来创建更小、更高效的模型(“学生模型”)。
使用知识蒸馏,可以训练任意设计的较小语言模型来模仿较大模型的行为。这一过程的工作原理是向两个模型提供相同的数据,较小的模型学会产生与较大模型相似的输出。本质上,学生模型是根据教师模型的知识进行提炼的,使其能够执行类似的操作,但参数要少得多。
一个值得注意的例子是 DistilBERT(Sanh 等人,2019),它成功地将 BERT 的参数减少了 40%,同时保持了 97% 的性能,运行速度提高了 71%。
蒸馏可以很容易地与量化、剪枝和矩阵分解结合起来,其中教师模型是原始版本,学生模型是压缩版本。这些组合有助于提高压缩模型的准确性。例如,您可以使用矩阵分解来压缩 GPT-2,然后应用知识蒸馏来训练压缩模型以模仿原始 GPT-2。
如何压缩设备上人工智能用例的现有模型
几年前,华为还专注于实现设备上的AI模型,并发表了压缩GPT-2的研究。研究人员使用矩阵分解方法来减小流行的开源 GPT-2 模型的大小,以便更有效地在设备上使用。
具体来说,他们使用了一种称为克罗内克分解的技术,这是他们题为“GPT 压缩的克罗内克分解”的论文的基础。结果,GPT-2的参数从1.25亿减少到8100万。
为了在压缩后恢复模型的性能,作者采用了知识蒸馏。压缩版本——被称为 KnGPT-2——学会了模仿原始 GPT-2 的行为。他们仅使用用于训练 GPT-2 的原始数据集的 10% 来训练这个精炼模型。最终模型大小减少了 35%,性能损失相对较小。
今年,我和我的同事发表了关于矩阵分解方法的研究,我们成功地将 GPT-2 模型(具有 1.25 亿个参数)压缩到 8100 万个参数。我们将生成的模型命名为 TQCompressedGPT-2。这项研究进一步改进了克罗内克分解方法,通过这一进步,我们在知识蒸馏阶段仅使用了原始数据集的 3.1%。这意味着与使用完整数据集相比,我们的训练时间减少了约 33 倍,并且希望在智能手机上部署 LLaMA3 等模型的开发人员使用我们的方法实现 LLaMA3 的压缩版本所需的时间将减少 33 倍。
我们工作的新颖性在于几个关键领域:
- 在应用压缩之前,我们引入了一种新方法:权重矩阵的排列。通过在分解之前重新排列层矩阵的行和列,我们在压缩模型中实现了更高的精度。
- 我们迭代地应用压缩,一层一层地减少模型层。
我们已经将模型和算法代码开源,以便进一步研究和开发。
这两项研究使我们更接近 Meta 的概念,他们在移动法学硕士方法中引入了这一概念。他们演示了使用矩阵分解技术将现有宽模型转换为更紧凑、更深版本的方法,并通过知识蒸馏恢复压缩模型的性能。
LLaMA、Mistral 和 Qwen 等顶级模型的参数远大于 10 亿个,是为强大的云服务器而不是智能手机而设计的。华为和我们团队进行的研究为使这些大型模型适应移动应用提供了宝贵的技术,符合 Meta 对设备端人工智能未来的愿景。
压缩人工智能模型不仅仅是一项技术挑战,它还是让数十亿人能够使用先进技术的关键一步。随着模型变得越来越复杂,在智能手机等日常设备上高效运行模型的能力变得至关重要。这不仅仅是为了节省资源;它是以可持续的方式将人工智能嵌入到我们的日常生活中。
该行业在应对这一挑战方面取得了重大进展。华为和天晴在人工智能模型压缩方面取得的进步正在推动人工智能走向一个可以在更小的设备上无缝运行而不牺牲性能的未来。这些是让人工智能可持续地适应现实世界的限制并使每个人都更容易使用它的关键步骤,为人工智能对人类影响这一重要领域的进一步研究奠定了坚实的基础。