Web Analytics

pytorch-accelerated

⭐ 192 stars Japanese by Chris-hughes10

pytorch-accelerated

pytorch-accelerated は、PyTorchモデルのトレーニングプロセスを加速するために設計された軽量ライブラリで、 最小限ながら拡張可能なトレーニングループを提供します - それは単一の Trainer オブジェクトにカプセル化されており、多くのユースケースに対応可能で、コード変更なしで異なるハードウェア オプションを利用できる柔軟性を持っています。 pytorch-accelerated は洗練された機能セットを提供し、シンプルさ透明性を強く重視しており、 ユーザーが内部で何が起きているかを正確に理解できるようにしつつ、自分でボイラープレートコードを書いて維持する必要をなくします! 主な特徴は以下の通りです:

振る舞いは継承やコールバックを用いてカスタマイズ可能です。 transformerstorchmetrics などの他の人気ライブラリと簡単に連携可能です。 ライブラリのあらゆる部分 - 内部および外部のコンポーネントの両方 - が可能な限り明確かつシンプルになるように多大な努力が払われており、 カスタマイズやデバッグが容易で、各ステップの裏側で何が起きているかを正確に理解できます;トレーナーの 動作の大部分は単一のクラスに収められています! Pythonの精神に則り、何も隠されておらず全てにアクセス可能です。

pytorch-accelerated は誇りを持って透明に Hugging Face Accelerate の上に構築されており、これは デバイス間のデータ移動やトレーニング設定の起動を担当しています。トレーナーをカスタマイズしたり トレーニングを開始する際は、利用可能なすべてのオプションを理解するために Accelerateのドキュメント を参照することが推奨されます; Accelerate はテンソルの集約や勾配クリッピングなどの便利な関数を提供しており、その使用例は pytorch-acceleratedexamples フォルダで見ることができます!

このライブラリの動機や詳細な入門ガイドについては、このブログ記事 をご覧ください。

インストール

pytorch-accelerated は以下のコマンドでpipからインストールできます:

pip install pytorch-accelerated
パッケージをできるだけスリムにするために、例を実行するために必要なパッケージはデフォルトで含まれていません。これらのパッケージを含めるには、次のコマンドを使用できます:

pip install pytorch-accelerated[examples]

クイックスタート

始めるには、以下のスニペットで示されているように、pytorch-acceleratedのTrainerをインポートして使用し、 その後、以下に記載された 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を使い続けるのが最善です; 高度なAPIは高度に専門化されたケースではオーバーヘッドになります!

謝辞

pytorch-acceleratedの設計と機能の多くは、fastaitimmPyTorch-lightning、およびHugging Face Accelerateなどの 優れたライブラリやフレームワークから大きな影響を受けています。これらのツールはこのライブラリと機械学習コミュニティの両方に 非常に大きな影響を与えており、その影響力は言い尽くせません!

pytorch-acceleratedはこれらのツールからインスピレーションを得ていますが、含まれる全ての機能はこのライブラリに 利益をもたらすよう一から実装されています。唯一の例外は、 examples フォルダ内のいくつかのスクリプトで、既存のリソースを取り入れpytorch-acceleratedの機能を示すために修正したものです; これらの場合は明確にマークされ、元の作者に謝辞が示されています。

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