Web Analytics

pytorch-accelerated

⭐ 193 stars Russian by Chris-hughes10

🌐 Язык

pytorch-accelerated

pytorch-accelerated — это легковесная библиотека, предназначенная для ускорения процесса обучения моделей PyTorch предоставляя минимальный, но расширяемый цикл обучения — инкапсулированный в одном объекте Trainer, который достаточно гибок для большинства сценариев использования и способен использовать различное аппаратное обеспечение без необходимости изменения кода. pytorch-accelerated предлагает упрощённый набор функций и делает акцент на простоте и прозрачности, чтобы пользователи могли точно понять, что происходит «под капотом», но при этом им не нужно было писать и поддерживать шаблонный код самостоятельно! Основные возможности:

поведение можно настроить с помощью наследования и/или колбэков.
  • Автоматическая работа с размещением устройств, смешанной точностью, интеграцией DeepSpeed, обучением на нескольких GPU и распределённым обучением без изменений в коде.
  • Использует чистые компоненты PyTorch, без дополнительных модификаций или обёрток, и легко взаимодействует
с другими популярными библиотеками, такими как
timm, transformers и torchmetrics. Было приложено значительное усилие для того, чтобы каждая часть библиотеки — как внутренние, так и внешние компоненты — были максимально понятными и простыми, что облегчает настройку, отладку и позволяет точно понять, что происходит за кулисами на каждом этапе; большая часть поведения тренера содержится в одном классе! В духе Python ничего не скрывается и всё доступно.

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 os

from 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-accelerated?

которое помогает выбрать модель, оптимизатор или функцию потерь, вам, вероятно, больше подойдёт fastai. pytorch-accelerated фокусируется только на процессе обучения, все остальные аспекты остаются на ответственности пользователя. вам, вероятно, лучше использовать Accelerate напрямую! Хотя можно кастомизировать каждый элемент Trainer, цикл обучения по сути разделён на несколько

различные методы, которые вам придется переопределить. Но, прежде чем вы уйдете, действительно ли написание этих for циклов настолько важно, чтобы снова начинать все с нуля 😉.

Благодарности

Многие аспекты дизайна и функций pytorch-accelerated были вдохновлены рядом отличных библиотек и фреймворков, таких как fastai, timm, PyTorch-lightning и Hugging Face Accelerate. Каждый из этих инструментов оказал огромное влияние как на эту библиотеку, так и на сообщество машинного обучения, и их значение невозможно переоценить!

pytorch-accelerated взял лишь вдохновение от этих инструментов, и вся реализованная функциональность была создана с нуля таким образом, чтобы принести пользу этой библиотеке. Единственные исключения — некоторые скрипты из папки examples в которых существующие ресурсы были взяты и модифицированы для демонстрации возможностей pytorch-accelerated; эти случаи четко обозначены, с признанием заслуг оригинальных авторов.

--- Tranlated By Open Ai Tx | Last indexed: 2026-02-28 ---