跳到内容

从 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 现在已被弃用,取而代之的是 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,改用新的 Knowledge Graph
  • 添加了 Transforms,它们将传入的文档转换为丰富的 Knowledge Graph
  • 通过 Synthesizer 对象提供更多自定义选项。另请参考文档。
  • 新工作流程使其成本更低,并且可以轻松保存中间状态

这可能有点棘手,但如果您在这里需要帮助,请随时在此处聊天或提及,我们很乐意为您提供帮助 🙂

Prompt 对象

所有 prompt 都已重写为使用 PydanticPrompts,它基于 BasePrompt 对象。如果您正在使用旧的 Prompt 对象,则必须将其升级到新的对象,请查看文档以了解如何操作的更多信息。

需要进一步帮助吗?

如果您有任何进一步的问题,请随时在此 github issue 中提出,或通过 cal.com 联系我们。