📖 Evaluation Set を使用したオフライン評価の実行

プレビュー

この機能は プライベート プレビュー段階です。 お試しになるには、Databricks の担当者にお問い合わせください。

別のRAG Studioドキュメントをお探しですか?RAGドキュメントインデックスに移動

このチュートリアルでは、 📖 Evaluation Set を使用してRAGアプリケーションの品質/コスト/レイテンシを評価するプロセスについて説明します。 このステップは、RAGアプリケーションの新しいバージョンを作成した後に実行され、アプリケーションのパフォーマンスが向上し、パフォーマンスの低下が起こらなかったかどうかを評価します。

このチュートリアルでは、Databricks が提供するサンプル評価セットを使用します - 次のチュートリアルでは、 独自の評価セットを作成する ために ユーザーフィードバックを収集 するプロセスについて説明します。

データフロー

伝説

ステップ 1: サンプル評価セットを読み込む

  1. Databricks ノートブックを開き、次のコードを実行して、サンプル 📖 Evaluation Set を Unity Catalog スキーマに保存します。

    注:

    RAG Studioでは、任意のUnity Catalogスキーマに格納されている 📖 Evaluation Setの使用がサポートされていますが、Databricksでは、組織的な目的で、評価セットをRAGアプリケーションと同じUnity Catalogスキーマに保持することをお勧めします。

    import requests
    import pandas as pd
    from pyspark.sql.types import StructType, StructField, StringType, TimestampType, ArrayType
    
    schema = StructType([StructField('request', StructType([StructField('request_id', StringType(), True), StructField('conversation_id', StringType(), True), StructField('timestamp', TimestampType(), True), StructField('messages', ArrayType(StructType([StructField('role', StringType(), True), StructField('content', StringType(), True)]), True), True), StructField('last_input', StringType(), True)]), True), StructField('ground_truth', StructType([StructField('text_output', StructType([StructField('content', StringType(), True)]), True), StructField('retrieval_output', StructType([StructField('name', StringType(), True), StructField('chunks', ArrayType(StructType([StructField('doc_uri', StringType(), True), StructField('content', StringType(), True)]), True), True)]), True)]), True)])
    
    df = spark.createDataFrame(
        pd.read_json("http://docs.databricks.com/_static/notebooks/rag-studio/example_evaluation_set.json"),
        schema,
    )
    df.write.format("delta").mode("overwrite").saveAsTable(
        'catalog.schema.example_evaluation_set'
    )
    
  2. 読み込まれた 📖 Evaluation Set を調べて、スキーマを理解します。

    注:

    requestスキーマは、<rag-response-log> のrequestスキーマと同じであることがわかります。これは、要求ログを評価セットに簡単に変換できるようにするためのものです。

    • request:RAGアプリケーションへのユーザーの入力

    • ground_truth: 応答ステップと取得ステップのグラウンドトゥルースラベル

    ログ

ステップ 2: コンピュート メトリクスへのオフライン評価の実行

  1. コンソールで次のコマンドを実行して、最初のチュートリアルで作成したアプリケーションのバージョン 1 で評価セットを実行します。このジョブの完了には約 10 分かかります。

    ./rag run-offline-eval  --eval-table-name catalog.schema.example_evaluation_set -v 1 -e dev
    

    注:

    舞台裏では何が起きているのか?

    バックグラウンドでは、チェーンバージョン 1 は、チェーンの提供方法と同じコンピュート環境を使用して、 catalog.schema.example_evaluation_set の各行で実行されます。 catalog.schema.example_evaluation_setの各行について:

    • 行は、評価セットと同じ Unity Catalog スキーマ内の catalog.schema.example_evaluation_set_request_log と呼ばれる🗂️ Request Logに書き込まれます

    • catalog.schema.example_evaluation_set_assessment_logと呼ばれる👍 Assessment & Evaluation Results Logに、<llm-judge> 評価とメトリクス計算の行が書き込まれます

    テーブルの名前は、入力評価セット テーブルの名前に基づきます。

    🗂️ Request Log👍 Assessment & Evaluation Results Logのスキーマは、ログの表示チュートリアルで表示したログと意図的に同一であることに注意してください。

    results

ステップ3:メトリクスUIを開く

  1. 次のコマンドを実行して、メトリクス ノートブックを開きます。 このジョブの完了には約 10 分かかります。

    注:

    アプリケーションに複数のバージョンがある場合は、バージョンごとにステップ 2 を実行し、 --versions 2,3,4 または --versions * を渡してノートブック内の異なるバージョンを比較できます。

    ./rag explore-eval --eval-table-name catalog.schema.example_evaluation_set -e dev --versions 1
    
  2. コンソール出力に表示される URL をクリックします。

  3. クリックすると、Databricks ジョブに関連付けられているノートブックが開きます。

    results
  4. 最初の 2 つのセルを実行してウィジェットに入力し、ステップ 2 のテーブルの名前を入力します。

    • assessment_log_table_namecatalog.schema.example_evaluation_set_assessment_log

    • request_log_table_namecatalog.schema.example_evaluation_set_request_log

  5. ノートブック内のすべてのセルを実行して、評価セットのメトリクス コンピュートを表示します。

    results

次のチュートリアルに従ってください!

エキスパートユーザーからの🧠フィードバックの収集