从 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][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)
测试集生成
测试集生成功能经过重新设计,更具成本效益。如果您之前在使用端到端工作流程,请查看入门指南。
显著变化
- 移除了
Docstore,取而代之的是新的知识图谱 - 添加了
Transforms,它会将传入的文档转换为丰富的知识图谱 - 通过
Synthesizer对象实现更强的可定制性。另请参阅文档。 - 新的工作流程成本更低,并且可以轻松保存中间状态
这部分可能有些粗略,但如果您确实需要帮助,请随时在此处聊天或提及,我们很乐意为您提供帮助 🙂
Prompt 对象
所有提示都已重写以使用 PydanticPrompts,它基于 BasePrompt 对象。如果您正在使用旧的 Prompt 对象,您将需要将其升级到新版本,请查看文档以了解如何操作。
需要进一步协助吗?
如果您有任何其他问题,请随时在此 GitHub issue 中发布,或通过 cal.com 与我们联系。