사용 패턴

사용 패턴 (검색)

RetrieverEvaluator를 사용해 단일 쿼리 + 정답 문서 집합에 대해 검색기를 평가하는 방법을 알아봐요.

출처: 문서

본문

RetrieverEvaluator 사용하기

이것은 검색기(retriever)가 주어졌을 때 단일 쿼리 + 정답 문서 집합에 대해 평가를 실행해요. 표준 관행은 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를 하나씩 호출하는 것보다 훨씬 빠르게 실행돼요.

더 알아보기 (Learn more)