[[wandb]]

wandb

Weights & Biases は、機械学習関連のあれこれを管理・可視化してくれるサービス。

機械学習は試行錯誤の過程で様々なデータセット・パラメータを検討するため、上手く管理しないと「これはどの設定でやったやつだっけ」がわからなくなる。
それを保存して、学習の進み具合や結果の精度もいい感じに可視化してくれるサービス。

Pythonスクリプト内からそのサービスを利用するためのAPI的なライブラリが wandb となる。

トラブルメモ

仮想環境内でのエージェントの実行

wandb はモジュールだが、直接ターミナルからコマンドで 'wandb sweep … ' のように実行することもできる。
pip や jupyter と似た感じ。

wandbを使ってハイパーパラメータチューニングを行いたい!となった時、ターミナルから

> wandb sweep {設定ファイル.yaml}

(設定ファイルが読まれ、sweep_id が発行される)

> wandb agent {sweep_id}

とすると、チューニングが開始される。(スクリプト内に設定を書いて、.py を実行するという形での実行ももちろんできる)

agentからは、逐次、学習を行うプロセスが立ち上げられるのだが、この際、venvなどの仮想環境を使っていると、 ターミナル上で 'wandb' コマンドを実行する時にはその環境が使われていても、立ち上げられるプロセスはグローバルなものが使用されてしまう。

設定ファイル.yaml内に「command」というセクションを追加することで対策できる。

グローバルから仮想環境のPythonを使用するコマンド(poetry なら 'poetry run python' など)を指定することで、 そのコマンドによって新規プロセスが立ち上げられるので、無事、仮想環境が使えるようになる。

設定ファイル.yaml
parameters:
  learning_rate:
    ... (略)

command:
  - poetry
  - run
  - python
  - ${program}
  - ${args}

※poetryの仮想環境の例

まぁ、ちゃんと読めば上記のドキュメントに書いてあるんだけどね。なかなか、その記述がこの問題に対応していると気付きにくい。

programming/python/packages/wandb.txt · 最終更新: 2023/12/13 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0