FairScale — это библиотека-расширение для PyTorch для высокопроизводительных вычислений и обучения на одной или нескольких машинах (нодах). Библиотека расширяет базовый функционал PyTorch через добавление нового функционала для проведения экспериментов.
Подробнее про библиотеку
На данный момент FairScale поддерживает:
- Параллелизм: распараллеливание пайплайна обучения (через fairscale.nn.Pipe);
- Шардированное обучение: шардирование состояния алгоритма оптимизации (fairscale.optim.oss), автоматический mixed precision и шардирование данных
- Масштабированная оптимизация: AdaScale SGD (из fairscale.optim import AdaScale)
Основной целью библиотеки является позволить исследователям повышать размер батчей данных без потери в точности модели. FairScale упрощает процесс параллелизации экспериментов без беспокойства о падении метрик и при равной или улучшенной эффективности использования GPU.
Пример использования Pipe:
`
import torch import fairscale model = torch.nn.Sequential(a, b, c, d) model = fairscale.nn.Pipe(model, balance=[2, 2], devices=[0, 1], chunks=8)
`