研究のための W&B Weave を使った実験とLLM評価
以前 W&B Weave を使ってみたという記事を書いたのですが、この記事を書いたときに行っていた研究でも Weave をフル活用していました。今回の記事は Weave を使うと何ができるのか、何が嬉しいのか、ということに関する記事です。
欲しいもの
実験の結果と実験の設定は必ず記録する必要がありますが、実験スクリプトを実行するたびにいちいち記録するのはめんどくさいです。というかどこかで忘れます。それほど自分のことは信用していません。今ここで求められているのはなるべく楽してこのあたりの細々したことを勝手にやってくれるものです。
つまり、
- 実験結果の保存
- 実験設定の保存
- できればソースコードを保存してほしい。ついついハードコーディングしてるかもしれないので。
をして欲しいです。正直これくらいなら自前で用意できますが、メンテするのも大変なので Weave を使っています。
Weave で(半自動的に)記録されるもの
公式ドキュメントの通りに評価用スクリプトを書くと
- 評価用データセット
- モデルのid (OpenAI API のものだったり、 Huggingface のものだったり、ファイルパスだったり)
- プロンプト(のテンプレート)
- prediction (inference) をする部分の実装
- 各データに対する出力、コスト
- 各出力に対するスコア(正解・不正解とか)
- 出力全体に対するスコア(正答率とか)
あたりが自動的に記録されます。
今回は単純な正解・不正解と正答率をスコアとして使っていますが、もちろん BERTScore や F1 score なども使えます。
↓データセットの記録
↓prediction の実装の記録
古いバージョンのときのものだからだと思いますが、 preidct
関数が呼び出している関数は保存されていません。現在のバージョン (v0.51.31) では predict
関数に依存しているものも保存されています。
↓ 出力の記録
大切なこと:バックアップ
Weave を使って実験をすれば、基本的に結果の再現に必要な情報はほとんどすべて記録されます。一方で、結果をクラウドだけに置いておくのは何かと不安になると思います。そこでエクスポート機能を使います。主要なフォーマットで出力できるので、バックアップとしてデータをエクスポートしつつ、普段は簡単に web 上で結果を確認したり比較したりできます。
↓エクスポートの例
Discussion