スキップしてメイン コンテンツに移動

【RAG開発者必見】生成AIの「回答品質」を数値化するフレームワーク「Ragas」とは?

【RAG開発者必見】生成AIの「回答品質」を数値化するフレームワーク「Ragas」とは?

はじめに

「このRAGシステムの精度、なんか良い感じです」「昨日よりちょっと賢くなった気がします」。
このような曖昧な報告で開発を進めていませんか? ソフトウェア開発において「計測できないものは改善できない」のはAIも同じです。

今回は、RAGパイプラインの性能を科学的にスコアリングするためのオープンソースフレームワーク「Ragas (RAG Assessment)」を紹介します。

雰囲気で評価していませんか?

Risk

人間の目視チェック(Human Eval)は正確ですが、コストと時間がかかりすぎます。開発のたびに全件チェックするのは不可能です。

Ragasは、LLM自身を使ってLLMの出力を採点させる「LLM-as-a-Judge」のアプローチを採用し、評価プロセスを自動化します。

Ragasの3つの主要メトリクス

Ragasは以下の観点でスコア(0.0〜1.0)を算出します。

  • Faithfulness(忠実性): 回答が検索されたドキュメント(Context)の内容と矛盾していないか。「嘘をついていないか」の指標。
  • Answer Relevancy(回答関連性): ユーザーの質問に対して、的確に答えているか。「会話が噛み合っているか」の指標。
  • Context Precision(検索精度): 検索結果の上位に、本当に必要な正解ドキュメントが含まれているか。

データの準備とセットアップ

評価には「質問 (question)」「回答 (answer)」「検索された文脈 (contexts)」「正解 (ground_truth)」のセットが必要です。

from datasets import Dataset

data = {
    'question': ['フランスの首都は?'],
    'answer': ['パリです。'],
    'contexts': [['フランスの首都はパリであり、観光名所として...']],
    'ground_truth': ['パリ']
}
dataset = Dataset.from_dict(data)

評価の実行と分析

Ragasライブラリを使って評価を実行します。

from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy

results = evaluate(
    dataset,
    metrics=[faithfulness, answer_relevancy]
)

print(results)
# {'faithfulness': 0.95, 'answer_relevancy': 0.88}

このスコアをKPIとして監視することで、「モデルを変えたら精度が落ちた」といった異常を即座に検知できます。

まとめ

感覚的なチューニングから脱却し、Ragasで「数値に基づいた改善」サイクルを回しましょう。これがプロのAIエンジニアへの第一歩です。

次回は、これまでの単発的なChainを超えて、複雑なループや分岐を持つ自律型エージェントを構築するための「LangGraph」に入門します。

このブログ記事はAIを利用して自動生成されました。

コメント