pytorch-accelerated
pytorch-accelerated — это легковесная библиотека, предназначенная для ускорения процесса обучения моделей PyTorch
предоставляя минимальный, но расширяемый цикл обучения — инкапсулированный в одном объекте Trainer,
который достаточно гибок для большинства сценариев использования и способен использовать различное аппаратное обеспечение
без необходимости изменения кода.
pytorch-accelerated предлагает упрощённый набор функций и делает акцент на простоте и прозрачности,
чтобы пользователи могли точно понять, что происходит «под капотом», но при этом им не нужно было писать и поддерживать шаблонный код самостоятельно!
Основные возможности:
- Простой и замкнутый, но легко настраиваемый цикл обучения, который должен работать «из коробки» в стандартных случаях;
- Автоматическая работа с размещением устройств, смешанной точностью, интеграцией DeepSpeed, обучением на нескольких GPU и распределённым обучением без изменений в коде.
- Использует чистые компоненты PyTorch, без дополнительных модификаций или обёрток, и легко взаимодействует
- Малый, упрощённый API обеспечивает минимальную кривую обучения для существующих пользователей PyTorch.
pytorch-accelerated с гордостью и прозрачно построен поверх
Hugging Face Accelerate, который отвечает за
перемещение данных между устройствами и запуск конфигураций обучения. При настройке тренера или запуске
обучения пользователям рекомендуется ознакомиться с документацией Accelerate,
чтобы понять все доступные опции; Accelerate предоставляет удобные функции для операций, таких как сбор тензоров
и обрезка градиентов, использование которых можно увидеть в папке
примеров pytorch-accelerated!
Чтобы узнать больше о мотивациях создания этой библиотеки и ознакомиться с подробным руководством по началу работы, прочитайте этот пост в блоге.
Установка
pytorch-accelerated можно установить из pip с помощью следующей команды:
pip install pytorch-acceleratedЧтобы сделать пакет как можно более компактным, необходимые для запуска примеров пакеты не включены по умолчанию. Чтобы добавить эти пакеты, вы можете использовать следующую команду:
pip install pytorch-accelerated[examples]Быстрый старт
Чтобы начать, просто импортируйте и используйте Trainer из pytorch-accelerated, как показано в следующем фрагменте,
а затем запустите обучение с помощью
accelerate CLI,
описанного ниже.
# examples/core/train_mnist.py
import osfrom torch import nn, optim
from torch.utils.data import random_split
from torchvision import transforms
from torchvision.datasets import MNIST
from pytorch_accelerated import Trainer
class MNISTModel(nn.Module):
def __init__(self):
super().__init__()
self.main = nn.Sequential(
nn.Linear(in_features=784, out_features=128),
nn.ReLU(),
nn.Linear(in_features=128, out_features=64),
nn.ReLU(),
nn.Linear(in_features=64, out_features=10),
)
def forward(self, input):
return self.main(input.view(input.shape[0], -1))
def main():
dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor())
train_dataset, validation_dataset, test_dataset = random_split(dataset, [50000, 5000, 5000])
model = MNISTModel()
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)
loss_func = nn.CrossEntropyLoss()
trainer = Trainer(
model,
loss_func=loss_func,
optimizer=optimizer,
)
trainer.train(
train_dataset=train_dataset,
eval_dataset=validation_dataset,
num_epochs=8,
per_device_batch_size=32,
)
trainer.evaluate(
dataset=test_dataset,
per_device_batch_size=64,
)
if __name__ == "__main__":
main()
Чтобы запустить обучение с помощью accelerate CLI
, на вашей машине(ах) выполните: accelerate config --config_file accelerate_config.yaml
и ответьте на предложенные вопросы. Это создаст конфигурационный файл, который будет использован для корректной настройки стандартных параметров при запуске
accelerate launch --config_file accelerate_config.yaml train.py [--training-args]
Примечание: Использование accelerate CLI полностью необязательно, обучение можно также запускать привычным способом:
python train.py / python -m torch.distributed ...
в зависимости от конфигурации вашей инфраструктуры, для пользователей, которые хотят сохранить более детальный контроль над командой запуска.
Более сложные примеры обучения можно увидеть в папке examples здесь.
В качестве альтернативы, если вы предпочитаете сначала разобраться с основными концепциями, это можно найти в документации.
Использование
Для кого предназначен pytorch-accelerated?
- Для пользователей, знакомых с PyTorch, которые хотят избежать написания стандартного шаблона цикла обучения,
- Для пользователей, которым нравится и удобно самостоятельно выбирать и создавать модели, функции потерь, оптимизаторы и датасеты.
- Для пользователей, ценящих простой и упрощённый набор функций, где поведение легко отлаживать, понимать и анализировать!
Когда НЕ следует использовать pytorch-accelerated?
- Если вы ищете комплексное решение "от начала до конца", охватывающее всё от загрузки данных до инференса,
pytorch-accelerated фокусируется только на процессе обучения, все остальные
аспекты остаются на ответственности пользователя.
- Если вы хотите полностью самостоятельно писать цикл обучения, просто без всех сложностей управления устройствами,
Trainer, цикл обучения по сути разделён на несколькоразличные методы, которые вам придется переопределить. Но, прежде чем вы уйдете, действительно ли написание этих for циклов настолько важно, чтобы снова начинать все с нуля 😉.
- Если вы работаете над кастомным, высоко сложным случаем, который не соответствует типичным шаблонам обучающих циклов и хотите выжать максимум производительности из выбранного оборудования, вам, вероятно, лучше использовать чистый PyTorch; любой высокоуровневый API становится лишней нагрузкой в сильно специализированных случаях!
Благодарности
Многие аспекты дизайна и функций pytorch-accelerated были вдохновлены рядом отличных библиотек и фреймворков, таких как fastai, timm, PyTorch-lightning и Hugging Face Accelerate. Каждый из этих инструментов оказал огромное влияние как на эту библиотеку, так и на сообщество машинного обучения, и их значение невозможно переоценить!
pytorch-accelerated взял лишь вдохновение от этих инструментов, и вся реализованная функциональность была создана с нуля таким образом, чтобы принести пользу этой библиотеке. Единственные исключения — некоторые скрипты из папки
examples
в которых существующие ресурсы были взяты и модифицированы для демонстрации возможностей pytorch-accelerated;
эти случаи четко обозначены, с признанием заслуг оригинальных авторов.
--- Tranlated By Open Ai Tx | Last indexed: 2026-02-28 ---