メインコンテンツへスキップ
機械学習ワークフローでモデル Artifacts をトラッキング、共有、管理するために、W&B をいつどのように使用するかを学びます。このページでは、実験のログ、レポートの生成、各タスクに適した W&B API を使用したログ済みデータへのアクセスについて説明します。 このチュートリアルでは、以下を使用します。
  • W&B Python SDK (wandb.sdk): トレーニング中に実験をログして監視するため。
  • W&B Public API (wandb.apis.public): ログされた実験データをクエリして分析するため。
  • W&B Reports and Workspaces API (wandb.wandb-workspaces): 調査結果を要約する Reports を作成するため。

サインアップしてAPIキーを発行する

W&B でお使いのマシンを認証するには、まず wandb.ai/settings で APIキーを発行する必要があります。APIキーをコピーして、安全に保管してください。

パッケージをインストールしてインポートする

この手順で使用する W&B ライブラリと、その他の必要なパッケージをインストールします。
W&B Python SDK をインポートします:
以下のコードブロックで、チームのentityを指定してください。

モデルをトレーニングする

次のコードは、基本的な機械学習ワークフローをシミュレートしています。モデルをトレーニングし、メトリクスをログし、モデルをアーティファクトとして保存します。 トレーニング中に W&B と連携するには、W&B Python SDK (wandb.sdk) を使用します。wandb.Run.log() を使用して損失をログし、次に wandb.Artifact を使用してトレーニング済みモデルをアーティファクトとして保存してから、最後に Artifact.add_file を使用してモデルファイルを追加します。
前のコードブロックの主なポイントは次のとおりです。
  • トレーニング中にメトリクスをログするには、wandb.Run.log() を使用します。
  • モデル (データセットなど) を アーティファクト として W&B プロジェクトに保存するには、wandb.Artifact を使用します。
モデルをトレーニングして アーティファクト として保存したら、W&B のRegistryに公開できます。wandb.Run.use_artifact() を使用してプロジェクトから アーティファクト を取得し、Model Registry で公開できるように準備します。wandb.Run.use_artifact() には主に次の 2 つの目的があります。
  • プロジェクトから アーティファクト オブジェクトを取得します。
  • アーティファクト を run への入力としてマークし、再現性とトレーサビリティを確保します。詳細は リネージ マップを作成して表示する を参照してください.

ダッシュボードでトレーニングデータを確認する

https://wandb.ai/login でアカウントにログインします Projectsmy-awesome-project (または前の手順でプロジェクト名として使用した名前) が表示されます。これをクリックして、プロジェクトの Workspace に入ります。 ここでは、これまでに実行したすべての run の詳細を確認できます。このスクリーンショットでは、コードを数回再実行した結果、複数の run が生成されています。各 run にはランダムに生成された名前が付けられます。
run 名、メトリクス、ステータス情報を含む表ビューで複数の run が表示されている W&B プロジェクトページ

モデルを W&B Registry に公開する

組織内の他のメンバーとモデルを共有するには、wandb.Run.link_artifact() を使用して コレクション に公開します。次のコードは、アーティファクトを Registry にリンクして、チームからアクセスできるようにします。
wandb.Run.link_artifact() を実行すると、モデル アーティファクト はRegistry内の DemoModels コレクションに追加されます。そこから、バージョン履歴、リネージ マップ、その他のメタデータなどの詳細を確認できます。 アーティファクト をRegistryにリンクする方法の詳細については、アーティファクト をRegistryにリンクするを参照してください。

推論用にRegistryからモデルのアーティファクトを取得する

推論にモデルを使用するには、wandb.Run.use_artifact() を使用して、公開済みのアーティファクトをRegistryから取得します。これによりアーティファクトオブジェクトが返され、その後 wandb.Artifact.download() を使用してアーティファクトをローカルファイルにダウンロードできます。
Registryからアーティファクトを取得する方法の詳細については、Registryからアーティファクトをダウンロードするを参照してください。 使用する機械学習フレームワークによっては、重みを読み込む前にモデルのアーキテクチャを再構築する必要がある場合があります。具体的な手順は、使用するフレームワークとモデルによって異なるため、ここでは省略します。

見つけた内容をreportで共有する

W&B Report and Workspace API はパブリックプレビューです。
作業内容を要約するには、report を作成して共有します。プログラムでreportを作成するには、W&B Report and Workspace API を使用します。 まず、W&B Reports API をインストールします。
次のコードブロックは、Markdown、パネルグリッドなどを含む複数のブロックで構成されたreportを作成します。さらにブロックを追加したり、既存のブロックの内容を変更したりして、reportをカスタマイズできます。 コードブロックの出力には、作成されたreportの URL へのリンクが表示されます。このリンクをブラウザで開くと、reportを表示できます。
プログラムでreportを作成する方法や、W&B App を使ってインタラクティブにreportを作成する方法について詳しくは、W&B Docs の Developer guide にある reportを作成する を参照してください。

Registryをクエリする

W&B Public APIs を使用すると、W&B の履歴データをクエリし、分析、管理できます。これは、アーティファクト のリネージを追跡したり、異なるバージョンを比較したり、モデルのパフォーマンスを経時的に分析したりする際に役立ちます。 次のコードブロックは、特定のコレクション内にあるすべての アーティファクト について、Model Registry をクエリする方法を示しています。コレクションを取得し、そのバージョンを順に処理して、各 アーティファクト の名とバージョンを出力します。
Registryのクエリについて詳しくは、Registryアイテムをクエリするを参照してください。