💬

研究のための W&B Weave を使った実験とLLM評価

2025/03/04に公開

以前 W&B Weave を使ってみたという記事を書いたのですが、この記事を書いたときに行っていた研究でも Weave をフル活用していました。今回の記事は Weave を使うと何ができるのか、何が嬉しいのか、ということに関する記事です。
https://zenn.dev/sjh4/articles/9c7a7cb472cccb

欲しいもの

実験の結果と実験の設定は必ず記録する必要がありますが、実験スクリプトを実行するたびにいちいち記録するのはめんどくさいです。というかどこかで忘れます。それほど自分のことは信用していません。今ここで求められているのはなるべく楽してこのあたりの細々したことを勝手にやってくれるものです。
つまり、

  • 実験結果の保存
  • 実験設定の保存
    • できればソースコードを保存してほしい。ついついハードコーディングしてるかもしれないので。

をして欲しいです。正直これくらいなら自前で用意できますが、メンテするのも大変なので Weave を使っています。

Weave で(半自動的に)記録されるもの

公式ドキュメントの通りに評価用スクリプトを書くと

  • 評価用データセット
  • モデルのid (OpenAI API のものだったり、 Huggingface のものだったり、ファイルパスだったり)
  • プロンプト(のテンプレート)
  • prediction (inference) をする部分の実装
  • 各データに対する出力、コスト
  • 各出力に対するスコア(正解・不正解とか)
  • 出力全体に対するスコア(正答率とか)

あたりが自動的に記録されます。
今回は単純な正解・不正解と正答率をスコアとして使っていますが、もちろん BERTScore や F1 score なども使えます。

↓データセットの記録
データセットのログの例

↓prediction の実装の記録
古いバージョンのときのものだからだと思いますが、 preidct 関数が呼び出している関数は保存されていません。現在のバージョン (v0.51.31) では predict 関数に依存しているものも保存されています。
predict コードのログの例

↓ 出力の記録
出力の例

大切なこと:バックアップ

Weave を使って実験をすれば、基本的に結果の再現に必要な情報はほとんどすべて記録されます。一方で、結果をクラウドだけに置いておくのは何かと不安になると思います。そこでエクスポート機能を使います。主要なフォーマットで出力できるので、バックアップとしてデータをエクスポートしつつ、普段は簡単に web 上で結果を確認したり比較したりできます。

↓エクスポートの例
エクスポートの例

Discussion