Model クラスと Evaluation クラスによる評価のトラッキングをネイティブにサポートしています。API は前提を最小限に抑えて設計されているため、幅広いユースケースに柔軟に対応できます。

このガイドで学ぶこと
Modelを設定する。- LLM の応答をテストするためのデータセットを作成する。
- モデルの出力を期待される出力と比較するスコアリング関数を定義する。
- スコアリング関数と追加の組み込み Scorer を使用して、データセットに対するモデルの評価を実行する。
- 評価結果を Weave UI で確認する。
前提条件
- W&Bアカウント
- Python 3.10+ または Node.js 18+
- 必要なパッケージがインストールされていること:
- Python:
pip install weave openai - TypeScript:
npm install weave openai
- Python:
- OpenAI APIキー が環境変数として設定されていること。
必要なライブラリと関数をインポートする
- Python
- TypeScript
Model を作成する
Models はオブジェクトであり、モデルまたはエージェントの動作 (ロジック、prompt、パラメーター) と、バージョン管理されたメタデータ (パラメーター、code、マイクロ設定) の両方を取得します。これにより、モデルを確実にトラッキング、比較、評価し、反復的に改善できます。
Model をインスタンス化すると、Weave はその設定と動作を自動的に取得し、変更が発生するとバージョンを更新します。これにより、改善を重ねながら、時間の経過に伴うパフォーマンスをトラッキングできます。
Model を宣言するには、Model をサブクラス化し、1 つの example を受け取って response を返す predict 関数を実装します。
次のモデル例では、OpenAI を使用して入力文からエイリアンの果物の名前、色、味を抽出します。
- Python
- TypeScript
ExtractFruitsModel クラスは weave.Model を継承 (サブクラス化) しているため、Weave はインスタンス化されたオブジェクトをトラッキングできます。@weave.op は predict 関数をデコレートし、その inputs と 出力 をトラッキングします。
Model オブジェクトは次のようにインスタンス化できます。
- Python
- TypeScript
データセットを作成する
Model を定義したら、次はそれを評価するためのデータセットが必要です。Dataset は Weaveオブジェクトとして保存されるサンプルのコレクションです。データセットを Weave に公開するとバージョン管理され、評価 run 間で再利用できるようになります。
次のデータセット例では、3 つの入力文のサンプルとそれぞれの正解 (labels) を定義し、スコアリング関数が読み取れる JSON の表形式に整形します。
この例では、コード内でサンプルのリストを作成していますが、実行中のアプリケーションから 1 件ずつログすることもできます。
- Python
- TypeScript
weave.Dataset() クラスを使ってデータセットを作成し、公開します。
- Python
- TypeScript
カスタムのスコアリング関数を定義する
target と比較し、評価がレポートするメトリクスを生成します。
Weave の評価を使用する場合、Weave では output と比較するための target が必要です。次のスコアリング関数は 2 つの辞書 (target と output) を受け取り、出力が target と一致するかどうかを示す真偽値の辞書を返します。@weave.op() デコレーターを使うと、Weave でスコアリング関数の実行をトラッキングできます。
- Python
- TypeScript
Scorer クラスを作成したい場合があります。たとえば、特定のパラメーター (チャットモデルやプロンプトなど) 、特定の行に対するスコアリング、集約スコアの計算を備えた、標準化された LLMJudge クラスを作成できます。詳細は、RAG アプリケーションのモデルベース評価 にある Scorer クラスの定義に関するチュートリアルを参照してください。
組み込み Scorer を使用して評価を実行する
weave.Evaluation() は前のセクションで定義した fruit_name_score 関数と、F1 スコアを計算する組み込みの MultiTaskBinaryClassificationF1 Scorer を使用します。
次の例では、2 つのスコアリング関数を使用して fruits データセット上で ExtractFruitsModel を評価し、その結果を Weave にログします。
- Python
- TypeScript
Python スクリプトから実行する場合は、
asyncio.run を使用する必要があります。一方、Jupyter Notebook から実行する場合は、await を直接使用できます。完全な例
1つのスクリプトで完結する評価パイプライン:
1つのスクリプトで完結する評価パイプライン:
- Python
- TypeScript
評価結果を確認する

Weave の評価についてさらに詳しく見る
- scorer の構築方法と使用方法について詳しく学びます。
- Weave の組み込みスコアリング関数を確認します。
- LLM を判定者として使用するモデルベース評価について学びます。