torchmetrics: 分散トレーニングと評価のためのスケーラブルな PyTorch メトリクスライブラリ

torchmetrics: 分散トレーニングと評価のためのスケーラブルな PyTorch メトリクスライブラリ

何を解決するか

TorchMetrics は、PyTorch アプリケーションのための機械学習メトリクスを計算するための標準化された方法を提供します。複数のバッチや分散デバイス(複数の GPU やノードなど)にわたってメトリクスを蓄積および同期するために通常必要となるボイラープレートコードを排除し、結果の再現性とスケーラビリティを確保します。

仕組み

このライブラリは、メトリクスを計算するための 2 つの主要な方法を提供します:

  • Module-based metrics: これらは PyTorch モジュールのように動作し、内部状態を保持してバッチ間でデータを自動的に追跡および蓄積します。これらは複数のデバイスにわたる同期を自動的に処理するため、CPU、シングル GPU、またはマルチ GPU セットアップと互換性があります。
  • Functional metrics: これらは単純な Python 関数であり、テンソルをインプットとして受け取り、状態を保持せずに即座にメトリクス値を返します。

ユーザーは、torchmetrics.Metric をサブクラス化して、メトリクスがどのように状態を更新し、最終的な結果を計算するかを定義することで、カスタムメトリクスを作成することもできます。

対象ユーザー

多様なドメイン(音声、テキスト、画像など)にわたってモデルのパフォーマンスを追跡する必要がある PyTorch 開発者や機械学習エンジニア、および大規模な分散トレーニングに取り組んでいる人々向けに設計されています。

ハイライト

  • Extensive Library: 分類、回帰、セグメンテーション、音声、テキスト、およびマルチモーダルデータに対応する 100 以上の組み込みメトリクスが含まれています。
  • Distributed Support: マルチデバイストレーニングのための組み込みの自動同期および蓄積。
  • Customizable: ベースクラスをサブクラス化することでカスタムメトリクスを実装するための簡単な API。
  • Visualization: メトリクスの進捗を時間の経過とともに可視化するための統合されたプロットサポート。

Sources