Weights & Biases (wandb) on Ubuntu — ML実験トラッキングの導入

AI/MLツール

機械学習の実験を進めていると「あの時の学習率、何にしてたっけ?」「さっきのモデルより精度が下がった気がするけど、どのパラメータを変えたんだろう」という状況によく陥ります。結論から言うと、Weights & Biases(wandb)はコードに数行足すだけで、ハイパーパラメータ・損失・精度を自動で記録・可視化・比較してくれるツールで、Ubuntu 24.04 では python3 -m venv で仮想環境を作ってから pip install wandb するのが正規手順です。

この記事では、Ubuntu 24.04 LTS への wandb 導入から最初の実験トラッキングまでを、実際に Docker コンテナ・PyPI・wandb のオフライン実行を叩いて取得した一次データとともに解説します。数字はすべて 2026-06-15 に実測した実値です。

この記事のポイント

  • wandb の PyPI 最新版は 0.27.2(2026-06-06 公開・MIT ライセンス)。要件は Python ≥ 3.10 で、Ubuntu 24.04 の Python 3.12.3 で満たせます(実測)
  • Ubuntu 24.04 は PEP 668 が効いており、システム Python へ直接 pip install wandb すると externally-managed-environment エラーになります。python3 -m venv が事実上必須です(実測・22.04 にはこの制約なし)
  • wandb 本体の wheel は約 23.4MB(aarch64)。依存込みで合計20パッケージが入ります。「6.8MB」という説明を見かけますが実測値とは異なります
  • WANDB_MODE=offline ならアカウント・ネット接続なしで実験ログを保存でき、Run ID 0iurw9ls・4ファイルが生成されました。後から wandb sync でクラウドに送れます(実測)
  • wandb.init()wandb.log()run.finish() の3ステップだけで実験トラッキングが始まります

確認済み動作環境

本記事のコマンドは Ubuntu 24.04 LTS(ubuntu:24.04 Docker公式イメージ・aarch64)で 2026-06-15 に検証しています。wandb バージョン: 0.27.2。比較用に Ubuntu 22.04 LTS(ubuntu:22.04)でも環境差を実測しました。

目次

  1. wandb とは何か
  2. wandb / MLflow / TensorBoard の違い
  3. Ubuntu 22.04 と 24.04 の環境差(PEP 668)
  4. Ubuntu 24.04 への wandb インストール
  5. wandb の PyPI 実メタデータ
  6. アカウントと API キーの設定
  7. 最初の ML 実験をトラッキングする
  8. オフラインモードで使う
  9. よく使う wandb 機能
  10. よくあるエラーと解決策
  11. VPS で wandb を使う際の注意点
  12. まとめ

wandb とは何か

wandb(Weights & Biases)は、ML 実験のトラッキング・可視化・コラボレーションを支援するプラットフォームです。日本語に訳すと「ML 実験の記録帳 + 可視化ダッシュボード」というイメージが近いです。主な機能は4つあります。

  • Experiments(実験トラッキング):学習中のメトリクス(loss・accuracy)とハイパーパラメータを自動記録
  • Artifacts(成果物管理):モデルの重みファイル・データセットをバージョン管理
  • Reports(レポート):グラフと説明文を組み合わせたインタラクティブなレポート作成
  • Sweeps(自動チューニング):ハイパーパラメータ探索を並列で自動実行

ログインは GitHub / Google / Apple / Microsoft アカウントで即時作成できます。実際に https://wandb.ai/login を開いて確認したところ、4種類のソーシャルログインとメールアドレス登録に対応していました。

wandb.ai ログインページ(Apple / GitHub / Google / Microsoft 対応・Playwright 実撮影)
wandb.ai ログインページ(Apple / GitHub / Google / Microsoft 対応・Playwright 実撮影)

無料プランで個人利用であればストレージ 100GB/月・ユーザー数無制限で使えます(wandb.ai/pricing 参照)。なお wandb の公式ドキュメント(docs.wandb.ai)は現在 「Weights & Biases by CoreWeave」として提供されており、2024年に CoreWeave による買収後もサービスはそのまま継続しています。

wandb のワークフロー概要

コードに import wandb を追加し、学習ループ内で wandb.log() を呼ぶだけで、メトリクスがクラウドに送られます。全体の流れは次のとおりです。

wandb ML実験トラッキング ワークフロー(概念図)
wandb ML実験トラッキング ワークフロー(概念図)

オフラインモード(WANDB_MODE=offline)を使えばネットワーク接続なしで実験ログをローカルに保存し、後から wandb sync でアップロードすることもできます。企業内の閉じたサーバーや VPS でも使えるのが便利です。

wandb / MLflow / TensorBoard の違い

ML 実験トラッキングのツールはいくつかあります。正直、「とりあえず使い始める」なら wandb が一番ハードルが低いと感じました。MLflow はクラウド UI を使うならセルフホストでサーバー構築が必要、TensorBoard はリアルタイムのクラウド共有ができません。

ML実験トラッキングツール比較(wandb / MLflow / TensorBoard・概念図)
ML実験トラッキングツール比較(wandb / MLflow / TensorBoard・概念図)

チームで複数人が実験を共有したいなら wandb が最有力です。完全にローカル・自前サーバーで完結させたい場合は OSS の MLflow も選択肢に入ります。

Ubuntu 22.04 と 24.04 の環境差(PEP 668)

wandb を入れる前に、お使いの Ubuntu のバージョンによって手順が変わる点を押さえておきましょう。PEP 668(システム Python を壊さないための仕組み)が効いているかどうかが分かれ目です。実際に ubuntu:22.04 と ubuntu:24.04 のコンテナで環境情報を取得して比較しました。

Ubuntu 22.04 / 24.04 の Python 環境と PEP 668 の違い(実測)
Ubuntu 22.04 / 24.04 の Python 環境と PEP 668 の違い(実測)

ポイントは /usr/lib/python3.x/EXTERNALLY-MANAGED というマーカーファイルの有無です。実測では 22.04 には存在せず、24.04 にのみ存在しました。このファイルがあると pip install がブロックされます。つまり 22.04 では従来どおり直接 pip install できますが、24.04 では python3 -m venv での仮想環境が事実上必須になります。Python 自体も 22.04 の 3.10.12 から 24.04 では 3.12.3 に上がっていますが、wandb の要件(Python ≥ 3.10)はどちらも満たします。

Ubuntu 24.04 への wandb インストール

手順1:python3-venv のインストール

Ubuntu 24.04 で仮想環境を作らずに直接 pip install すると、次のエラーが出ます。これは前述の PEP 668 によるものです。




ubuntu@linuxlab: ~
$ pip install wandb
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
See PEP 668 for the detailed specification.

まずは python3-venv を入れます。ubuntu:24.04 コンテナで実行したところ、apt-cache policy の Candidate は python3 3.12.3-0ubuntu2.1python3-pip 24.0+dfsg-1ubuntu1.3 でした。




ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
$ sudo apt install -y python3 python3-venv
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
$ python3 –version
Python 3.12.3
wandb 0.27.2 と主要依存パッケージの実測バージョン(実測)
wandb 0.27.2 と主要依存パッケージの実測バージョン(実測)

手順2:仮想環境の作成と有効化

python3 -m venv で仮想環境を作ります。プロジェクトごとに作るのがおすすめですが、ここでは ~/wandb_env という名前で作ります。




ubuntu@linuxlab: ~
$ python3 -m venv ~/wandb_env
$ source ~/wandb_env/bin/activate
(wandb_env) $

プロンプトが (wandb_env) に変わったら仮想環境が有効です。次回ターミナルを開いたときは再度 source ~/wandb_env/bin/activate が必要です。毎回が面倒なら ~/.bashrc に追記するか、プロジェクトごとに仮想環境を作る運用がおすすめです。

手順3:wandb のインストール

仮想環境が有効な状態で pip install wandb を実行します。実際に ubuntu:24.04 の venv で実行したログがこちらです。

venv に wandb 0.27.2 をインストールした実測スクリーンショット(実測)
venv に wandb 0.27.2 をインストールした実測スクリーンショット(実測)

結果として wandb 0.27.2 と依存19パッケージ、合計20個がインストールされました。主要な依存は GitPython 3.1.50protobuf 7.35.1pydantic 2.13.4click 8.4.1requests 2.34.2sentry-sdk 2.62.0 などです。wandb --versionwandb, version 0.27.2 を返しました。

wheel サイズの注意

「wandb の wheel は 6.8MB」という記述を見かけますが、これは実測値とは異なります。今回 PyPI と実インストールで確認したところ、wandb 0.27.2 の wheel は manylinux_2_28_aarch6423.4MBx86_6425.2MB でした。プラットフォーム別にビルドされた、それなりに大きいパッケージです。

wandb の PyPI 実メタデータ

導入前にパッケージの素性を把握しておくと安心です。https://pypi.org/pypi/wandb/json を実取得して、最新版・公開日・依存数などの一次データを確認しました。

wandb 0.27.2 の PyPI 実メタデータ(実測)
wandb 0.27.2 の PyPI 実メタデータ(実測)

wandb は これまで330回リリースされている成熟プロジェクトで、最新の 0.27.2 は 2026-06-06 公開です。requires_dist は55件ですが、その多くは awsazuregcp といった extra(オプション)依存です。最小構成での導入は軽く、Axolotl のように PyTorch などの巨大ライブラリを必須依存に引き込むことはありません。

wandb アカウントと API キーの設定

①アカウントの作成

wandb.ai にアクセスして GitHub / Google / Apple / Microsoft のいずれかでサインアップします。メールアドレスでの登録も可能です。公式の Quickstart ドキュメント(docs.wandb.ai/quickstart)に沿って進めると迷いません。

wandb Quickstart ドキュメントページ(docs.wandb.ai・Playwright 実撮影)
wandb Quickstart ドキュメントページ(docs.wandb.ai・Playwright 実撮影)

②APIキーの取得と設定

ログイン後、ドキュメントの案内どおり User Settings → API keys(または https://wandb.ai/authorize)から API キーを発行します。ターミナルでは wandb login を実行してキーを貼り付けます。




ubuntu@linuxlab: ~
(wandb_env) $ wandb login
wandb: You can find your API key here: https://wandb.ai/authorize
wandb: Paste an API key from your profile and hit enter:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ← APIキーを貼り付けてEnter
wandb: Appending key for api.wandb.ai to your netrc file: /root/.netrc
wandb: Successfully logged in to Weights & Biases!

一度ログインすると ~/.netrc に認証情報が保存されるので次回以降は不要です。API キーは絶対に公開リポジトリにコミットしないように注意してください。

注意:APIキーの扱い

~/.netrc に保存された API キーは cat ~/.netrc で平文のまま読めます。VPS を複数人で共有している場合や公開サーバーでは、ファイルに保存せず WANDB_API_KEY 環境変数で渡す方法を検討してください。

最初の ML 実験をトラッキングする

最小構成のサンプルコード

以下が wandb を使った最小構成のコードです。PyTorch・TensorFlow・scikit-learn など任意のフレームワークと組み合わせて使えます。




train.py
# train.py — wandb 最小サンプル
import wandb, math

# ① 実験を初期化(プロジェクト名と設定を渡す)
run = wandb.init(
project=”linuxlab-test”,
name=”offline-demo-001″,
config={“learning_rate”: 0.001, “batch_size”: 32, “epochs”: 5},
)

# ② 学習ループ(ここに実際のモデル訓練コードを書く)
for step in range(5):
loss = math.exp(-0.4 * step) + 0.05
acc = 1.0 – loss * 0.9
# ③ メトリクスをログ
wandb.log({“train/loss”: round(loss, 4),
“train/accuracy”: round(acc, 4)}, step=step)

# ④ 実験を終了
run.finish()

wandb.init()config(ハイパーパラメータ)を渡すのが最初のポイントです。config の値は wandb ダッシュボードで自動的に記録され、複数の run を比較するときにどのパラメータが違ったかが一目でわかります。

オフラインモードで使う

「まず試したいけどアカウント作成が面倒」「ネットに繋がらない環境で使いたい」という場合はオフラインモードが便利です。実際に ubuntu:24.04 の venv で WANDB_MODE=offline を付けて上記の train.py を実走させた結果がこちらです。

wandb オフラインモードの実走スクリーンショット(実測)
wandb オフラインモードの実走スクリーンショット(実測)

実測では、アカウント・ネットワークなしでも run が完走し、wandb login すら求められませんでした。Run ID 0iurw9ls が払い出され、./wandb/offline-run-20260615_092932-0iurw9ls/ 配下に4ファイル(run-0iurw9ls.wandblogs/debug.loglogs/debug-internal.logfiles/requirements.txt)が保存されました。終了時には loss が 1.0500 → 0.2519、accuracy が 0.0550 → 0.7733 と推移し、ターミナルに ▁▄▆▇█ のスパークラインで履歴サマリまで表示されます。




ubuntu@linuxlab: ~/proj
(wandb_env) $ WANDB_MODE=offline python3 train.py
wandb: Tracking run with wandb version 0.27.2
wandb: W&B syncing is set to `offline` in this directory.
wandb: Run data is saved locally in ./wandb/offline-run-20260615_092932-0iurw9ls
wandb: train/accuracy 0.7733
wandb: train/loss 0.2519
(wandb_env) $ wandb sync ./wandb/offline-run-20260615_092932-0iurw9ls
wandb: Uploading existing local W&B run data to the cloud.

このように wandb sync でいつでもクラウドにアップロードできます。閉域環境で学習だけ回しておき、後でネットのある環境からまとめて同期する、といった運用が可能です。

よく使う wandb 機能

①ハイパーパラメータの記録

wandb.init(config={...}) または wandb.config.update({...}) で設定値を記録します。ダッシュボードで複数 run のハイパーパラメータと精度を横並びで比較できます。

②モデルの保存(Artifacts)

学習済みモデルを wandb Artifacts として保存すると、バージョン管理・ダウンロード・再現性確保が楽になります。




ubuntu@linuxlab: ~/proj
# モデルを Artifact として保存
artifact = wandb.Artifact(“model-checkpoint”, type=”model”)
artifact.add_file(“model.pt”)
run.log_artifact(artifact)

# 後で取得する場合
artifact = run.use_artifact(“model-checkpoint:latest”)
artifact_dir = artifact.download()

③sweeps でハイパーパラメータ自動探索

学習率・バッチサイズの組み合わせを自動で試したい場合は wandb sweeps が使えます。設定ファイルを書いて wandb sweep sweep.yamlwandb agent <sweep-id> で複数の組み合わせを並列実行できます。




sweep.yaml
# sweep.yaml
program: train.py
method: bayes
metric:
name: train/loss
goal: minimize
parameters:
learning_rate:
values: [0.0001, 0.001, 0.01]
batch_size:
values: [16, 32, 64]

よくあるエラーと解決策

error externally-managed-environment(PEP 668)

Ubuntu 24.04 で仮想環境を作らずに直接 pip install wandb を実行すると出るエラーです(本記事の手順1で実際に再現した通り)。解決策python3 -m venv ~/wandb_env && source ~/wandb_env/bin/activate で仮想環境を作成・有効化してから再度 pip install wandb を実行することです。22.04 ではこのエラーは出ません。

No module named ‘wandb’

仮想環境を有効化していない状態で python3 を実行するとこのエラーが出ます。source ~/wandb_env/bin/activate でプロンプトが (wandb_env) になっているか確認してから再実行してください。

ネットに繋がらない環境で固まる

オンラインモードのままネットワークなしで起動すると、クラウド送信のリトライで待たされることがあります。WANDB_MODE=offline を設定するか wandb offline コマンドでオフラインモードに切り替えてください。前述のとおりオフラインでも run は問題なく完走します。

VPS で wandb を使う際の注意点

Vultr や DigitalOcean の VPS で ML 実験を行う場合、以下が実務上のポイントです。なお VPS への SSH 接続用に ssh-keygen -t ed25519 で鍵を作っておくと安全です(ubuntu:24.04 の OpenSSH 9.6p1 で生成を実確認しました)。

  • ポートは不要:wandb はクラウドへのアウトバウンド HTTPS 通信なので、UFW でポートを開ける必要はありません
  • tmux / screen を使う:長時間学習は SSH セッションが切れると止まります。tmux new -s train でセッションを作り、その中で実行するのが定番です
  • ディスク I/O は速い:今回の検証環境で dd(512MB×3回)を実測したところ、書き込み平均約 1.5GB/s・読み込み平均約 3.7GB/s でした。モデルやデータセットのロードがボトルネックになりにくい水準です
  • GPU インスタンスと組み合わせる:wandb は GPU メモリ使用量なども自動記録します(NVIDIA GPU + CUDA 環境)

どの VPS を選べばよいか迷う場合は、料金・東京リージョン・スペックを実測比較した記事も参考にしてください。

まとめ

Ubuntu 24.04 LTS への wandb セットアップを実際に動かして確認しました。

  • wandb の PyPI 最新版は 0.27.2(2026-06-06 公開・MIT・全330リリース)、要件は Python ≥ 3.10
  • Ubuntu 24.04 は PEP 668 が効くため python3 -m venv で仮想環境を作ってから pip install wandb する(22.04 にはこの制約なし)
  • wandb 本体の wheel は約 23.4MB(aarch64)、依存込みで合計20パッケージがインストールされた
  • WANDB_MODE=offline でアカウント・ネットなしでも run が完走し、Run ID 0iurw9ls・4ファイルが生成された
  • wandb.init() → wandb.log() → run.finish() の3ステップだけで実験トラッキングが始まる

ML の実験管理は「あとから困る」ものです。早めに wandb を組み込む習慣をつけておくと、チューニングの試行錯誤がぐっとラクになります。

著者アイコン
著者アイコン

個人的に wandb で気に入っているのは、Git のブランチとコミットハッシュを自動記録してくれること。「あの精度が高かった実験、どのコードだっけ?」という悩みが一気に解決します。インストール時に GitPython 3.1.50 が一緒に入るのはそのためなんですね。

コメント

タイトルとURLをコピーしました