평가 데이터셋(Evaluation Dataset)
평가 데이터셋(Evaluation Dataset)
평가 데이터셋은 AI 애플리케이션의 성능과 역량을 평가하기 위해 설계된 데이터 샘플들의 동질적인 모음이에요. Ragas에서는 EvaluationDataset 클래스로 평가 데이터셋을 표현하며, 평가 목적의 데이터 샘플을 구조적으로 조직하고 관리할 수 있게 해줘요.
출처: 문서
본문
개요(Overview)
평가 데이터셋의 구조(Structure of an Evaluation Dataset)
평가 데이터셋은 다음으로 구성돼요:
- 샘플(Samples): SingleTurnSample 또는 MultiTurnSample 인스턴스의 모음. 각 샘플은 하나의 상호작용 또는 시나리오를 나타내요.
- 일관성(Consistency): 데이터셋 내 모든 샘플은 동일한 유형(전부 single-turn이거나 전부 multi-turn)이어야 평가의 일관성이 유지돼요.
효과적인 평가 데이터셋 큐레이션 가이드라인(Guidelines)
-
명확한 목표 정의(Define Clear Objectives): 평가하려는 AI 애플리케이션의 특정 측면과 테스트할 시나리오를 식별해요. 이러한 목표를 반영하는 데이터 샘플을 수집해요.
-
대표 데이터 수집(Collect Representative Data): 데이터셋이 다양한 시나리오, 사용자 입력, 기대 응답을 다루도록 해야 AI 애플리케이션을 종합적으로 평가할 수 있어요. 다양한 소스에서 데이터를 수집하거나 합성 데이터를 생성해서 이룰 수 있어요.
-
품질과 크기(Quality and Size): 의미 있는 통찰을 제공할 만큼 크지만 다루기 어려울 정도로 크지 않은 데이터셋을 목표로 해요. 데이터가 고품질이고 실제로 평가하려는 현실 시나리오를 정확히 반영하도록 해요.
SingleTurnSamples로부터 평가 데이터셋 만들기
이 예시에서는 여러 SingleTurnSample 인스턴스를 사용해 EvaluationDataset을 만드는 방법을 보여드릴게요. 개별 샘플 만들기, 데이터셋으로 조립하기, 데이터셋에 대한 기본 연산 수행까지 과정을 단계별로 살펴봐요.
Step 1: 필요한 클래스 가져오기 먼저 모듈에서 SingleTurnSample과 EvaluationDataset 클래스를 가져와요.
from ragas import SingleTurnSample, EvaluationDataset
Step 2: 개별 샘플 만들기 개별 평가 샘플을 나타내는 여러 SingleTurnSample 인스턴스를 만들어요.
# Sample 1
sample1 = SingleTurnSample(
user_input="What is the capital of Germany?",
retrieved_contexts=["Berlin is the capital and largest city of Germany."],
response="The capital of Germany is Berlin.",
reference="Berlin",
)
# Sample 2
sample2 = SingleTurnSample(
user_input="Who wrote 'Pride and Prejudice'?",
retrieved_contexts=["'Pride and Prejudice' is a novel by Jane Austen."],
response="'Pride and Prejudice' was written by Jane Austen.",
reference="Jane Austen",
)
# Sample 3
sample3 = SingleTurnSample(
user_input="What's the chemical formula for water?",
retrieved_contexts=["Water has the chemical formula H2O."],
response="The chemical formula for water is H2O.",
reference="H2O",
)
Step 3: EvaluationDataset 만들기 SingleTurnSample 인스턴스의 리스트를 전달해 EvaluationDataset을 만들어요.
dataset = EvaluationDataset(samples=[sample1, sample2, sample3])
Hugging Face 데이터셋에서 평가 데이터셋 불러오기
실무에서는 Hugging Face Datasets 라이브러리 같은 기존 데이터셋 소스에서 평가 데이터셋을 불러오고 싶을 수 있어요. 다음 예시는 Hugging Face 데이터셋에서 평가 데이터셋을 불러와 EvaluationDataset 인스턴스로 변환하는 방법을 보여줘요. 데이터셋에 사용자 입력, 검색 컨텍스트, 응답, 레퍼런스 같은 평가에 필요한 필드가 포함되어 있는지 확인하세요.
from datasets import load_dataset
dataset = load_dataset("vibrantlabsai/amnesty_qa","english_v3")
데이터셋을 Ragas EvaluationDataset 객체로 불러와요.
from ragas import EvaluationDataset
eval_dataset = EvaluationDataset.from_hf_dataset(dataset["eval"])