描述
FairScale 是一个用于高性能和大规模训练的 PyTorch 扩展库。该库扩展了基本的 PyTorch 功能,同时添加了新的最先进的扩展技术。FairScale 以可组合模块和易于使用的 API 的形式提供最新的分布式训练技术。当研究人员尝试用有限资源扩展模型时,这些 API 是其工具箱中的基本组成部分。
FairScale 的设计遵循以下价值观:
-
易用性 - 用户应该能够以最小的认知负担理解和使用 FairScale API。
-
模块化 - 用户应该能够无缝地将多个 FairScale API 组合到他们的训练循环中。
-
性能 - FairScale API 在扩展性和效率方面提供最佳性能。
观看介绍视频
安装
要安装 FairScale,请参阅以下说明。 您应该能够使用 pip 或 conda 安装软件包,或直接从源代码构建。
入门
完整的文档包含入门指南、深入探讨以及有关各种 FairScale API 的教程。
FSDP
FullyShardedDataParallel (FSDP) 是扩展大型神经网络模型的推荐方法。 这个库已经上游到 PyTorch。 这里的 FSDP 版本用于历史参考以及在扩展技术研究中进行新奇想法的实验。请参阅以下博客 了解如何使用 FairScale FSDP 以及它是如何工作的。
测试
我们使用 circleci 测试 FairScale,使用以下 PyTorch 版本(使用 CUDA 11.2):
- 最新的稳定版本(例如 1.10.0)
- 最新的 LTS 版本(例如 1.8.1)
- 最近的每日构建版本(例如 1.11.0.dev20211101+cu111)
如果您在安装过程中遇到问题,请创建一个问题。
贡献者
我们欢迎贡献!请查看 CONTRIBUTING 说明,了解如何为 FairScale 做出贡献。
许可证
FairScale 根据 BSD-3-Clause 许可证 授权。
fairscale.nn.pipe 是从 torchgpipe 分叉而来,版权所有 2019,Kakao Brain,根据 Apache 许可证 授权。
fairscale.nn.model_parallel 是从 Megatron-LM 分叉而来,版权所有 2020,NVIDIA CORPORATION,根据 Apache 许可证 授权。
fairscale.optim.adascale 是从 AdaptDL 分叉而来,版权所有 2020,Petuum, Inc.,根据 Apache 许可证 授权。
fairscale.nn.misc.flatten_params_wrapper 是从 PyTorch-Reparam-Module 分叉而来,版权所有 2018,Tongzhou Wang,根据 MIT 许可证 授权。
引用 FairScale
如果您在您的出版物中使用了 FairScale,请使用以下 BibTeX 条目进行引用。
@Misc{FairScale2021,
author = {{FairScale authors}},
title = {FairScale: A general purpose modular PyTorch library for high performance and large scale training},
howpublished = {\url{https://github.com/facebookresearch/fairscale}},
year = {2021}
}