Skip to main content
このチュートリアルでは、LLM アプリケーションの改善を繰り返しながら品質を測定し、トラッキングできるよう、Weave でエンドツーエンドの評価パイプラインを構築する手順を説明します。評価では、一貫したサンプルセットを使って変更を比較し、ユーザーに影響が及ぶ前に品質の低下を検出できます。このチュートリアルは、LLM を活用したアプリケーションを構築し、再現可能な方法でテストしたい開発者を対象としています。 Weave は、Model クラスと Evaluation クラスによる評価のトラッキングを標準でサポートしています。これらの API は前提条件を最小限に抑えているため、幅広いユースケースに対応できます。 評価のメイン画像

このガイドで学ぶこと

このガイドでは、以下の方法を説明します。
  • Model を設定します。
  • LLM の応答をテストするためのデータセットを作成します。
  • モデル出力を期待される出力と比較するスコアリング関数を定義します。
  • スコアリング関数と追加の組み込みScorerを使用して、データセットに対してモデルをテストする評価を実行します。
  • Weights & Biases UI で評価結果を確認します。
このガイドを終えると、サンプルモデルをデータセットに対してスコア付けし、結果を Weave にログする評価パイプラインが動作するようになります。

前提条件

  • CoreWeave Forge アカウント
  • Python 3.10 以降または Node.js 18 以降
  • 必須パッケージがインストールされていること:
    • Python: pip install weave openai
    • TypeScript: npm install weave openai
  • OpenAI APIキーが環境変数として設定されていること。

必要なライブラリと関数をインポートする

次のライブラリをスクリプトにインポートします。

Model を構築する

ライブラリの準備ができたら、次のステップは評価するモデルを定義することです。 Weave では、Models はオブジェクトです。モデルやエージェントの動作 (ロジック、プロンプト、パラメーター) と、バージョン管理されたメタデータ (パラメーター、コード、詳細設定) の両方を取得するため、トラッキング、比較、評価、反復的な改善を確実に行えます。 Model をインスタンス化すると、Weave はその設定と動作を自動的に取得し、変更が発生するとバージョンを更新します。これにより、反復的に改善しながら、パフォーマンスの推移をトラッキングできます。 Model を宣言するには、Model をサブクラス化し、1 つの例を受け取って応答を返す predict 関数を実装します。 次のモデルの例では、OpenAI を使用して、入力文から異星の果物の名、色、味を抽出します。
ExtractFruitsModel クラスは weave.Model を継承 (サブクラス化) するため、Weave はインスタンス化されたオブジェクトをトラッキングできます。@weave.op は predict 関数をデコレートし、その入力と出力をトラッキングします。 Model オブジェクトは次のようにインスタンス化できます。

データセットを作成する

Model を定義したら、次はモデルを評価するためのデータセットが必要です。Dataset は、Weave オブジェクトとして保存されるサンプルのコレクションです。データセットを Weave にパブリッシュすると、バージョンが付与され、複数の評価 run で再利用できるようになります。 次のサンプルデータセットでは、3 つの入力文とそれぞれの正解 (labels) を定義し、スコアリング関数が読み取れる JSON 形式の表に整えます。 この例ではコード内でサンプルのリストを作成しますが、実行中のアプリケーションから 1 件ずつログすることもできます。
次に、weave.Dataset() クラスを使用してデータセットを作成し、パブリッシュします。

カスタムスコアリング関数を定義する

モデルとデータセットが用意できたら、各例に対するモデルの性能を測定する方法が必要です。スコアリング関数は、モデルの出力と期待されるターゲットを比較し、評価で報告されるメトリクスを生成します。 Weave の評価を使用する場合、Weave は output の比較対象として target を必要とします。次のスコアリング関数は、2 つの辞書 (target と output) を受け取り、出力がターゲットと一致するかどうかを示す真偽値の辞書を返します。@weave.op() デコレーターにより、Weave はスコアリング関数の実行をトラッキングできます。
独自のスコアリング関数の作成について詳しくは、Scorer ガイドを参照してください。 アプリケーションによっては、カスタムの Scorer クラスを作成したい場合があります。たとえば、特定のパラメーター (チャットモデルやプロンプトなど) 、特定の行のスコアリング、集計スコアの計算を備えた標準化された LLMJudge クラスを作成できます。詳しくは、RAG アプリケーションのモデルベース評価 にある Scorer クラスの定義に関するチュートリアルを参照してください。

組み込みScorerを使用して評価を実行する

モデル、データセット、カスタムScorerが揃ったので、すべてを組み合わせて評価 run を実行する準備ができました。 カスタムのスコアリング関数に加えて、Weave の組み込みScorerも使用できます。以下の評価では、weave.Evaluation() が前のセクションで定義した fruit_name_score 関数と、F1 スコアを計算する組み込みの MultiTaskBinaryClassificationF1 Scorerを使用します。 以下の例では、2 つのスコアリング関数を使用して fruits データセットで ExtractFruitsModel を評価し、結果を Weave にログします。
Python スクリプトから実行する場合は、asyncio.run を使用する必要があります。ただし、Jupyter ノートブックから実行する場合は、await を直接使用できます。

完全な設定例

評価結果を表示する

評価が完了すると、Weights & Biases UI で各予測と Scorer の結果を検査できます。Weave は各予測とスコアのトレースを自動的に取得します。結果を表示するには、評価が出力するリンクをクリックしてください。 評価結果

Weave の評価についてさらに学ぶ

これで評価パイプラインが完成しました。Weave の評価機能をさらに詳しく知るには、次のリソースを参照してください。

次のステップ

RAG アプリケーションを構築して、検索拡張生成の評価について学びます。
最終更新日 2026年9月30日