从 v0.1 到 v0.2 的迁移
v0.2 标志着 Ragas 从一个用于 RAG 流水线的评估库向一个更通用的库转变,您可以用它来评估构建的任何 LLM 应用。这意味着我们不得不对库进行一些根本性的更改,这些更改会破坏您现有的工作流程。希望本指南能让这次迁移尽可能容易。
大纲
- 评估数据集
- 指标
- 测试集生成
- Prompt 对象
评估数据集
我们已从使用 HuggingFace Datasets
迁移到我们自己的 EvaluationDataset
。您可以从核心概念部分阅读有关 EvaluationDataset 和 EvaluationSample 的更多信息。
您可以轻松地进行转换
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)
测试集生成
测试集生成已重新设计,以提高成本效率。如果您使用的是端到端工作流程,请查看入门指南。
显著变化
- 移除
Docstore
,改用新的Knowledge Graph
- 添加了
Transforms
,它们将传入的文档转换为丰富的 Knowledge Graph - 通过
Synthesizer
对象提供更多自定义选项。另请参考文档。 - 新工作流程使其成本更低,并且可以轻松保存中间状态
这可能有点棘手,但如果您在这里需要帮助,请随时在此处聊天或提及,我们很乐意为您提供帮助 🙂
Prompt 对象
所有 prompt 都已重写为使用 PydanticPrompts
,它基于 BasePrompt
对象。如果您正在使用旧的 Prompt
对象,则必须将其升级到新的对象,请查看文档以了解如何操作的更多信息。
需要进一步帮助吗?
如果您有任何进一步的问题,请随时在此 github issue 中提出,或通过 cal.com 联系我们。