v0.1에서 v0.2로 마이그레이션

v0.1에서 v0.2로 마이그레이션 (Migration from v0.1 to v0.2)

v0.2는 Ragas가 RAG 파이프라인 평가 라이브러리에서, 여러분이 만드는 모든 LLM 애플리케이션을 평가할 수 있는 더 일반적인 라이브러리로 전환하는 시작점이에요. 그 뜻은 기존 워크플로를 깨뜨리는 근본적인 변화가 있었다는 뜻이에요. 이 가이드가 그 전환을 가능한 한 쉽게 만들어 주길 바라요.

출처: 문서

본문

개요 (Outline)

  1. 평가 데이터셋 (Evaluation Dataset)
  2. 지표 (Metrics)
  3. 테스트셋 생성 (Testset Generation)
  4. 프롬프트 객체 (Prompt Object)

평가 데이터셋

HuggingFace Datasets에서 우리만의 EvaluationDataset으로 바꿨어요. 자세한 내용은 핵심 개념 섹션의 EvaluationDatasetEvaluationSample에서 읽을 수 있어요.

쉽게 변환할 수 있어요.

from ragas import EvaluationDataset, SingleTurnSample

hf_dataset = ... # your huggingface evaluation dataset
eval_dataset = EvaluationDataset.from_hf_dataset(hf_dataset)

# save eval dataset
eval_dataset.to_csv("path/to/save/dataset.csv")

# load eva dataset
eval_dataset = EvaluationDataset.from_csv("path/to/save/dataset.csv")

지표

기본 지표는 모두 여전히 지원되고, 많은 새 지표가 추가됐어요. 전체 목록은 문서 페이지를 확인해요.

하지만 지표 사용 방식에는 몇 가지 변화가 있어요.

첫째, 이제 지표를 evaluate() 안에서 초기화된 버전을 쓰는 대신, 원하는 평가 LLM으로 지표를 초기화하는 방식이 권장돼요. 이렇게 하면 어디서 어떤 LLM이 사용되는지에 대한 혼란이 크게 줄어들어요.

from ragas.metrics import faithfullness # old way, not recommended but still supported till v0.3
from ragas.metrics import Faithfulness

# preffered way
faithfulness_metric = Faithfulness(llm=your_evaluator_llm)

둘째, [metrics.ascore][ragas.metrics.base.Metric.ascore]가 이제 metrics.single_score를 위해 deprecated 되고 있어요. 다음과 같이 전환하면 돼요.

# create a Single Turn Sample
from ragas import SingleTurnSample

sample = SingleTurnSample(
    user_input="user query",
    response="response from your pipeline",
    retrieved_contexts=["retrieved", "contexts", "from your pipeline" ]
)

# Init the metric
from ragas.metrics import Faithfulness
faithfulness_metric = Faithfulness(llm=your_evaluator_llm)
await faithfulness_metric.single_turn_ascore(sample)

출력

1

테스트셋 생성

Testset Generation이 훨씬 비용 효율적으로 재설계됐어요. end-to-end 워크플로를 사용했다면 getting started를 확인해 주세요.

주목할 만한 변화

  • Docstore를 제거하고 새 Knowledge Graph로 대체
  • 전달된 문서를 풍부한 지식 그래프로 변환하는 Transforms 추가
  • Synthesizer 객체로 더 커스터마이징 가능. 문서도 참고하세요.
  • 새 워크플로는 훨씬 저렴하고 중간 상태를 쉽게 저장할 수 있어요

다소 거칠 수 있지만 도움이 필요하면 편하게 채팅하거나 언급해 주세요. 기꺼이 도와드릴게요 🙂

프롬프트 객체

모든 프롬프트가 BasePrompt 객체를 기반으로 하는 PydanticPrompts를 사용하도록 다시 작성됐어요. 기존 Prompt 객체를 사용 중이라면 새 것으로 업그레이드해야 해요. 방법은 문서에서 확인할 수 있어요.

더 도움이 필요하세요?

질문이 더 있다면 이 github issue에 올려 주세요. 또는 cal.com으로 연락해 주세요.

더 알아보기 (Learn more)