W&B Public APIを使用して、データの構成やエクスポートを行うことができます。Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-update-training-api-26.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
この機能には python>=3.8 が必要です。
MLFlow からのデータインポート
W&B は、Experiments 、Runs 、Artifacts 、メトリクス、その他のメタデータを含む MLFlow からのデータインポートをサポートしています。 依存関係のインストール:importer.collect_runs() は MLFlow サーバーからすべての Runs を収集します。特定のサブセットをアップロードしたい場合は、独自の Runs イテラブルを構築してインポーターに渡すことができます。
Databricks MLFlow からインポートする場合は、まず Databricks CLI を設定 する必要がある場合があります。前のステップで
mlflow-tracking-uri="databricks" を設定してください。artifacts=False を渡します:
Namespace を渡すことができます:
データのエクスポート
Public API を使用して、W&B に保存したデータのエクスポートや更新を行うことができます。この API を使用する前に、スクリプトからデータをログ記録してください。詳細は クイックスタート を参照してください。 Public API のユースケース- データのエクスポート: Jupyter Notebook でカスタム分析を行うためにデータフレームをプルします。データを探索した後は、新しい分析用 Run を作成して結果をログ記録することで、分析結果を同期できます。例:
wandb.init(job_type="analysis") - 既存の Runs の更新: W&B Run に関連付けてログ記録されたデータを更新できます。例えば、アーキテクチャや当初ログ記録していなかったハイパーパラメータなどの追加情報を含めるために、一連の Runs の設定(config)を更新したい場合などです。
APIキーの作成
APIキーは、お使いのデバイスを W&B に対して認証します。 To create an API key, select the Personal API key or Service Account API key tab for details.- Personal API key
- Service account API key
To create a personal API key owned by your user ID:
- Log in to W&B, click your user profile icon, then click User Settings.
- Click Create new API key.
- Provide a descriptive name for your API key.
- Click Create.
- Copy the displayed API key immediately and store it securely.
Store and handle API keys securely
API keys provide access to your W&B account and should be protected like passwords. Follow these best practices:Recommended storage methods
- Secrets manager: Use a dedicated secrets management system such as AWS Secrets Manager, HashiCorp Vault, Azure Key Vault, or Google Secret Manager.
- Password manager: Use a reputable password manager application.
- OS-level keychains: Store keys in macOS Keychain, Windows Credential Manager, or Linux secret service. Not suggested for production.
What to avoid
- Never commit API keys to version control systems such as Git.
- Do not store API keys in plain text configuration files.
- Do not pass API keys on the command line, because they will be visible in the output of OS commands like
ps. - Avoid sharing API keys through email, chat, or other unencrypted channels.
- Do not hard-code API keys in your source code.
Environment variables
When using API keys in your code, pass them through environment variables:SDK version compatibility
New API keys are longer than legacy keys. When authenticating with older versions of thewandb or weave SDKs, you may encounter an API key length error.
Solution: Update to a newer SDK version:
-
wandbSDK v0.22.3+ -
weaveSDK v0.52.17+
WANDB_API_KEY environment variable as a workaround.
Run パスの確認
Public API を使用するには、多くの場合<entity>/<project>/<run_id> という形式の Run パスが必要になります。アプリの UI で Run ページを開き、Overviewタブ をクリックして Run パスを取得してください。
Run データのダウンロード
完了した Run またはアクティブな Run からデータをダウンロードします。一般的な用途としては、Jupyter Notebook でのカスタム分析用にデータフレームをダウンロードしたり、自動化された環境でカスタムロジックを使用したりすることが挙げられます。| 属性 | 意味 |
|---|---|
run.config | トレーニング Run のハイパーパラメータや、データセット Artifact を作成する Run の前処理メソッドなど、Run の設定情報の辞書です。これらは Run の「入力」と考えてください。 |
run.history() | 損失(loss)など、モデルのトレーニング中に変化する値を格納するための辞書のリストです。run.log() コマンドはこのオブジェクトに値を追加します。 |
run.summary | Run の結果を要約する情報の辞書です。精度(accuracy)や損失などのスカラー値、または大きなファイルが含まれます。デフォルトでは、run.log() はサマリーをログ記録された時系列データの最終値に設定します。サマリーの内容を直接設定することもできます。サマリーは Run の「出力」と考えてください。 |
api.flush() を呼び出して更新された値を取得してください。
各種 Run 属性の理解
以下のコードスニペットは、Run の作成、データのログ記録、そして Run 属性へのアクセス方法を示しています:run.config
run.summary
サンプリング
デフォルトのhistory メソッドは、メトリクスを固定数にサンプリングします(デフォルトは 500 です。これは samples 引数で変更可能です)。大規模な Run のすべてのデータをエクスポートしたい場合は、run.scan_history() メソッドを使用できます。詳細は API リファレンス を参照してください。
複数の Runs へのクエリ
- DataFrame と CSV
- MongoDB スタイル
このサンプルスクリプトは、プロジェクト内の Runs を検索し、名前、config、サマリー統計を含む CSV を出力します。
<entity> と <project> を、ご自身の W&B Entity と Project 名に置き換えてください。api.runs を呼び出すと、反復可能でリストのように動作する Runs オブジェクトが返されます。デフォルトでは、このオブジェクトは必要に応じて 50 個ずつの Runs を順次ロードしますが、per_page キーワード引数で 1 ページあたりのロード数を変更できます。
api.runs は order キーワード引数も受け取ります。デフォルトの順序は -created_at です。昇順にするには +created_at を指定します。また、config やサマリーの値でソートすることも可能です。例えば、summary.val_acc や config.experiment_name などです。
エラーハンドリング
W&B サーバーとの通信中にエラーが発生した場合、wandb.CommError が発生します。元の例外は exc 属性を介して調査できます。
API を介した最新の git コミットの取得
UI では、Run をクリックし、Run ページの Overview タブをクリックすると最新の git コミットを確認できます。また、wandb-metadata.json ファイルにも含まれています。Public API を使用すると、run.commit で git ハッシュを取得できます。
Run 実行中の Run 名と ID の取得
wandb.init() を呼び出した後、スクリプトからランダムな Run ID または人間が読める Run 名にアクセスできます:
- ユニークな Run ID (8文字のハッシュ):
run.id - ランダムな Run 名 (人間が読める形式):
run.name
- Run ID: 生成されたハッシュのままにしておきます。これはプロジェクト内の Runs 全体で一意である必要があります。
- Run 名: チャート上の異なるラインを区別できるように、短くて読みやすく、できれば一意なものにしてください。
- Run ノート: Run で何を行っているかの簡単な説明を入れるのに最適です。
wandb.init(notes="ここにノートを記載")で設定できます。 - Run タグ: Run タグで動的に追跡し、UI のフィルタを使用して関心のある Runs だけに絞り込みます。スクリプトからタグを設定し、その後 UI(Runs テーブルと Run ページの Overview タブの両方)で編集できます。詳細な手順は こちら を参照してください。
Public API の例
matplotlib や seaborn で可視化するためのデータエクスポート
一般的なエクスポートパターンについては、API の例 を確認してください。また、カスタムプロットや展開された Runs テーブルのダウンロードボタンをクリックして、ブラウザから CSV をダウンロードすることもできます。Run からのメトリクス読み取り
この例では、"<entity>/<project>/<run_id>" に保存された Run に対して、run.log({"accuracy": acc}) で保存されたタイムスタンプと精度を出力します。
Runs のフィルタリング
MongoDB クエリ言語を使用してフィルタリングできます。日付
Run から特定のメトリクスを読み取る
Run から特定のメトリクスを取得するには、keys 引数を使用します。run.history() を使用する場合のデフォルトのサンプル数は 500 です。特定のメトリクスを含まないログステップは、出力データフレームで NaN として表示されます。keys 引数を使用すると、API はリストされたメトリクスキーを含むステップをより頻繁にサンプリングします。
2 つの Runs の比較
これはrun1 と run2 で異なる config パラメータを出力します。
Run 終了後のメトリクス更新
この例では、以前の Run の精度を0.9 に設定します。また、以前の Run の精度ヒストグラムを numpy_array のヒストグラムに変更します。
完了した Run のメトリクス名の変更
この例では、テーブル内のサマリー列の名前を変更します。列名の変更はテーブルにのみ適用されます。チャートは引き続き元の名前でメトリクスを参照します。
既存の Run の config 更新
この例では、設定項目の 1 つを更新します。システムリソース消費量(System metrics)の CSV エクスポート
以下のスニペットは、システムリソース消費量を取得し、CSV に保存します。サンプリングされていないメトリクスデータの取得
ヒストリーからデータを取得する場合、デフォルトでは 500 ポイントにサンプリングされます。run.scan_history() を使用して、ログ記録されたすべてのデータポイントを取得します。以下は、ヒストリーにログ記録されたすべての loss データポイントをダウンロードする例です。
ヒストリーからのページ分割されたデータの取得
バックエンドでのメトリクス取得が遅い場合や API リクエストがタイムアウトする場合は、scan_history のページサイズを小さくして、個々のリクエストがタイムアウトしないように調整できます。デフォルトのページサイズは 500 です。
プロジェクト内のすべての Runs からメトリクスを CSV エクスポート
このスクリプトは、プロジェクト内の Runs をプルし、その名前、config、サマリー統計を含むデータフレームと CSV を生成します。<entity> と <project> をご自身の環境に合わせて置き換えてください。
Run の開始時間の取得
このコードスニペットは、Run が作成された時間を取得します。終了した Run へのファイルのアップロード
以下のコードスニペットは、選択したファイルを終了した Run にアップロードします。Run からのファイルのダウンロード
これは cifar プロジェクトの Run ID uxte44z7 に関連付けられた “model-best.h5” ファイルを検索し、ローカルに保存します。Run からのすべてのファイルのダウンロード
これは Run に関連付けられたすべてのファイルを検索し、ローカルに保存します。特定の Sweep からの Runs 取得
このスニペットは、特定の Sweep に関連付けられたすべての Runs をダウンロードします。Sweep からのベスト Run の取得
以下のスニペットは、指定した Sweep からベストな Run を取得します。best_run は、Sweep 設定の metric パラメータで定義された最高のメトリクスを持つ Run です。
Sweep からのベストモデルファイルのダウンロード
このスニペットは、モデルファイルをmodel.h5 として保存した Runs を持つ Sweep から、検証精度が最も高いモデルファイルをダウンロードします。