Skip to content

使用模式(检索)#

使用 RetrieverEvaluator#

该方法针对给定的检索器,在单个查询+真实文档集上运行评估。

标准做法是通过 from_metrics 指定一组有效的评估指标。

from llama_index.core.evaluation import RetrieverEvaluator

# 在某处定义检索器(例如从索引创建)
# retriever = index.as_retriever(similarity_top_k=2)
retriever = ...

retriever_evaluator = RetrieverEvaluator.from_metric_names(
    ["mrr", "hit_rate"], retriever=retriever
)

retriever_evaluator.evaluate(
    query="query", expected_ids=["node_id1", "node_id2"]
)

构建评估数据集#

您可以手动整理包含问题+节点ID的检索评估数据集。我们还提供基于现有文本语料库的合成数据集生成功能 generate_question_context_pairs

from llama_index.core.evaluation import generate_question_context_pairs

qa_dataset = generate_question_context_pairs(
    nodes, llm=llm, num_questions_per_chunk=2
)

返回结果是一个 EmbeddingQAFinetuneDataset 对象(包含 queriesrelevant_docscorpus)。

RetrieverEvaluator 集成#

我们提供了一个便捷函数,用于以批处理模式在数据集上运行 RetrieverEvaluator

eval_results = await retriever_evaluator.aevaluate_dataset(qa_dataset)

这种方式比单独对每个查询调用 .evaluate 方法要高效得多。