【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」に入門します。
コメント
コメントを投稿