[博客翻译]Meta如何大规模训练大型语言模型


原文地址:https://engineering.fb.com/2024/06/12/data-infrastructure/training-large-language-models-at-scale-meta/


随着我们专注于解决越来越复杂的AI问题,一个显著且具有挑战性的转变是训练大型语言模型(LLMs)所需的计算规模。过去,我们的AI模型训练通常涉及大量小型模型,这些模型需要相对较少的GPU来运行。比如,推荐系统(如新闻推送和排名算法)会处理大量信息,以提供精准的推荐,支撑着我们的大部分产品。

然而,随着生成式人工智能(GenAI)的到来,训练任务转向了少数几个大型任务。这意味着我们需要重新思考软件、硬件和网络基础设施如何协同工作,以支持这种大规模的计算需求。

大规模模型训练的挑战主要包括:

  1. 硬件可靠性:确保硬件稳定,减少因故障导致的中断。这需要严格的测试、质量控制和自动化故障检测和修复机制。

  2. 快速恢复:即使采取了预防措施,硬件故障仍会发生。一旦发生,我们需要迅速重启并重新初始化训练。

  3. 训练状态持久化:在故障后能继续从上次中断的地方开始,这就需要定期保存训练状态,并高效存储和检索数据。

  4. GPU间高效通信:大规模训练中,GPU间的数据同步至关重要。任何部分GPU间的通信延迟都可能拖慢整个过程,因此需要高性能网络和优化的数据传输协议。

为了应对这些挑战,Meta在基础设施各层进行了创新:

  • 训练软件:引入PyTorch等开源工具,加速研究到生产环境的转换,开发新的大规模训练算法,并整合新的软件工具和框架。

  • 调度:使用复杂算法合理分配资源,根据任务需求动态调整,确保资源利用率最大化。

  • 硬件:升级硬件性能,针对GenAI优化配