wandb - 🔥 機械学習の実験を視覚化および追跡するためのツール。このリポジトリには、CLI と Python API が含まれています。

(? A tool for visualizing and tracking your machine learning experiments. This repo contains the CLI and Python API.)

Created at: 2017-03-24 13:46:23
Language: Python
License: MIT

重みとバイアス 重みとバイアス

重みとバイアスPyPI Conda (チャンネルのみ) サークルCI コードコフ

W&B を使用して、より優れたモデルをより迅速に構築します。データセットから本番モデルまで、機械学習パイプラインのすべての部分を追跡して視覚化します。

  • モデルの回帰をすばやく特定します。W&B を使用して、結果をすべて中央のダッシュボードでリアルタイムに視覚化します。
  • 興味深い ML に注目してください。スプレッドシートやテキスト ファイルで手動で結果を追跡する時間を短縮します。
  • W&B Artifacts を使用してデータセットのバージョンをキャプチャし、データの変更が結果のモデルにどのように影響するかを特定します。
  • 保存されたコード、ハイパーパラメーター、起動コマンド、入力データ、結果のモデルの重みを使用して、任意のモデルを再現します。

無料アカウントにサインアップ →

特徴

  • トレーニング実行で使用されるハイパーパラメーターを保存する
  • トレーニングの実行を検索、比較、視覚化する
  • 実行と並行してシステム使用指標を分析する
  • チームメンバーと協力する
  • 過去の結果を再現
  • パラメータ スイープの実行
  • 実験の記録を永久に利用できるようにする

ドキュメンテーション →

ご不明な点がございましたら、お気軽にユーザー フォーラムまでお問い合わせください。

🤝あらゆるフレームワークとの簡単な統合

ライブラリをインストール

wandb
してログインします。

pip install wandb
wandb login

任意の Python スクリプトの柔軟な統合:

import wandb

# 1. Start a W&B run
wandb.init(project="gpt3")

# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01

# Model training code here ...

# 3. Log metrics over time to visualize performance
for i in range(10):
    wandb.log({"loss": loss})

コラボしてみる →

ご不明な点がございましたら、お気軽にユーザー フォーラムまでお問い合わせください。

W&B ダッシュボードを調べる

学術研究者

研究グループ用の無料のアカデミック アカウントが必要な場合は、お問い合わせください →

出版された論文で W&B を簡単に引用できるようにします。詳しくは→

📈モデルとデータ パイプラインのハイパーパラメータを追跡する

ハイパーパラメータ、入力設定 (データセット

wandb.config
名やモデル タイプなど)、および実験用のその他の独立変数を保存するために、スクリプトの最初に 1 回設定します。これは、実験を分析し、将来的に作業を再現するのに役立ちます。構成を設定すると、モデル アーキテクチャまたはデータ パイプラインの機能とモデルのパフォーマンスとの関係を視覚化することもできます(上のスクリーンショットを参照)。

wandb.init()
wandb.config.epochs = 4
wandb.config.batch_size = 32
wandb.config.learning_rate = 0.001
wandb.config.architecture = "resnet"

🏗お気に入りのフレームワークを使用する

🥕ケラス

Keras では、コールバックを使用して、追跡されたすべてのメトリックを自動的に保存できます

model.fit
。始めるために、最小限の例を次に示します。

# Import W&B
import wandb
from wandb.keras import WandbCallback

# Step1: Initialize W&B run
wandb.init(project="project_name")

# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01

# Model training code here ...

# Step 3: Add WandbCallback
model.fit(
    X_train, y_train, validation_data=(X_test, y_test), callbacks=[WandbCallback()]
)

🔥PyTorch

W&B は、PyTorch のファースト クラスのサポートを提供します。勾配を自動的にログに記録し、ネットワーク トポロジを保存する

.watch
には、PyTorch モデルを呼び出して渡すことができます。次に
.log
、次のように、追跡したい他のものに使用します。

import wandb

# 1. Start a new run
wandb.init(project="gpt-3")

# 2. Save model inputs and hyperparameters
config = wandb.config
config.dropout = 0.01

# 3. Log gradients and model parameters
wandb.watch(model)
for batch_idx, (data, target) in enumerate(train_loader):
    ...
    if batch_idx % args.log_interval == 0:
        # 4. Log metrics to visualize performance
        wandb.log({"loss": loss})

🌊TensorFlow

TensorFlow でメトリクスをログに記録する最も簡単な方法は

tf.summary
、TensorFlow ロガーでログを記録することです。

import wandb

# 1. Start a W&B run
wandb.init(project="gpt3")

# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01

# Model training here

# 3. Log metrics over time to visualize performance
with tf.Session() as sess:
    # ...
    wandb.tensorflow.log(tf.summary.merge_all())

💨ファタイ

重みとバイアスを使用して fastai モデルを視覚化、比較、反復し

WandbCallback
ます。

import wandb
from fastai.callback.wandb import WandbCallback

# 1. Start a new run
wandb.init(project="gpt-3")

# 2. Automatically log model metrics
learn.fit(..., cbs=WandbCallback())

⚡️PyTorch ライトニング

スケーラブルで構造化された高性能の PyTorch モデルを Lightning で構築し、W&B でログに記録します。

from pytorch_lightning.loggers import WandbLogger
from pytorch_lightning import Trainer

wandb_logger = WandbLogger(project="gpt-3")
trainer = Trainer(logger=wandb_logger)

🤗ハグフェイス

--report_to wandb
がインストールされている環境でHuggingFace のトレーナーを使用してスクリプトを実行するだけで、
wandb
損失、評価メトリック、モデル トポロジ、および勾配が自動的に記録されます。

# 1. Install the wandb library
pip install wandb

# 2. Run a script that has the Trainer to automatically logs metrics, model topology and gradients
python run_glue.py \
 --report_to wandb \
 --model_name_or_path bert-base-uncased \
 --task_name MRPC \
 --data_dir $GLUE_DIR/$TASK_NAME \
 --do_train \
 --evaluate_during_training \
 --max_seq_length 128 \
 --per_gpu_train_batch_size 32 \
 --learning_rate 2e-5 \
 --num_train_epochs 3 \
 --output_dir /tmp/$TASK_NAME/ \
 --overwrite_output_dir \
 --logging_steps 50

🧹Sweeps でハイパーパラメータを最適化する

Weights & Biases Sweeps を使用して、ハイパーパラメータの最適化を自動化し、可能なモデルの空間を探索します。

5分で始める →

Colab で PyTorch で Sweeps を試す →

W&B スイープを使用する利点

  • セットアップが簡単:わずか数行のコードで、W&B スイープを実行できます。
  • 透明性:使用しているすべてのアルゴリズムを引用しており、コードはオープン ソースです。
  • 強力:当社のスイープは完全にカスタマイズおよび構成可能です。数十台のマシンでスイープを開始できます。ラップトップでスイープを開始するのと同じくらい簡単です。

重みとバイアス

一般的な使用例

  • 探索:ハイパーパラメーターの組み合わせの空間を効率的にサンプリングして、有望な領域を発見し、モデルに関する直感を構築します。
  • 最適化: スイープを使用して、最適なパフォーマンスを持つ一連のハイパーパラメーターを見つけます。
  • K 分割交差検証: これは、W&B スイープを使用したk分割交差検証の簡単なコード例です。

スイープの結果を視覚化する

ハイパーパラメータの重要度プロットは、どのハイパーパラメータが最良の予測因子であり、メトリクスの望ましい値と高度に相関しているかを明らかにします。

重みとバイアス

平行座標プロットは、ハイパーパラメータ値をモデル メトリクスにマッピングします。これらは、最高のモデル パフォーマンスにつながるハイパーパラメーターの組み合わせを絞り込むのに役立ちます。

重みとバイアス

📜レポートで洞察を共有する

レポートを使用すると、ビジュアライゼーションを整理したり、調査結果を説明したり、共同作業者と更新を共有したりできます。

一般的な使用例

  • メモ:自分への簡単なメモを含むグラフを追加します。
  • コラボレーション:調査結果を同僚と共有します。
  • 作業ログ:試したことを追跡し、次のステップを計画します。

ギャラリーでレポートを見る → | ドキュメントを読む

W&B で実験を行ったら、数回クリックするだけでレポートで結果を視覚化し、文書化できます。ここに簡単なデモビデオがあります。

🏺Artifacts を使用したバージョン管理データセットとモデル

Git と GitHub はコードのバージョン管理を容易にしますが、ML パイプラインの他の部分 (データセット、モデル、その他の大きなバイナリ ファイル) の追跡には最適化されていません。

W&Bのアーティファクトは。ほんの数行のコードを追加するだけで、あなたとあなたのチームのアウトプットの追跡を開始でき、すべてが実行に直接リンクされます。

Colab でアーティファクトを試す →

一般的な使用例

  • パイプライン管理:実行の入力と出力を追跡し、グラフとして視覚化します
  • Don't Repeat Yourself™:計算作業の重複を防ぐ
  • チームでのデータ共有:頭を悩ませることなく、モデルやデータセットで共同作業を行う

アーティファクトについてはこちら → | ドキュメントを読む

💻 W&B サーバーをローカルで実行する

W&B Server は、自己ホスト型の Weights & Biases サーバーです。Docker、Kubernetes、または非公開で管理されたクラウドに、W&B 運用サーバーを安全かつ迅速に展開します。実稼働 W&B デプロイメントのセットアップの詳細については、こちらをご覧ください→ .

クイックスタート

  1. DockerとPythonがインストールされ ているマシンで、次を実行します。
    1 pip install wandb --upgrade
    2 wandb server start
    
  2. Deployerから無料のライセンスを生成します。
  3. これを W&B サーバーのローカルホストの設定に追加します。

ローカルホストの /system-admin ページにライセンスを貼り付けます

2022-02-24 22 13 59

ドッカー

実行

wandb server start
すると、サーバーが起動し、ホストのポート 8080 が転送されます。他のマシンがこのサーバーにメトリクスをレポートするには、次を実行します
wandb login --host=http://X.X.X.X:8080
。

Docker を使用して W&B Local を手動で実行します。

docker run --rm -d -v wandb:/vol -p 8080:8080 --name wandb-local wandb/local

テスト

基本的なテストを実行するには、 を使用します

make test
。詳細については、CONTRIBUTING.md を参照してください。

CIにはcircleciを使用しています。