跳转到内容

从 v0.1 迁移到 v0.2

v0.2 版本标志着 Ragas 开始从一个 RAG 管道评估库转变为一个更通用的库,可用于评估您构建的任何 LLM 应用程序。这意味着我们必须对库进行一些根本性的更改,这可能会破坏您现有的工作流程。希望本指南能使这一过渡尽可能简单。

大纲

  1. 评估数据集
  2. 评估指标
  3. 测试集生成
  4. Prompt 对象

评估数据集

我们已经从使用 HuggingFace Datasets 转向使用我们自己的 EvaluationDataset。您可以从核心概念部分阅读更多关于 EvaluationDatasetEvaluationSample 的信息。

您可以轻松地转换

from ragas import EvaluationDataset, SingleTurnSample

hf_dataset = ... # your huggingface evaluation dataset
eval_dataset = EvaluationDataset.from_hf_dataset(hf_dataset)

# save eval dataset
eval_dataset.to_csv("path/to/save/dataset.csv")

# load eva dataset
eval_dataset = EvaluationDataset.from_csv("path/to/save/dataset.csv")

评估指标

所有默认指标仍然受支持,并且新增了许多新指标。请查看文档页面以获取完整列表。

然而,在使用指标的方式上有一些变化

首先,现在推荐使用您选择的评估器 LLM 来初始化指标,而不是将已初始化的指标版本传入 evaluate()。这避免了很多关于哪个 LLM 在哪里使用的困惑。

from ragas.metrics import faithfullness # old way, not recommended but still supported till v0.3
from ragas.metrics import Faithfulness

# preffered way
faithfulness_metric = Faithfulness(llm=your_evaluator_llm)
其次,[metrics.ascore][ragas.metrics.base.Metric.ascore] 现已弃用,推荐使用 metrics.single_score。您可以进行如下转换

# create a Single Turn Sample
from ragas import SingleTurnSample

sample = SingleTurnSample(
    user_input="user query",
    response="response from your pipeline",
    retrieved_contexts=["retrieved", "contexts", "from your pipeline" ]
)

# Init the metric
from ragas.metrics import Faithfulness
faithfulness_metric = Faithfulness(llm=your_evaluator_llm)
await faithfulness_metric.single_turn_ascore(sample)
输出
1

测试集生成

测试集生成功能经过重新设计,更具成本效益。如果您之前在使用端到端工作流程,请查看入门指南

显著变化

  • 移除了 Docstore,取而代之的是新的知识图谱
  • 添加了 Transforms,它会将传入的文档转换为丰富的知识图谱
  • 通过 Synthesizer 对象实现更强的可定制性。另请参阅文档。
  • 新的工作流程成本更低,并且可以轻松保存中间状态

这部分可能有些粗略,但如果您确实需要帮助,请随时在此处聊天或提及,我们很乐意为您提供帮助 🙂

Prompt 对象

所有提示都已重写以使用 PydanticPrompts,它基于 BasePrompt 对象。如果您正在使用旧的 Prompt 对象,您将需要将其升级到新版本,请查看文档以了解如何操作。

需要进一步协助吗?

如果您有任何其他问题,请随时在此 GitHub issue 中发布,或通过 cal.com 与我们联系。