RAGChecker使用教程
1. 项目介绍
RAGChecker 是一个先进的自动化评估框架,专为评估和诊断检索增强生成(Retrieval-Augmented Generation, RAG)系统而设计。它提供了一套全面的指标和工具,用于对RAG性能进行深入分析。
RAGChecker 的特点包括:
- 整体评估:提供整体指标,用于评估整个RAG管道。
- 诊断指标:提供针对检索组件的诊断检索指标和针对生成组件的诊断生成指标,这些指标为针对性的改进提供了宝贵见解。
- 细粒度评估:利用声明级别的蕴含操作进行细粒度评估。
- 基准数据集:包含4000个问题,涵盖10个领域的全面RAG基准数据集(即将推出)。
- 元评估:提供人工标注的偏好数据集,用于评估RAGChecker结果与人类判断的相关性。
2. 项目快速启动
环境设置
首先,确保安装了以下依赖:
pip install ragchecker
python -m spacy download en_core_web_sm
运行检查管道(CLI)
请将您的数据处理为与 examples/checking_inputs.json
相同的格式。每个查询的唯一必需标注是“真实答案(gt_answer)”。
{
"results": [
{
"query_id": "<query id>",
"query": "<input query>",
"gt_answer": "<ground truth answer>",
"response": "<response generated by the RAG generator>",
"retrieved_context": [
{
"doc_id": "<doc id>",
"text": "<content of the chunk>"
},
...
]
},
...
]
}
使用以下命令运行检查管道,检查结果以及中间结果将保存到 --output_path
指定的文件中:
ragchecker-cli \
--input_path=examples/checking_inputs.json \
--output_path=examples/checking_outputs.json \
--extractor_name=bedrock/meta.llama3-1-70b-instruct-v1:0 \
--checker_name=bedrock/meta.llama3-1-70b-instruct-v1:0 \
--batch_size_extractor=64 \
--batch_size_checker=64 \
--metrics all_metrics
如果需要逐个检查(更慢但稍微准确一些),取消注释 --disable_joint_check
行。
运行检查管道(Python)
from ragchecker import RAGResults, RAGChecker
from ragchecker.metrics import all_metrics
# 从json/dict初始化ragresults
with open('examples/checking_inputs.json') as fp:
rag_results = RAGResults.from_json(fp.read())
# 设置评估器
evaluator = RAGChecker(
extractor_name="bedrock/meta.llama3-1-70b-instruct-v1:0",
checker_name="bedrock/meta.llama3-1-70b-instruct-v1:0",
batch_size_extractor=32,
batch_size_checker=32
)
# 使用选定指标或某些组评估结果,例如retriever_metrics, generator_metrics, all_metrics
evaluator.evaluate(rag_results, all_metrics)
print(rag_results)
3. 应用案例和最佳实践
(本节将介绍RAGChecker在实际应用中的案例和最佳实践,内容待补充。)
4. 典型生态项目
(本节将介绍与RAGChecker相关的典型生态项目,内容待补充。)
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考