2024 年 6 月 11 日,莫斯科——跨国科技公司 Yandex 最近推出了 YaFSDP,这是一种用于训练大型语言模型 (LLM) 的开源方法。YaFSDP 是目前最有效的公开可用工具,用于增强 GPU 通信并减少 LLM 训练中的内存使用量,与 FSDP 相比,其训练速度提升最高可达 26%,具体取决于架构和参数数量。通过使用 YaFSDP 减少 LLM 的训练时间可以节省高达 20% 的 GPU 资源。
Yandex 承诺为全球人工智能社区的发展做出贡献,将YaFSDP开源提供给全球的 LLM 开发人员和人工智能爱好者即是履行此承诺的其中一步。
“目前,我们正在积极尝试各种模型架构和参数大小,以扩展 YaFSDP 的多功能性,”Yandex 高级开发专家、YaFSDP 团队成员 Mikhail Khruschev 指出,“我们很高兴与全球 ML 社区分享我们在 LLM 训练方面的研发成果,希望能为全球研究人员和开发者获得更多的开源工具和更高的效率做出贡献。”
YaFSDP 案例
LLM 训练是一个耗时且资源密集的过程。机器学习工程师和自主开发 LLM 的公司投入了大量的时间和 GPU 资源(相当于金钱)来训练这些模型。模型越大,其训练所需的时间和费用就越高。
Yandex 的 YaFSDP 优化了学习速度和性能,使全球的 AI 开发人员在训练模型时可以使用更少的计算能力和 GPU 资源。例如,在涉及具有 700 亿个参数之模型的预训练场景中,使用 YaFSDP 可以节省大约 150 个 GPU 的资源,这意味着每月可以节省大约 50 万美元到 150 万美元(取决于虚拟 GPU 提供商或平台)。
YaFSDP 通过消除 GPU 通信效率低下来提升效能,确保训练时只需必要的处理器内存,并使 GPU 交互不间断。
YaFSDP 的训练效率
YaFSDP 是 FSDP 的增强版,在 LLM 训练中最耗通信的阶段(如预训练、对齐和微调)中,其表现优于 FSDP 方法。YaFSDP 在 Llama 2 和 Llama 3 上展示的最终提速表明训练速度显著提高,在 Llama 2 70B 和 Llama 3 70B 上分别达到 21% 和 26%。
Mikhail Khruschev 表示:“YaFSDP 在 130 亿至 700 亿个参数的模型上表现出色,在 300 亿至 700 亿个参数范围内表现尤为惊人。目前,YaFSDP 最适合基于 LLaMA 架构的广泛使用之开源模型。”
YaFSDP 并不是 Yandex 的第一个开源工具。该公司之前曾分享过其他几款在 ML 社区中很受欢迎的工具,包括:
· CatBoost:一种高性能的基于决策树之梯度提升库。
· YTsaurus:分布式存储和处理的大数据平台。
· AQLM:最先进的量化算法之一,用于大型语言模型的极限压缩。由 Yandex Research、HSE 大学、 IST Austria 及 NeuralMagic 共同开发。
· Petals:是一个旨在简化 LLM 训练和微调过程的库,由 Yandex Research、HSE 大学、华盛顿大学、Hugging Face、巴黎-萨克雷高等经济学院和 Yandex 数据分析学院合作开发。
关于Yandex
Yandex 是一家跨国科技公司,致力于打造基于机器学习的智能产品和服务。该公司的目标是帮助消费者和企业更好地驾驭线上和线下世界。自 1997 年以来,Yandex 一直提供世界一流的本地相关搜索和信息服务,还为全球数百万消费者开发了市场领先的按需交通服务、导航产品和其他移动应用程序。
– – – – –
参考信息
在大型语言模型 (LLM) 训练期间,开发人员必须有效管理三种主要资源:计算能力、处理器内存和处理器通信。YaFSDP 保护了前两个资源,这有助于加速 LLM 训练过程。
LLM 训练依赖于组织成集群的大量 GPU——互连的图形处理器阵列,可以执行训练具有数十亿个参数的模型所需的大量计算。在集群中的处理器之间分配计算需要不断通信,这通常会成为“瓶颈”,减慢训练过程并导致计算能力的低效使用。
为了克服这一瓶颈,Yandex 开发人员创建了 YaFSDP,这是一种改善 GPU 通信并优化学习速度和性能的方法。与 Yandex 的其他性能增强解决方案结合使用时,该方法可将某些模型的训练过程加速高达 45%。
YaFSDP 的工作原理是消除 GPU 通信效率低下的问题,从而优化网络使用率并减少内存负载。它确保训练时只需要必要的处理器内存,并使 GPU 交互不间断,从而促进进一步的优化,例如最大限度地减少处理器通信时间。这可以显著提高性能和内存效率。
YaFSDP 方法可以有效应用于基于 transformer 的多层文本生成模型(多层感知器),其中以 LLaMA 类模型最为典型。在 700 亿参数模型的预训练场景中,使用 YaFSDP 可以节省约 150 个 GPU 的资源。
与 FSDP 相比,YaFSDP 在 Llama 2 和 Llama 3 上表现出的最终提速表明训练效率显著提高。
模型 | GPU数量 | 输入序列长度 | 具有激活检查点的层数 | 提速 |
Llama 2 7B | 64 | 2048 | 0 | 9.92% |
Llama 2 7B | 64 | 4096 | 0 | 3.43% |
Llama 2 13B | 128 | 2048 | 0 | 12.10% |
Llama 2 13B | 128 | 4096 | 0 | 3.49% |
Llama 2 34B | 128 | 2048 | 0 | 20.70% |
Llama 2 34B | 256 | 2048 | 0 | 21.99% |
Llama 2 34B | 256 | 4096 | 5 | 8.35% |
Llama 2 70B | 256 | 2048 | 10 | 21.48% |
Llama 2 70B | 256 | 4096 | 50 | 7.17% |
Llama 3 8B | 64 | 2048 | 0 | 11.91% |
Llama 3 8B | 64 | 4096 | 0 | 7.86% |
Llama 3 70B | 256 | 2048 | 20 | 26.60% |
发表评论