Skip to main content
W&B LEET (Lightweight Experiment Exploration Tool) は、W&B Runs を探索するための、キーボード操作中心のターミナル UI です。LEET を使用すると、ブラウザーを開かずに、ローカルのメトリクスの比較、システム使用状況の確認、ログされた画像の参照、コンソール出力の追跡を行えます。LEET はローカルの .wandb トランザクションログを読み取るため、Runs がクラウドに同期される前でも確認できます。また、URL でリモートの run を開き、そのスカラー履歴とサマリーを表示することもできます。
Runs、メトリクス、システムメトリクス、メディア、コンソールログ、run overview ペインを含む W&B LEET Workspace ビュー。

LEET を使用するタイミング

LEET は、作業時間の大半をターミナルで過ごすエンジニア向けに作られています。特に、グラフィカルブラウザーの動作が遅い、または利用できないリモートマシン、クラスター、SSH セッションでの利用に適しています。 LEET と W&B は、データがローカルに存在し、かつ同期されている場合、同じ基盤となる run データを表示します。LEET は、ローカルの run ファイル、実行中のトレーニング プロセスからのライブ更新、および限定的なリモート run の探索をサポートします。

事前準備

pip または uv を使用して、W&B CLI を最新バージョンにインストールまたはアップグレードします。
このガイドは、最新の CLI の動作について説明しています。
SDK v0.27.x 以前では、LEET TUI の起動には wandb leet ではなく wandb beta leet を使用してください。

Launch LEET

wandb/ フォルダを含むディレクトリから、デフォルトのWorkspaceを開き、最新のローカル run を自動的に選択します:
Workspace ディレクトリ、特定の run ディレクトリ、または .wandb file を指す任意の PATH を渡せます:
ホストのメトリクスをrun コンテキストなしで表示するには、スタンドアロンのシステムモニター (SYMON) を開きます。
コマンド構文とサブコマンドについては、CLI リファレンスの wandb leet をご覧ください。

リモート run

同期済みの run を表示するには、その URL を渡します。[ENTITY][PROJECT][RUN-ID] は、対象の run の URL に含まれる値に置き換えてください。
リモートの run を扱うには、その run をホストするサーバーへのネットワーク接続とAPIキーによる認証が必要です。LEET は設定済みの認証情報を使用するか、ログインを求めるプロンプトを表示します。 リモートモードで開けるのは、1 つの run のスカラー history と summary のみです。ライブ更新、複数 run の比較、設定、システムメトリクス、メディア、コンソールログ、カスタム X 軸、レコードインスペクターには対応していません。これらの機能を使用する場合は、ローカルの run ファイルを使用してください。

ビューとペインのレイアウト

LEET には、Workspace単一 runSYMON の 3 つの主要ビューがあります。レコードインスペクター は、ローカルのトランザクションログを別のビューとして表示します。

Workspace ビュー

Workspace ビューはデフォルトのビューです。同じローカル wandb/ ディレクトリ内の複数の Runs を比較するように設計されています。 代表的なペインは次のとおりです。
  • Runs サイドバー — ローカルの run フォルダーを参照し、フィルターします。
  • メトリクス グリッド — 選択した Runs を同じスカラー チャート上に重ねて表示します。
  • システムメトリクス — ハイライトされた run のチャートです。
  • メディア — ターミナルにレンダリングされる wandb.Image のサムネイルです。
  • コンソールログ — ハイライトされた run の stdout と stderr をまとめて表示します。
  • Run overview — state、IDs、タグ、メモ、設定、サマリー値を表示します。
重ね合わせ表示するメトリクスの対象として、space で run を選択または選択解除します。選択された Runs には塗りつぶしアイコンが表示されます。p を使用して run をピン留めすると、その系列がメトリクス チャートの前面に固定されます。ハイライトされた run で enter を押すと、単一 run ビュー が開きます。実行中の run は Workspace 内で更新され続けるため、LEET は run 後の分析にも、アクティブなジョブのモニタリングにも使用できます。 実行中の run は、run 一覧ではアニメーション付きのマーカーで表示され、ステータスバーでは点滅する状態インジケーターで表示されます。LEET は、トランザクションログの更新が 10 分間ない場合、実行中のローカル run をクラッシュとしてマークします。書き込みが再開されると、LEET はライブ モニタリングを再開します。 ターミナルの幅が狭い場合、LEET は可能な限りチャート用に少なくとも 24 列を確保するため、まず run 概要サイドバーを、次に Runs サイドバーを一時的に非表示にします。ターミナルに十分なスペースができると、サイドバーは再表示されます。

単一 run ビュー

単一 run ビューでは、1 つの run にフォーカスし、中央にメトリクスグリッド、左側に run overview、右側にシステムメトリクスが表示されます。切り替えてオンにすると、メディアペインとコンソールログペインがメトリクスグリッドの下に表示されます。
run overview、メトリクスのチャート、システムメトリクスの各ペインを表示した W&B LEET の単一 run ビュー。
esc を押すと、適用中のフィルターまたは全画面のメディア表示を終了し、続いてペインのフォーカスが解除されます。ローカルの run では、ペインにフォーカスがない状態でもう一度 esc を押すと Workspace ビューに戻ります。

SYMON

SYMON は、ローカルの CPU、メモリ、ディスク、ネットワーク、アクセラレータのメトリクスを監視します。W&B Run に紐づくシステムメトリクス ペインと同じチャート エンジンを使用しますが、W&B Run の file には関連付けられていません。
GPU チャートとバケット化されたヒートマップ モードを備えた W&B LEET システムメトリクス ビュー。

レコードインスペクター

レコードインスペクターを使用すると、ローカルの .wandb トランザクションログ内の生のレコードを確認できます。単一 run ビューでは、i を押すと現在の run に対してレコードインスペクターが開きます。次のように直接起動することもできます。
オプションのパスには、.wandb file、run ディレクトリ、または Workspace ディレクトリを指定できます。パスを指定しない場合や Workspace ディレクトリを指定した場合、LEET は最新の run を開きます。 レコード一覧には、選択したレコードの全文とともに、レコードのタイプとサマリーが表示されます。/ を押すとタイプまたはサマリーでフィルターでき、編集中に tab を押すと正規表現モードと glob モードを切り替えられます。ctrl+/ を押すとフィルターをクリアします。レコード一覧にフォーカスがある状態で end を押すと、実行中の run の新しいレコードを追跡します。i でインスペクターを開いた場合は、レコード一覧で esc を押すと run に戻ります。 stdout がパイプまたはリダイレクトされている場合、コマンドは利用可能なレコードを Protocol Buffer テキストとして出力して終了します。

主な機能

複数 run の比較

Workspace ビューで複数の run を選択すると、共有チャート上でスカラー メトリクスを比較できます。各 run には一貫した色が割り当てられ、LEET はベース色の競合を減らすことで、重ねて表示した系列を見分けやすくします。多数の run を選択していて、1 つの系列をほかの系列より前面に表示したい場合は、ピン留めが便利です。 f を押すと、名前、project、タグ、メモ、設定値、そのほかのメタデータで Runs リストをフィルターできます。修飾子のない検索語は、run key、表示名、Run ID、project、タグ、メモを対象に検索されます。フィルターはフィールド指定クエリもサポートします。 サポートされる演算子は :, =, !=, >, >=, <, <= です。数値比較は、学習率、バッチサイズ、レイヤー数などの設定値に便利です。 AND 条件には空白または AND、代替条件には OR または |、否定には -!、または NOT を使用します。空白を含むフレーズには引用符を使用します。
フィルターの編集中に tab を押すと、regex モードと glob モードを切り替えられます。Regex モードは、クエリに regex のメタ文字が含まれていない限り、大文字と小文字を区別しない部分文字列検索のように動作します。Glob モードでは、* は任意の文字列、? は任意の 1 文字を表します。 LEET は、run、メトリクス、システム メトリクスのフィルターを、その一致モードも含めて、ローカルの各 wandb/ ディレクトリ内の .wandb-leet.json に保存します。そのディレクトリを Workspace ビューまたは単一 run ビューで再度開くと、フィルターがリストアされます。フィルターをクリアすると、保存された値もクリアされます。コンソール ログと run overview のフィルターは、セッション間で保存されません。

メトリクスとシステムメトリクス

LEET はスカラーメトリクスをターミナル上の折れ線チャートとしてレンダリングします。run のメトリクスは /、システムメトリクスは \ でフィルターできます。コンソールログ pane にフォーカスがある場合は、/ は代わりにログをフィルターします。フォーカス中のチャート上で y を押すと、対数スケールの Y 軸や、割合ベースのシステムメトリクス向けのバケット化されたヒートマップ表示など、表示モードを順に切り替えられます。 g を押すと、チャートのガイドをオフ、ドット背景、Y 軸の目盛りに合わせた水平線の順に切り替えられます。この設定は Workspace、single-run、SYMON の各ビューに適用され、セッション間で保持されます。 デフォルトでは、LEET は各メトリクスを W&B の内部 step メトリクス (_step) に対してプロットします。ローカルの run では、run.define_metric() で定義したカスタム X 軸が優先されます (glob パターンを使用した定義も含みます) 。たとえば、次の run では train/losstrain/step に対してプロットします。
チャートのヘッダーとステータスバーには [x: train/step] と表示されます。カスタム X 軸の値が有限でない行は省略されます。各チャートで使用できる X 軸は 1 つのみのため、比較する runs には同じ軸定義を使用してください。カスタム軸はデフォルトの step 軸を置き換えるため、異なる軸を使用する時系列はそのチャートにはプロットされません。 マウスホイールでフォーカス中のチャートをズームできます。ライブのシステムメトリクスチャートでは、LEET はデフォルトでローリングのテールウィンドウ (デフォルトは 10 分) を使用します。チャート上で右クリックしながらドラッグすると、最も近いポイントを確認できます。alt を押しながらドラッグすると、同じグリッド内に表示されているチャートを同じ X 位置で確認できます。メトリクスチャートが同期されるのは、同じ X 軸を共有している場合のみです。

メディアとコンソールログ

メディアペインには wandb.Image の時系列が表示されます。1 つの key にログした画像のリストも対象で、画像ごとに 1 つのタイルが表示されます。Workspace ビューまたは単一 run ビューで 3 を押すと表示を切り替えられます。 メディアペインにフォーカスした状態で、wasd を使ってタイルを選択します。左右の矢印キーは 1 フレーム、上下の矢印キーは 10 フレーム移動します。enter を押すとメディアが全画面表示になり、esc で解除されます。l を押すと複数の画像時系列間でスクラブが連動し、矢印キー、homeend で、結合された step タイムライン上の共有カーソルを移動できます。 k を押すと、Kitty graphics protocol をサポートするターミナルで ANSI サムネイルと高解像度レンダリングを切り替えられます。ターミナルが高解像度レンダリングをサポートしていない場合、LEET は ANSI にフォールバックします。画像のパディングにはターミナルの背景色が使用されます。
W&B LEET workspace view with the media pane showing several image series.
4 を押すとコンソールログの表示を切り替えられます。LEET は、ANSI エスケープコードやキャリッジリターンによる進捗表示行を含む生のターミナル出力から、読みやすいログ行を再構成します。 コンソール出力をフィルターするには、ログペインにフォーカスし、/ を押してパターンを入力します。編集中に tab を押すと、正規表現とグロブマッチングを切り替えられます。enter を押すとフィルターが適用され、esc を押すと入力中のクエリが破棄されます。LEET は一致した行を表示し、ログの末尾にいる場合は新たに一致した行を追従します。ログペインにフォーカスした状態で ctrl+/ または ctrl+l を押すと、フィルターがクリアされます。 W&B App でのコンソールログの動作については、Console logs を参照してください。

設定

設定エディタを使用すると、レイアウト、カラー、デフォルトのペイン、起動モードを保存できます。
LEET はデフォルトで wandb-leet.json~/.config/wandb/ 配下に書き込みます。変数 WANDB_CONFIG_DIR が設定されている場合は、その配下に書き込みます。LEET 内では、cr を使ってグリッドのサイズを変更することもできます。 ペインの境界線や区切り線をドラッグすると、サイドバー、積み重ねられたペイン、および run overview の Environment、Config、Summary の各セクションのサイズを変更できます。ドラッグ中は対象の境界線がハイライトされます。LEET は Workspace、single-run、インスペクタの各ビューごとに比率を個別に保存します。0 を押すと、run overview のセクションを含め、現在のビューのサイズがリセットされます。 設定エディタでは、高さの狭いターミナルにも収まるよう、選択に合わせてフィールドのリストがスクロールします。space を押すと真偽値の設定を切り替えられます。
グリッド設定、色のスキーム、表示設定、パレット選択を示す W&B LEET 設定エディタ。

一般的な設定キー

wandb-vibe-10wandb-vibe-20sunset-glowblush-tidegilded-lagoonbootstrap-vibedusk-shoreclear-signaltraffic-lightviridisplasmainfernomagmacividis など、複数のカラースキームを利用できます。
  • dusk-shoreclear-signal のパレットは、色覚多様性に配慮しています。
  • viridisplasmainfernomagmacividistraffic-light などの連続パレットは、バケット化ヒートマップに適しています。

診断とテレメトリー

LEET は起動時のエラーを stderr に出力します。デバッグログを収集するには、WANDB_DEBUG=true を指定して起動してください。
デバッグ出力は、グローバルな wandb-leet.json 設定ファイルと同じ場所にある wandb-leet.debug.log に書き込まれます。WANDB_MODE=offlineWANDB_MODE=disabled、または WANDB_ERROR_REPORTING=false の場合、LEET は利用状況の telemetry を送信しません。 LEET は、キーボードとマウスでの操作向けに設計されています。LEET 内で h または ? を押すと、現在のビューに対応するアプリ内ヘルプのオーバーレイが開きます。 Workspace と単一 run ビューでは、次の操作が共通です。
  • tabshift+tab で、表示されているペイン間を順番にフォーカス移動します。
  • wasd と矢印キーで、フォーカス中のペイン内を移動します (ただし media pane では、矢印キーで X-axis をスクラブし、WASD でタイル間を移動します) 。
  • homeendpguppgdown で、リスト、チャートページ、またはメディアフレーム内を移動します。
  • 1234 で、メトリクスグリッド、システムメトリクス、メディア、コンソールログ pane の表示を切り替えます。
  • [] で、サイドバー (ビューに応じて Runs リスト、run overview、またはシステムメトリクス) の表示を切り替えます。
Workspace、単一 run、SYMON、メディア、レコードインスペクター、およびマウス操作の完全なショートカット表については、Keyboard shortcuts (LEET タブ) を参照してください。

W&B App と比較した場合の制限事項

LEET は W&B App を補完するものですが、Workspace のすべての機能を再現するわけではありません。 LEET で提供されていない Artifacts、sweep 分析、またはパネル タイプが必要な場合は、同期後に W&B App で Run を開いてください。

変更履歴

LEET は SDK v0.23.0 で初めてベータ版として公開され、SDK v0.28.0 で GA に移行しました。詳細については、SDK リリースノートを参照してください。