LLM 大型模型可以用作在 Google Colab 上运行的 MoE

小夏 科技 更新 2024-01-31

**探讨了基于消费级硬件和内存受限 GPU 加速基于 MOE 的语言模型的策略。 **提出了一种以MOE为中心的卸载方法,并探讨了混合量化对混乱和语言理解任务表现的影响。 **对所提出的策略进行了评估,结果表明,与现有方法相比,结果是:显著提高了消费级硬件的构建速度,包括免费的 Google Colab

该方法为在资源受限的硬件上推理大型MOE语言模型提供了实用的解决方案,使这些强大的模型在研发中得到更广泛的应用。

图 1:mixtral-8x7b-instruct 中间层的专家加载模式示例。 蓝色单元格表示专家在对令牌进行编码时处于活动状态颜色越深,浇口重量越大。 灰色小方块表示专家使用 LRU 缓存 (k=2) 进行缓存。

近年来自然语言处理领域的许多进展都依赖于大规模的预训练语言模型,如GPT-3、GPT-4等。 然而,如果没有开源的大型语言模型,如llama、falcon、bloom、opt或neox pythia,这一领域的科学就不可能取得快速进步。 开源大型语言模型的主要优势在于,研究人员可以在本地部署它们,并以专有 API 无法做到的方式对其进行修改。

尽管大型语言模型具有开放参数,但由于参数数量众多,它们仍然难以使用。 SOTA 的开源大型模型需要多个高端 GPU,即使是基本的推理工作也是如此。 为了在更实惠的硬件配置上使用这些大型语言模型,必须将模型参数压缩或卸载到较便宜的内存(如 RAM 或 SSD)中。

最近通过引入稀疏 MOE(专家混合)模块来改进 Transformer 架构。 MOE 模块包含多个“专家”(层),以及一个“门控功能”,用于选择要在给定输入上使用的专家。 因此,教育部模块仅使用所有“专家”的一小部分进行前向传递,从而实现更有效的训练。 值得注意的是,MOE模型是目前可用的最大的大型语言模型之一,也是表现最好的模型之一。 尽管 MOE 模型比密集模型更有效,但许多用于高效大型语言模型推理的技术并不是专门为 MOE 设计的,并且在使用 MOE 层的大规模语言模型上表现不佳。

图 2:(左)不同缓存大小 K 的 LRU 缓存命中率;(右)预加载不同数量的专家时的推测性加载召回。 实线表示加载前 1 层;虚线提前表示 2 层;虚线表示提前 10 层。

表 1:使用不同量化方案对 Mittral-8x7b 进行混淆和模型大小评估,包括共享注意力层量化 (ATTN quant) 和专家层量化 (Experts quant)。 相比之下,4 位量化的 mixtral-7b 在 wiki2 上的拼图级别为 503、C4上的混淆是756,MMLU得分613%。绿色值对应于我们为系统范围评估选择的配置。

* 专注于以每秒多个令牌的形式以交互方式生成令牌的任务,即以 1 的批量大小生成。 生成推理工作负载由两个阶段组成:

1) 对输入提示进行编码。

2)根据提示生成令牌。

这两个阶段之间的主要区别在于,提示令牌是并行编码的(层之间),而生成是顺序的(令牌到令牌,层到层)。 一般来说,阶段 1 与现有的混合专家算法配合得相对较好,因为每个层只需要为整个提示加载一次。 相反,在生成令牌时,必须为每个生成的令牌加载一次图层。 在实践中,这意味着推理速度受到从系统内存中获取参数的速度的限制。

*系统设计结合了缓存、预取技术和混合 MOE 量化方案

MOE量化。

有许多加权算法针对大型语言模型进行了优化。 模型压缩与卸载具有天然的协同作用,因为压缩模型加载到 GPU 上所需的时间更少。 使用**的实验观察到,与将所有非专家层保持在4位相比,MOE模型在将专家量化为更低的位宽时,可以实现更好的质量大小权衡。 **使用半二次量化 (HQQ) – 一种支持多种比特率的独立于数据的量化算法。 然而,选择这种算法只是为了方便起见,因为它已经在混合模型上进行了很好的测试。 由于**的分析不依赖于任何特定的量化选择,因此如果选择另一种量化算法(例如GPTQ或AWQ),则结论将是相似的。 在早期的实验中,还尝试了在 Switch-C-2048 模型上运行良好的 QMOE (Frantar 和 Alistarh, 2023b) 中的亚 1 位量化。 然而,发现亚 1 位压缩会导致 mixtral-8x7b 模型的过度混淆损失。

专家卸载。 对每一层使用等量的 LRU 缓存专家 k。 对于 Miftral-8x7B,** 在 12GB GPU 上使用 k=2,在 16GB GPU 上使用 k=4。 一旦系统完成了当前层的所有专家加载,就会立即触发推测专家加载。 投机专家加载获得 1-2 个最有可能的专家。 新加载的专家不会替换当前缓存的专家。 如果稍后在下一层推理中使用了推测加载的 EA,则它将替换下一层缓存中最近使用最少的 EA。

许多消费者设备和免费分层云实例的主机 RAM 有限,无法适应整个模型。 在这种情况下,必须在主机内存和设备内存之间拆分专家。 为了支持这一点,Expert LRU 缓存实现在主机和 GPU 设备之间拆分了 Expert。 当专家加载到 GPU 缓存中时,系统还会将专家卸载回最近最少使用的设备上的 RAM,以保持内存平衡。 为了实际加快卸载速度,所有专家参数都分配在一个连续的内存缓冲区中,用于单个主机到设备的复制移动。 对于主机端 (RAM) 专家,请固定此内存缓冲区以加快通信速度。 我们的实现还分配了 b=4 个设备缓冲区,用于异步复制和预取专家,而无需修改现有专家。 这些缓冲区在所有 MOE 层之间共享,以减少内存占用。 总体而言,系统需要分布在主机和设备内存之间的 num 层专家内存缓冲区,以及 b = 4 个临时缓冲区,每个缓冲区的大小等于单个专家。

* 系统地开发了在内存受限的GPU条件下运行大规模MOE语言模型的技术。 主要目标是在桌面级硬件上执行推理(生成令牌),该硬件只能容纳 MOE 型聊天助手 mixtral-8x7b-instructed 中的专家子集。 为此:

* 观察了 MOE 语言模型在标记之间访问其专家的方式,并发现了几种模式:

i)一些EA在相邻的令牌之间被重用,II)模型的隐式状态已经“知道”在早期层的后续层中使用哪些EA智能。

特定于 moe 的卸载策略旨在利用以下规则:

i) 它使用 LRU 缓存来大幅减少 GPU-RAM 通信,从而加快构建速度,以及 ii) 它提前猜测需要哪些专家才能更好地将专家加载与计算重叠。

*考虑到在 T4、RTX 3060 和 RTX 3080 移动设备上运行 MixTRAL-8X7B-Struct 的具体场景,开发了一种混合量化和所提出的卸载算法的实用组合,以每秒 2-3 个令牌的速率交互运行,具体取决于硬件。

表 2:mixtral-8x7b 在低端硬件上的推理速度,以每秒生成的令牌数为单位。

*标题:快速推理混合专家语言模型与卸载* 链接:

优质作者名单

相似文章

    LLM大语言模型 AskBot大模型的深度分析与应用

    在当今的人工智能领域,大型语言模型 LLMs 已成为一个热门话题。通过深度学习和自然语言处理技术,LLM能够理解和生成更自然 更准确的文本内容。作为最好的模型之一,AskBot 模型将 LLM 的应用推向了一个新的高度。.LLM大型语言模型概述。LLM是一种基于深度学习的自然语言处理模型,其核心是在...

    LLM 大型模型 GPT 4 的全新演绎

    展示新的 GPT API 引入了新的漏洞。这些漏洞违反了 GPT 中的安全措施,导致 GPT 协助用户发出有害请求。此外,这些漏洞可用于自动生成有针对性的和通用的虚假信息 泄露私人数据 生成恶意 以及与 GPT 集成的攻击服务。实验中使用的数据集可供采集。这些结果强调了仔细测试新 API 的必要性 ...

    大型语言模型 (LLM) 使用指令进行调整,以提高 top-k 推荐系统的性能

    q 这个 测试 有什么问题?a 本文旨在解决如何在推荐系统中使用大型语言模型 LLMS 作为排名器的问题,以提高top k推荐器系统的性能。具体来说,提出了一个名为 Reconk rcer 的框架来优化 LLM,以通过指令调优技术更好地适应推荐的任务。对 Recranker 框架的主要贡献包括 该文...

    苹果大机型赋能iPhone,内存优化畅通开启多个应用!

    在这个飞速发展的数字时代,人工智能已经渗透到我们生活的方方面面,为我们的生活带来了前所未有的便利和惊喜。作为全球科技领域的领导者,苹果一直走在人工智能技术的前沿,不断探索和创新。近日,苹果宣布将以苹果的大机型赋能iPhone,通过内存优化实现多应用的流畅运行,让我们对未来AI苹果的辉煌充满期待。惊人...

    2024年《大模型技术深度赋能保险业》白皮书

    今天要分享的是AI大模型行业研究报告 大模型技术深度赋能保险业 专题报告 奇幻电影的世界 研究报告内容摘要如下,随着大型模型技术的飞速发展,各行各业都在发生着前所未有的变化。保险行业作为数据密集型行业,具有数据优势和丰富的应用场景,是大模型的最佳应用领域之一。大模型与保险的底层逻辑不谋而合,两者都依...