Skip to content
LlamaIndex 文档版本 跟随上游 源快照 52338aa9 更新于 2026-10-15

使用 RetrieverEvaluator

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

常规做法是通过 from_metrics 指定一组要使用的指标。

from llama_index.core.evaluation import RetrieverEvaluator

# define retriever somewhere (e.g. from index)
# 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 对象(包含 queries、relevant_docs 与 corpus)。

接入 RetrieverEvaluator

我们提供了一个便捷函数,可以批量方式在整个数据集上运行 RetrieverEvaluator。

eval_results = await retriever_evaluator.aevaluate_dataset(qa_dataset)

这比你逐条查询自己调用 .evaluate 要快得多。

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。