Snowflake 加入 LLM 混战。
Snowflake 发布高「企业智能」模型 Arctic,专注于企业内部应用。
刚刚,数据管理和仓库提供商 Snowflake 宣布加入 LLM 混战,发布了一款专注于企业级应用的顶级大型语言模型(LLM)------Snowflake Arctic。
作为一家云计算公司推出的 LLM,Arctic 主要具备以下两个方面的优势:
-
高效智能:Arctic 在企业任务方面表现出色,例如 SQL 生成、编程和指令遵循,甚至可与使用更高计算成本训练的开源模型媲美。Arctic 为经济高效的训练设定了新的基线,使 Snowflake 客户能够以低成本为其企业需求创建高质量的定制模型。
-
开源开放:Arctic 采用 Apache 2.0 许可,提供对权重和代码的开放访问,Snowflake 还将开源所有的数据方案和研究发现。
现在,你可以在 Hugging Face 上访问 Arctic 模型。Snowflake 表示:用户很快可以通过一些模型库获取,包括 Snowflake Cortex、AWS、微软 Azure、NVIDIA API、Lamini、Perplexity、Replicate 和 Together 等。
Hugging Face:huggingface.co/Snowflake/s...
Arctic 的上下文窗口设置为 4K,研究团队正在研发基于注意力池(attention-sink)的滑动窗口实现,在未来几周内将支持无限序列生成,并在不久的将来扩展到 32K 注意力窗口。
高性能、低成本
Snowflake 的研究团队从企业客户的 AI 需求和使用案例中看到了一个一致的模式:企业希望使用 LLM 构建对话式 SQL 数据 copilot、代码 copilot 和 RAG 聊天机器人。
这意味着 LLM 需要在 SQL、代码、复杂指令遵循和生成具体响应方面表现出色。Snowflake 将这些能力融合成一个称为「企业智能」的单一指标,具体方式是对编码(HumanEval + 和 MBPP+)、SQL 生成(Spider)和指令遵循(IFEval)性能水平取平均值。
Arctic 在开源 LLM 中达到了顶级的「企业智能」水平,而且是在大约不到 200 万美元的训练计算成本(少于 3K GPU 周)的情况下做到的。这意味着 Arctic 比其他使用类似计算成本训练的开源模型能力更强。
更重要的是,即使与那些使用远高于其的计算成本训练的模型相比,Arctic 在企业智能方面也表现出色。Arctic 的高训练效率意味着 Snowflake 的客户和整个 AI 社区可以以更经济的方式训练定制模型。
如图 1 所示,Arctic 在企业智能指标上与 LLAMA 3 8B 和 LLAMA 2 70B 不相上下,而使用的训练计算成本不到一半。并且,尽管仅使用 1/17 倍的计算成本,Arctic 在编码(HumanEval + 和 MBPP+)、SQL(Spider)和指令遵循(IFEval)等指标上可与 Llama3 70B 媲美,即 Arctic 在保持整体性能竞争力的同时做到了这一点。
此外,Snowflake 还在学术基准上评估了 Arctic,涉及世界知识、常识推理和数学能力,完整评估结果如下图所示:
训练效率
为了达到上述训练效率,Arctic 采用一种独特的 Dense-MoE 混合 transformer 架构。它将一个 10B 的密集 transformer 模型与一个 128×3.66B 的残差 MoE MLP 结合起来,总共有 480B 参数和 17B 活跃参数,使用 top-2 gating 来进行选择。
设计和训练 Arctic 时,研究团队使用了以下三个关键的见解和创新:
MoE 专家数量多,并采取压缩技术
2021 年底,DeepSpeed 团队证明了 MoE 可以应用于自回归 LLM,从而显著提高模型质量而不增加计算成本。在设计 Arctic 时,研究团队注意到,基于这个思路,模型质量的提高主要取决于 MoE 模型中的专家数量和总参数量,以及这些专家的组合方式数量。
基于此,Arctic 被设计为在 128 个细粒度(fine-grained)专家之间分布 480B 参数,并使用 top-2 gating 来选择 17B 活跃参数。
架构与系统协同设计
在强大的 AI 训练硬件上训练具有大量专家的基本 MoE 架构非常低效,因为专家之间的全连接通信开销很高。Snowflake 发现,如果通信可以与计算重叠,就可以省去这种开销。
因此,Arctic 将密集 transformer 与残差 MoE 组件相结合(图 2),通过通信计算重叠,使训练系统能够实现良好的训练效率,隐藏了通信开销的大部分。
聚焦企业数据的课程学习
在代码生成和 SQL 等企业级指标上表现出色需要与通用指标截然不同的数据课程学习(Curriculum Learning)。通过数百次小规模的消融实验,该团队了解到通用技能,如常识推理,可以在初始阶段学习;而编码、数学和 SQL 等更复杂的指标可以在训练后期有效学习。
这可以类比于人类的生活教育,从简单到困难逐步获取能力。因此,Arctic 使用一个三阶段的课程学习,每个阶段的数据构成都不同,第一阶段侧重于通用技能(1T token),后两个阶段侧重于企业技能(1.5T 和 1T token)。
推理效率
推理效率也是模型高效的一个重要方面,影响到模型是否可以在低成本下进行实际部署。
Arctic 代表了 MoE 模型规模的一次飞跃,它比任何其他开源自回归 MoE 模型都使用了更多的专家和总参数。因此,Snowflake 需要几个创新思路来确保 Arctic 能够高效推理:
a) 在批大小较小的交互推理中,例如批大小为 1,MoE 模型的推理延迟受制于读取所有活跃参数的时间,推理是受内存带宽限制的。在这种批大小下,Arctic(17B 活跃参数)的内存读取量仅为 Code-Llama 70B 的 1/4、Mixtral 8x22B(44B 活跃参数)的 2/5,从而具备更快的推理速率。
b) 当批大小显著增加,例如每次前向传递数千个 token 时,Arctic 从内存带宽受限转变为计算受限,推理受到每个 token 的活跃参数的限制。在这方面,Arctic 的计算量是 CodeLlama 70B 和 Llama 3 70B 的 1/4。
为了实现计算受限的推理和与 Arctic 中少量活跃参数相匹配的高吞吐量,需要一个较大的批大小。实现这一点需要有足够的 KV 缓存来支持,同时还需要足够的内存来存储模型的近 500B 参数。
虽然具有挑战性,但 Snowflake 通过使用两个节点进行推理,并结合 FP8 权重、split-fuse 和连续批处理、节点内张量并行以及节点间 pipeline 并行等系统优化来实现。
研究团队已与 NVIDIA 展开密切合作,针对由 TensorRT-LLM 驱动的 NVIDIA NIM 微服务进行推理优化。同时,研究团队还与 vLLM 社区合作,内部开发团队也将在未来几周内为企业用例实现 Arctic 的高效推理。