Hugging Face Trackio リリース

Hugging Face は、軽量な実験トラッキングを目的としたオープンソースの Python ライブラリ Trackio を導入しました。メトリクスやパラメータを可視化するローカルダッシュボードを提供し、これらの結果を無料で Hugging Face Spaces に同期させ、公開・非公開のコラボレーションが可能です。

主な技術的利点

Trackio は、プロプライエタリまたは複雑な実験トラッキングツールに伴う一般的な課題を解決するよう設計されています。その主な利点は次のとおりです:

  • シームレスな共有と埋め込み: ユーザーはトレーニングプロットを iframe を介してドキュメントやブログ記事に直接埋め込むことができ、ステークホルダーはアカウントを作成せずにメトリクスを閲覧できます。
  • データのアクセシビリティと透明性: プロプライエタリ API を持つツールとは異なり、Trackio は記録されたデータの抽出と分析を簡単に行えます。特に nvidia-smi コマンドから直接データを取得して GPU のエネルギー使用量を追跡でき、モデルカードに追加して環境影響を定量化できます。
  • パフォーマンス最適化: ライブラリの軽量設計により、研究者はロギング時にテンソルを GPU から CPU に移すタイミングを制御でき、トレーニングのスループットへの影響を低減します。
  • ローカルファーストアーキテクチャ: ログとダッシュボードはデフォルトでローカルに保存され、クラウドへのオプション同期前にデータがユーザーの管理下にあることを保証します。

API 互換性と使用方法

Trackio は wandb のドロップイン置換として構築されています。API は wandb.initwandb.logwandb.finish と互換性があり、インポート文を import trackio as wandb に変更するだけでユーザーは移行できます。

インストール

Trackio は pip または uv でインストールできます。

pip install trackio

可視化と共有

ユーザーはコマンド trackio show または Python 関数 trackio.show() を使用してローカルダッシュボードを起動できます。ダッシュボードを Hugging Face Spaces に同期するには、初期化時に space_id を指定します。

trackio.init(project="fake-training", space_id="org_name/space_name")

Spaces の SQLite データベースが一時的であることによるデータ損失を防ぐため、Trackio はデータベースを Parquet データセットに自動変換し、5 分ごとに Hugging Face Dataset にバックアップします。ユーザーは trackio.init() 時に任意でカスタム dataset_id を指定できます。

エコシステム統合

Trackio は Hugging Face エコシステムとネイティブに統合されており、これらのライブラリの既存ユーザーは最小限の設定で利用できます。

  • Transformers Trainer: TrainingArgumentsreport_to="trackio" を設定すると、Trainer API が自動的にメトリクスを Trackio に記録します。
  • Accelerate: Acceleratorlog_with="trackio" で初期化することで、ユーザーは accelerator.log() を使用してトレーニングステップやメトリクスを記録できます。

設計原則と現在の制限

Trackio は以下の主要な原則に基づいて構築されています。

  • API 互換性: トラッキングライブラリ間のシームレスな移行を保証します。
  • 軽量コア: コードベースは Python で 1,000 行未満で、コミュニティが容易に修正できます。
  • オープンソースかつ無料: Hugging Face 上でのホスティングを含むすべての機能が無償で提供されます。
  • インフラストラクチャ: 可視化とデータ処理のために Hugging Face Datasets と Spaces 上に構築されています。

現在ベータ版であるため、アーティファクト管理や複雑な可視化はまだサポートされていません。Hugging Face はコミュニティに GitHub の issue を通じて機能リクエストの貢献を呼びかけています。

Sources