RAGAS
RAGAS (检索增强生成评估) 是一个专为 LLM 应用设计的评估框架。MLflow 的 RAGAS 集成允许您使用 RAGAS 指标作为 MLflow 评分器来评估检索质量、答案生成以及 LLM 应用的其他方面。
先决条件
RAGAS 评分器需要 ragas 包
bash
pip install ragas
快速入门
您可以直接调用 RAGAS 评分器
python
from mlflow.genai.scorers.ragas import Faithfulness
scorer = Faithfulness(model="openai:/gpt-4")
feedback = scorer(trace=trace)
print(feedback.value) # Score between 0.0 and 1.0
print(feedback.rationale) # Explanation of the score
或者在 mlflow.genai.evaluate 中使用它们
python
import mlflow
from mlflow.genai.scorers.ragas import Faithfulness, ContextPrecision
traces = mlflow.search_traces()
results = mlflow.genai.evaluate(
data=traces,
scorers=[
Faithfulness(model="openai:/gpt-4"),
ContextPrecision(model="openai:/gpt-4"),
],
)
可用的 RAGAS 评分器
RAGAS 评分器根据其评估重点进行分类
RAG (检索增强生成) 指标
评估 RAG 系统中的检索质量和答案生成
| 评分器 | 它评估什么? | RAGAS 文档 |
|---|---|---|
| ContextPrecision | 相关检索到的文档是否比不相关的文档排名更高? | 链接 |
| NonLLMContextPrecisionWithReference | 使用参考答案的上下文精度非 LLM 版本 | 链接 |
| ContextRecall | 检索上下文是否包含回答查询所需的所有信息? | 链接 |
| NonLLMContextRecall | 使用参考答案的上下文召回率非 LLM 版本 | 链接 |
| ContextEntityRecall | 来自预期答案的实体是否出现在检索到的上下文中? | 链接 |
| NoiseSensitivity | 模型对上下文中无关信息的敏感度如何? | 链接 |
| Faithfulness | 输出是否与检索上下文在事实上一致? | 链接 |
自然语言比较
通过自然语言比较来评估答案质量
| 评分器 | 它评估什么? | RAGAS 文档 |
|---|---|---|
| FactualCorrectness | 与预期答案相比,输出是否在事实上是正确的? | 链接 |
| NonLLMStringSimilarity | 输出和预期答案之间的字符串相似度 | 链接 |
| BleuScore | 用于文本比较的 BLEU 分数 | 链接 |
| ChrfScore | 用于文本比较的 CHRF 分数 | 链接 |
| RougeScore | 用于文本比较的 ROUGE 分数 | 链接 |
| StringPresence | 输出中是否存在特定字符串? | 链接 |
| ExactMatch | 输出是否与预期输出完全匹配? | 链接 |
通用
适用于各种用例的灵活评估指标
| 评分器 | 它评估什么? | RAGAS 文档 |
|---|---|---|
| AspectCritic | 使用 LLM 评估输出的特定方面 | 链接 |
| RubricsScore | 根据预定义的评分标准为输出评分 | 链接 |
| InstanceRubrics | 根据特定于实例的评分标准为输出评分 | 链接 |
其他任务
特定任务的专用指标
| 评分器 | 它评估什么? | RAGAS 文档 |
|---|---|---|
| SummarizationScore | 文本摘要的质量 | 链接 |
按名称创建评分器
您还可以使用 get_scorer 动态创建 RAGAS 评分器
python
from mlflow.genai.scorers.ragas import get_scorer
# Create scorer by name
scorer = get_scorer(
metric_name="Faithfulness",
model="openai:/gpt-4",
)
feedback = scorer(trace=trace)
配置
RAGAS 评分器接受特定于指标的参数。任何额外的关键字参数都将直接传递给 RAGAS 指标构造函数
python
from mlflow.genai.scorers.ragas import Faithfulness, ContextPrecision, ExactMatch
# LLM-based metric with model specification
scorer = Faithfulness(model="openai:/gpt-4")
# Non-LLM metric (no model required)
deterministic_scorer = ExactMatch()
有关特定于指标的参数和高级用法,请参阅 RAGAS 文档。