メインコンテンツへスキップ
W&B Weave をお探しですか? 生成 AI アプリ構築向けの W&B のツールスイートについては、こちらのドキュメントを参照してください: wandb.me/weave
クエリパネルを使用すると、データをクエリしてインタラクティブに可視化できます。
クエリパネル

クエリパネルを作成する

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 (角括弧で表されます) で、パラメーターは predictions です。Summary オブジェクトは辞書やマップのように振る舞うため、この操作では各 Summary オブジェクトから predictions フィールドを取り出します。
独自のクエリをインタラクティブに記述する方法については、クエリパネル demo を参照してください.

設定

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

結果パネル

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

基本的な操作

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

並べ替え

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

フィルター

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

マップ

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

グループ化

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

Concat

concat操作では、2つの表を連結できます。連結や結合は、パネル設定から行えます。

結合

クエリ内で表を直接結合することもできます。次のクエリ式を確認しましょう。
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