Psyche:利用分布式计算资源民主化大规模语言模型训练
人工智能的发展逐渐集中在大型企业手中,所需的计算资源庞大,普通人难以承担。这种集中化不仅限制了创新,还导致许多未充分利用的计算资源无法发挥其潜力。为此,Psyche 网络架构应运而生,通过创建去中心化的基础设施来改变 AI 模型开发的方式,使任何人都能参与训练大型语言模型(LLM)。 Psyche 的核心理念是利用分布式、异构的全球硬件资源来训练 LLM。传统的大型模型训练需要成千上万的加速器在单个位置协同工作,而 Psyche 则通过协调这些分布在全球的硬件,降低了单个节点所需资源的要求。这不仅减少了投资成本,还提高了资源利用率。 Psyche 基于 DisTrO(离散化传输优化)算法进行了改进,主要分为两个阶段: * 合作训练:从一个需许可的测试网络开始,逐步转向完全去中心化的环境。 * 推理和增强能力:引入强化学习机制,提高模型的推理能力和创新应用。 DisTrO 是一系列优化器,通过利用机器学习训练的一些意外特性,大幅压缩各节点之间传递的信息量。这一过程类似于 JPEG 压缩,通过离散余弦变换(DCT)将梯度信息转换到频域中,提取能量最高的前 k 个成分进行传递,从而减少通信带宽需求。此外,Psyche 实现了重叠训练,即节点在等待其他节点更新时可以继续训练下一个步骤,这显著提高了 GPU 的利用率。 Psyche 的系统架构使用 Rust 开发,基于 P2P 网络,能够协调多个并行运行的任务。该架构中主要有三个角色: * 协调器:管理训练任务的生命周期,包括等待成员加入、热身、实际训练、见证和冷处理。 * 参与者:负责下载模型、计算梯度并分享结果。 * 见证者:验证参与者活动,生成“见证证明”,并发送给协调器。 Psyche 引入了多种机制来提高系统的故障容忍能力。例如,如果节点在训练过程中出现问题,其他节点会向协调器发送健康检查请求。协调器根据这些信息决定是否移除故障节点,确保训练过程的连续性。此外,系统还会适时暂停和重启Epoch,以防参与节点数量过少导致任务无法在合理时间内完成。 首个 Psyche 运行项目将预训练一个具有 400 亿参数的模型,命名为 Consilience。该模型结合了 FineWeb(14 万亿词)、FineWeb-2(4 万亿词)和 The Stack V2(1 万亿词,原始数据为 0.2 万亿词)等多个数据集。Consilience 的设计目标是成为真正的基础模型,代表人类创造力的全部,而不仅仅是追求基准测试的高分。 Psyche 目前采用的工作验证方法主要包括重叠工作和结果范围检查。通过这些方法,系统可以检测节点是否诚信地贡献了计算资源。然而,由于训练过程本身的非确定性和 DisTrO 引入的额外变化,实际的验证方案仍需进一步研究和优化。Psyche 框架使大型模型的训练变得更加经济和高效。项目的发布旨在推动科研领域的广泛实验,未来希望能吸引更多多样化的研究人员进行并行测试,发现有潜力的新方向,并扩大研究规模。