사용 패턴
사용 패턴 (검색)
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를 하나씩 호출하는 것보다 훨씬 빠르게 실행돼요.