メインコンテンツへスキップ
W&B Weave をお探しですか? 生成 AI アプリ構築向けの W&B のツールスイートについては、こちらのドキュメントを参照してください: wandb.me/weave
クエリパネルを使用すると、データをクエリしてインタラクティブに可視化できます。 クエリパネルは、次の 3 つの要素で構成されます。
  1. : 選択したデータ。
  2. 設定: パネルタイプや歯車メニューのオプションなど、パネルの省略可能な設定。
  3. 結果パネル: 表やプロットなど、結果の表示方法。
試せるさまざまなインタラクティブな例については、公開 Query panel examples report を参照してください。クエリ構文を順を追って学ぶには、Query panel tutorial report を参照してください。生成されたタイプと Ops の一覧は、query expression language overview にあります。
クエリパネル

クエリパネルを作成する

Workspaceまたはレポート内にクエリを追加します。
  1. プロジェクトのWorkspaceにアクセスします。
  2. 右上隅の Add panel をクリックします。
  3. ドロップダウンから Query panel を選択します。

クエリの構成要素

クエリ式を使用すると、W&B に保存されている runs、artifacts、モデル、表 などのデータをクエリできます。

例: 表をクエリする

W&B の表をクエリしたいとします。トレーニングコード内で、"cifar10_sample_table" という名前の表をログします。
import wandb
with wandb.init() as run:
  run.log({"cifar10_sample_table":<MY_TABLE>})
クエリパネル では、次を使って表をクエリできます。
runs.summary["cifar10_sample_table"]
表のクエリ式
これを分解すると、次のようになります。
  • runs は、クエリパネル が Workspace 内にある場合、クエリパネル Expressions に自動的に追加される変数です。その「値」は、その Workspace で表示されている run のリストです。run で利用できるさまざまな属性についてはこちらをご覧ください
  • summary は、Run の Summary オブジェクトを返す op です。Ops は mapped されるため、この op はリスト内の各 Run に適用され、結果として Summary オブジェクトのリストが得られます。
  • ["cifar10_sample_table"] は Pick op (角括弧で表されます) で、キーは cifar10_sample_table です。Summary オブジェクトは辞書やマップのように振る舞うため、この操作では各 Summary オブジェクトからそのフィールドを取り出します。

設定

パネルの左上にあるギアアイコンを選択して、クエリ設定を展開します。ここでは、パネルの種類や結果パネルのパラメーターを設定できます。
パネル設定メニュー

パネル オプション

設定メニューには、表形式の結果をどのように結合または読み込むかを変更するオプションが含まれる場合があります。表示されるラベルや利用可否は、式やパネル タイプによって異なることがあります。具体的な設定例については、Query panel examples reportを参照してください。 Concat 互換性のある表形式の結果を結合し、パネルがそれらを表示や後続の操作のために 1 つの表として扱うようにする場合は、設定で Concat を使用します。式レベルでの行の結合 (たとえば、クエリ内の concatjoin) は、この設定とは別です。式で表を結合するを参照してください。 Paginate 表の結果が大きすぎて一度に表示できない可能性がある場合は、Paginate を使用します。ページネーションでは行をチャンク単位で読み込むため、パネルの応答性を維持できます。このオプションは、大きな行リストを返す式と組み合わせて使用してください。ページネーションでうまく機能するパターンについては、Query panel examples reportを参照してください。

結果パネル

最後に、クエリ結果パネルにはクエリ式の結果が表示されます。表示には選択したクエリパネルが使用され、設定に応じてデータがインタラクティブな形式で表示されます。以下の画像は、同じデータを表とプロットで表示した例です。
表の結果パネル
プロットの結果パネル

run 履歴をステップごとにたどる

runs または runs.history から作成した表やプロットでは、アプリに step コントロール (たとえばスライダー) を表示して、ログされた step を移動しながら、Runs の進行に沿ってメトリクス、テキスト、メディアを確認できます。式を変更したら、Query panel の設定を編集し、Render AsStepper に変更してください。データのログ方法により適している場合は、このコントロールで _step ではなく別のメトリクスを追跡できます。式のサンプルについては、Query panel examples report を参照してください。

基本的な操作

以下は、クエリパネル内で実行できる一般的な操作です。

並べ替え

列オプションから並べ替えます:
列の並べ替えオプション

フィルター

クエリ内で直接フィルターすることも、左上隅のフィルターボタン (2つ目の画像) を使うこともできます
クエリのフィルター構文
フィルターボタン

マップ

マップ操作では、リストを走査し、データ内の各要素に関数を適用します。これは、パネルのクエリを使って直接行うことも、列オプションから新しい列を挿入して行うこともできます。
マップ操作のクエリ
マップ列の挿入

グループ化

クエリまたは列オプションからグループ化できます。
クエリでグループ化
列オプションでグループ化

式で表を結合する

表の行リストを連結またはマージする必要がある場合は、式内で concatjoin、および関連する演算を使用します。完全な例については、Joinを参照してください。Panel optionsConcatPaginate は、UI で表の結果をどのように結合し、読み込むかを制御する別個のコントロールです。

結合

クエリ内で表を直接結合することもできます。次のクエリ式を確認しましょう。
project("luis_team_test", "weave_example_queries").runs.summary["short_table_0"].table.rows.concat.join(\
project("luis_team_test", "weave_example_queries").runs.summary["short_table_1"].table.rows.concat,\
(row) => row["Label"],(row) => row["Label"], "Table1", "Table2",\
"false", "false")
表の結合
左側の表は以下から生成されます。
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_0"].table.rows.concat.join
右側の表は以下から生成されます:
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_1"].table.rows.concat
ここで、
  • (row) => row["Label"] は各表のセレクターで、結合に使用する列を指定します
  • "Table1""Table2" は、結合後の各表の名前です
  • truefalse は、左側と右側の内部結合/外部結合の設定を指定します

Runs オブジェクト

クエリパネルを使用して runs オブジェクトにアクセスします。run オブジェクトには、実験の記録が保存されます。詳細は runs オブジェクトへのアクセス を参照してください。ここでは、runs オブジェクトで利用できる主な項目を簡単に説明します。
  • summary: run の結果を要約した情報を格納する辞書です。accuracy や損失のようなスカラー値だけでなく、大きなファイルが含まれることもあります。デフォルトでは、wandb.Run.log() によって、ログされた時系列の最終値が summary に設定されます。summary の内容は直接設定することもできます。summary は run の「出力」と考えてください。
  • history: 損失のように、モデルのトレーニング中に変化する値を保存するための辞書のリストです。wandb.Run.log() コマンドはこのオブジェクトに追記します。
  • config: トレーニング run のハイパーパラメーターや、データセット artifact を作成する run の前処理 method など、run の設定情報を含む辞書です。これらは run の「入力」と考えてください。
Runs オブジェクトの構造

Artifacts にアクセスする

Artifacts は W&B の中核となる概念です。Artifacts は、バージョン管理された、名前付きのファイルおよびディレクトリのコレクションです。Artifacts を使用すると、モデルの重み、データセット、そのほかあらゆるファイルやディレクトリをトラッキングできます。Artifacts は W&B に保存され、ダウンロードしたり、ほかの run で使用したりできます。詳細と例については、Artifacts へのアクセスを参照してください。Artifacts には通常、project オブジェクトからアクセスします。
  • project.artifactVersion(): プロジェクト内の指定した名とバージョンに対応する特定の artifact バージョンを返します
  • project.artifact(""): プロジェクト内の指定した名に対応する artifact を返します。その後、.versions を使用して、この artifact のすべてのバージョンのリストを取得できます
  • project.artifactType(): プロジェクト内の指定した名に対応する artifactType を返します。その後、.artifacts を使用して、このタイプのすべての artifact のリストを取得できます
  • project.artifactTypes: プロジェクト配下のすべての artifact タイプのリストを返します
Artifact へのアクセス method