Web Analytics

pytorch-accelerated

⭐ 193 stars Polish by Chris-hughes10

🌐 Język

pytorch-accelerated

pytorch-accelerated to lekka biblioteka zaprojektowana, aby przyspieszyć proces trenowania modeli PyTorch poprzez udostępnienie minimalnej, ale rozszerzalnej pętli treningowej – zamkniętej w jednym obiekcie Trainer – która jest na tyle elastyczna, by obsłużyć większość przypadków użycia oraz pozwala na wykorzystanie różnych opcji sprzętowych bez konieczności zmiany kodu. pytorch-accelerated oferuje uproszczony zestaw funkcji i kładzie ogromny nacisk na prostotę i przejrzystość, aby umożliwić użytkownikom dokładne zrozumienie, co dzieje się "pod maską", ale bez konieczności pisania i utrzymywania kodu szablonowego samodzielnie! Główne cechy to:

zachowanie można dostosować przy użyciu dziedziczenia i/lub callbacków.
  • Obsługuje przypisywanie urządzeń, precyzję mieszaną, integrację z DeepSpeed, trening na wielu GPU i w trybie rozproszonym bez zmian w kodzie.
  • Wykorzystuje czyste komponenty PyTorch, bez dodatkowych modyfikacji ani wrapperów, i łatwo współpracuje
z innymi popularnymi bibliotekami, takimi jak
timm, transformers oraz torchmetrics. Włożono znaczący wysiłek, by każda część biblioteki – zarówno komponenty wewnętrzne, jak i zewnętrzne – była jak najprostsza i najbardziej przejrzysta, co ułatwia dostosowanie, debugowanie i zrozumienie dokładnie tego, co dzieje się w tle na każdym etapie; większość zachowań trenera jest zawarta w jednej klasie! W duchu Pythona nic nie jest ukryte, wszystko jest dostępne.

pytorch-accelerated jest dumnie i transparentnie zbudowany na bazie Hugging Face Accelerate, który odpowiada za przemieszczanie danych między urządzeniami i uruchamianie konfiguracji treningowych. Podczas dostosowywania trenera lub uruchamiania treningu użytkownicy są zachęcani do zapoznania się z dokumentacją Accelerate aby poznać wszystkie dostępne opcje; Accelerate zapewnia wygodne funkcje do operacji takich jak zbieranie tensorów i obcinanie gradientów, których użycie można zobaczyć w folderze examples pytorch-accelerated!

Aby dowiedzieć się więcej o motywacjach stojących za tą biblioteką oraz przeczytać szczegółowy przewodnik na start, sprawdź ten wpis na blogu.

Instalacja

pytorch-accelerated można zainstalować z pip, korzystając z poniższego polecenia:

pip install pytorch-accelerated
Aby uczynić pakiet możliwie jak najbardziej smukłym, domyślnie nie są dołączone pakiety wymagane do uruchomienia przykładów. Aby dołączyć te pakiety, możesz użyć następującego polecenia:

pip install pytorch-accelerated[examples]

Szybki start

Aby rozpocząć, po prostu zaimportuj i użyj Trainer z pytorch-accelerated, jak pokazano w poniższym fragmencie, a następnie uruchom trening, korzystając z accelerate CLI opisanego poniżej.

# 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()

Aby uruchomić trening za pomocą accelerate CLI , na swoim komputerze/komputerach uruchom:

accelerate config --config_file accelerate_config.yaml

i odpowiedz na zadane pytania. To wygeneruje plik konfiguracyjny, który zostanie użyty do poprawnego ustawienia domyślnych opcji podczas uruchamiania

accelerate launch --config_file accelerate_config.yaml train.py [--training-args]

Uwaga: Użycie accelerate CLI jest całkowicie opcjonalne, trening można również uruchomić w tradycyjny sposób używając:

python train.py / python -m torch.distributed ...

w zależności od konfiguracji infrastruktury, dla użytkowników, którzy chcą mieć większą kontrolę nad poleceniem uruchamiającym.

Bardziej złożone przykłady treningu można zobaczyć w folderze examples tu.

Alternatywnie, jeśli wolisz najpierw poznać podstawowe pojęcia, znajdziesz je w dokumentacji.

Użycie

Do kogo skierowany jest pytorch-accelerated?

aby skupić się na ciekawszych aspektach treningu.

Kiedy nie powinieneś używać pytorch-accelerated?

pomagającego w wyborze modelu, optymalizatora lub funkcji straty, prawdopodobnie lepszym wyborem będzie fastai. pytorch-accelerated skupia się wyłącznie na procesie treningowym, pozostawiając całą resztę po stronie użytkownika. najlepiej będzie bezpośrednio użyć Accelerate! Chociaż możliwa jest pełna personalizacja Trainer, pętla treningowa jest zasadniczo podzielona na kilka

różne metody, które musiałbyś nadpisać. Ale zanim pójdziesz, czy naprawdę pisanie tych pętli for jest aż tak ważne, żeby znowu zaczynać od zera 😉.

i chcesz wycisnąć maksimum wydajności z wybranego sprzętu, prawdopodobnie najlepiej będzie pozostać przy czystym PyTorch; każda wysokopoziomowa API staje się narzutem w wysoce wyspecjalizowanych przypadkach!

Podziękowania

Wiele aspektów projektowych i funkcjonalnych pytorch-accelerated zostało silnie zainspirowanych przez znakomite biblioteki i frameworki takie jak fastai, timm, PyTorch-lightning oraz Hugging Face Accelerate. Każde z tych narzędzi wywarło ogromny wpływ zarówno na tę bibliotekę, jak i na społeczność uczenia maszynowego, i ich wpływ nie może być wystarczająco doceniony!

pytorch-accelerated czerpał jedynie inspirację z tych narzędzi, a cała zawarta funkcjonalność została zaimplementowana od zera w sposób korzystny dla tej biblioteki. Jedynymi wyjątkami są niektóre skrypty w folderze examples, w których wykorzystano i zmodyfikowano istniejące zasoby, aby zaprezentować możliwości pytorch-accelerated; te przypadki są wyraźnie oznaczone, z podaniem uznania dla oryginalnych autorów.

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