평가

평가 (Evaluation)

RAG 애플리케이션을 체계적으로 진단하려면 정교한 평가가 필요해요. 엔드투엔드 평가와 컴포넌트별 평가의 차이, 그리고 표준 메트릭에 대해 알아봅시다.

출처: 문서

본문

무대 설정

LlamaIndex는 데이터를 LLM 애플리케이션에 연결하기 위한 것입니다.

때로는 트레이스를 보고 버그를 진단하고 수정한 뒤에도, 문제를 체계적으로 진단하기 위해 더 세밀한 평가가 필요합니다.

LlamaIndex는 문제를 식별하고 유용한 진단 신호를 얻기 쉽게 해주는 도구를 제공하는 것을 목표로 합니다.

평가와 밀접한 관련이 있는 개념은 실험(experimentation)과 실험 추적(experiment tracking)입니다.

일반 전략

LLM 애플리케이션을 개발할 때 먼저 엔드투엔드 평가 워크플로를 정의하는 것이 도움이 되며, 실패 사례나 엣지 케이스를 수집하고 무엇이 잘되고 안 되는지에 대한 직관을 얻기 시작하면 특정 구성 요소를 더 깊이 평가하고 개선하는 쪽으로 나아갈 수 있습니다.

소프트웨어 테스트에 비유하면 통합 테스트와 유닛 테스트입니다. 개별 구성 요소를 만지작거리기 시작하면 유닛 테스트를 작성하기 시작해야 합니다. 마찬가지로 모든 것이 잘 함께 동작하는지에 대한 골드 스탠다드는 통합 테스트입니다. 둘 다 똑같이 중요합니다.

다음은 평가를 위한 기존 모듈의 개요입니다. 시간이 지나면서 모듈과 지원을 더 추가할 것입니다.

E2E 또는 컴포넌트별 - 어느 쪽부터 시작할까요?

반복하면서 시스템이 전반적으로 어떻게 돌아가고 있는지 전반적인 그림을 얻고 싶다면, 핵심 개발 루프를 e2e 평가 중심으로 잡고 시작하는 것이 합리적입니다. 전체적인 sanity/vibe 체크로 말이죠.

무엇을 하고 있는지 알고 있고 각 구성 요소를 단계별로 반복하며 만들어가고 싶다면 컴포넌트별 평가로 시작하고 싶을 수 있습니다. 그러나 이것은 조기 최적화(premature optimization)의 위험이 있습니다. 즉, 전체 애플리케이션 요구사항을 평가하지 않고 모델 선택이나 파라미터 선택을 하는 것입니다. 최종 애플리케이션을 만들 때 이러한 선택을 다시 해야 할 수도 있습니다.

평가를 더 깊이 파고들기

평가는 논란이 많은 주제이며, NLP 분야가 발전함에 따라 평가 방법도 발전해 왔습니다.

강력한 기반 모델이 이제 인간 어노테이터보다 더 잘 주석 작업을 수행하는 세상에서, 평가에 대한 모범 사례는 끊임없이 변화하고 있습니다. 오늘날의 모델을 부트스트랩하고 평가하는 데 사용되던 BLEU나 F1 같은 이전 평가 방법은 인간 판단과의 상관관계가 낮은 것으로 나타났으며 신중하게 적용해야 합니다.

일반적으로 생성이 많고 개방형이며 판단이나 의견을 요하는 태스크는 주관적 특성 때문에 사실 질문보다 자동 평가하기 어렵습니다. 주어진 시나리오에서 어떤 방법이 적절한지에 대한 더 많은 가이드와 사례 연구를 제공할 것입니다.

표준 메트릭

주석이 달린 데이터셋(자체 데이터든 학술 벤치마크든)에 대해 알아두면 도움이 되는 여러 표준 메트릭이 있습니다.

  1. 정확 일치 (Exact Match, EM): 정확히 올바르게 답변된 쿼리의 백분율.
  2. 재현율 (Recall): 반환된 답변 수와 관계없이 올바르게 답변된 쿼리의 백분율.
  3. 정밀도 (Precision): 올바르게 답변된 쿼리의 백분율을 반환된 답변 수로 나눈 값.
  4. F1: F1 점수는 정밀도와 재현율의 조화 평균입니다. 따라서 거짓 양성과 거짓 음성을 모두 고려하여 정밀도와 재현율을 하나의 메트릭으로 대칭적으로 나타냅니다.

이 towardsdatascience 기사는 NDCG, MAP, MRR 같은 더 기술적인 메트릭을 더 깊이 다룹니다.

사례 연구와 자료

  1. (강좌) Data-Centric AI (MIT), 2023
  2. Scale의 LLM 테스팅 및 평가 접근법
  3. Eugene Yan의 LLM 패턴

자료

더 알아보기 (Learn more)