AI

LLM Evaluation | LLM 기반의 시스템을 어떻게 평가할 수 있을까

LittleFox 2024. 1. 16. 22:02

 

지난 포스팅에서 다루었던 것처럼 LLM의 문맥 이해 및 자연어 생성 능력 능력이 향상되었고,

fine-tuning API, Plug-in 지원 등이 이루어지면서 다양한 애플리케이션 개발이 가능해졌다. 

 

개인의 창의성과 공부를 위해 LLM을 활용하는 것이라면 정량적인 성능 평가까지는 불필요할 수 있지만,

LLM을 활용하여 서비스 가능한 시스템을 운영하기 위해서는 생성형 AI 시스템의 성능을 평가하는 것이 필수적이다.

 

하지만 생성형 모델을 기반으로 한 시스템에 대한 성능 평가는 기존 NLU 태스크처럼 단순하지 않다.

문장의 카테고리를 분류하거나 유사도를 수치화하는 등 정답 라벨의 정의가 과제와 달리, 

 

생성형 AI 기반의 시스템은 

  ① 유저의 피드백 혹은 "정답"에 대한 데이터는 매우 제한적으로 발생하거나 심지어 존재하지 않는다.

  ② 이러한 피드백을 만들어내기 위해 사람이 라벨링을 진행하는 Human Labeling 작업은 비용이 많이 든다.

 

이에 따라 생성된 결과를 평가하기 위해서는 어떤 결과가 좋은 결과인지를 정의하고  기준에 따라 시스템의 생성 결과를 수치화하는 체계적인 시스템이 필요하다.  

 

LLM 평가와 LLM 기반의 시스템에 대한 평가는 다르다

LLM을 평가하는 것과 LLM 기반의 시스템을 평가하는 것은 다른 개념이다.

 

 LLM 평가 (LLM Evaluation)

LLM 평가는 기본 LLM의 전반적인 성능을 평가하는 것에 초점을 맞춘다.

벤치마크 데이터셋에 대해 LLM의 생성 결과를 ground truth label과 비교하여 점수를 매기는 리더보드들이 있다.

 

● OpenAI Eval 라이브러리

- https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard

- 다양한 생성 기반의 태스크에 대해 LLM의 성능을 평가하는 리더보드 운영

-(ex) 

  • HellaSwag: LLM이 문장을 얼마나 잘 완성할 수 있는지 평가
  • TruthfulQA: 모델 출력의 진실성을 평가
  • MMLU: LLM이 여러 태스크를 얼마나 잘 수행할 수 있는지 평가

 

● Open Ko-LLM 리더보드(AI Hub)

- 한국어 LLM을 대상으로 한국어 벤치마크 데이터에 대해 성능을 평가 &리더보드 운영

- https://www.aihub.or.kr/leaderboard/view.do?currMenu=500&topMenu=102

- 평가 항목:

  • 추론능력 (ARC, AI2 Reasoning Challenge) - 초등학교 수준의 과학 질문 등에 대해 AI의 답변이 얼마나 적절한지 측정
  • 상식 능력 (HellaSwag) - 짧은 글 혹은 지시사항에 알맞은 문장을 생성하는지 측정
  • 언어 이해력 (MMLU) - 57가지 다양한 분야의 질문에 대해 답변이 얼마나 측정했는지 측정
  • TruthfulQA - AI가 생성한 답변이 얼마나 진실한지 측정
  • 한국어 상식 생성 능력 - 역사 왜곡, hallucination, 혐오표현 등 광범위한 질문에 대한 일반 상식 측정

 

Open LLM Leaderboard(좌) / Open Ko-LLM Leaderboard(우)

 

 

 

 LLM 기반 시스템 평가 

LLM 기반의 시스템을 평가하기 위해서는 시스템에서 제어할 수 있는 구성 요소들을 각각 평가해야 한다.

 

시스템을 구성하는 요소들 중 가장 중요한 것은 프롬프트와 컨텍스트이다.

이러한 구성 요소들로 인해 입력에 따라 출력이 어떻게 나오는지, 그 결과가 바람직한지를 평가해야 한다.

 

LLM 시스템 평가 과정 중에는 사용하는 LLM은 그대로 둔 채 프롬프트 템플릿을 변경해 보며 결과물을 관찰할 수 있다. 프롬프트는 시스템에서 자주 바뀔 수 있는 부분이기 때문에 프로젝트 전체 기간 동안 이러한 평가를 진행해야 한다. 예를 들어, 유용성 또는 정중함에 대한 챗봇 응답을 평가할 수 있으며, 동일한 평가를 통해 시스템 운영 중 성능 변화에 대한 정보를 얻을 수 있다.

 

 

 

LLM 기반의 시스템 평가에서 평가 지표(metric)는 시스템, 혹은 유즈케이스에 따라 달라진다.

 

예를 들면 아래와 같은 매트릭을 도입할 수 있다.

  • 구조화된 정보 추출 → 완전성(입력에 있는 모든 정보가 결과에 포함되어 있는가)과 같이 LLM이 정보를 얼마나 잘 추출하는지를 정량화할 수 있는 지표 도입
  • 질문답변 시스템  정확성, 간결성, 정중함 등 시스템이 사용자의 질문에 얼마나 잘 답변하는지와 관련된 지표 도입
  • RAG(Retrieval Augmented Generation)  검색 정확도  최종 답변의 정확성 등의 지표 도입

 

일반적으로는 답변의 관련성, hallucination여부, 질문에 대한 적확성, 답변의 유해성 등의 항목이 LLM 시스템 평가의 지표로 활용된다. 하지만 시스템 및 시스템이 수행하는 태스크에 따라 시스템 디자이너는 어떤 측면을 평가해야 하는지를 고려하고 결정해야 한다.

 

예를 들어 학생과 소통하는 AI 과외 앱과 같은 시스템이라면, 시스템 출력이 연령대에 적합한다, 유해한 답변이 포함되어 있지는 않은가 등등도 평가 항목으로 도입해야 할 것이다. 

 

 

LLM 시스템을 평가하는 방법

● Human Evaluation 

LLM 기반의 시스템을 구축하는 단계에 있어 가장 먼저 시작하는 것은 LLM 시스템의 아웃풋을 눈으로 훑어보는 것이다.

시스템에서 구현하고자 하는 시나리오에 대해 입력에 따라 기대하는 아웃풋이 있을 것인데, 각기 다른 파라미터, 시스템 구성요소, 프롬프트 등을 조정하며 결과물에 대한 감을 잡을 수 있다.

이는 시스템에 대해 좋은 직관을 제공할 수 있지만, 시스템을 정확하게 평가하기 위해서는 더 체계적인 단계가 필요하다.

 

이때 도입할 수 있는 방법론이 Mark Scheme이다.

시스템이 충족해야 하는 조건들을 명시화하고, 각각의 항목에 대해 점수를 매기는 방식으로 결과를 채점하는 것이다.

 

예를 들어 STT로 전사된 회의 기록을 통해 회의록을 만드는 AI 시스템에 대해서는 아래와 같은 평가 기준표를 도입할 수 있다.

  1. 회의록의 형식을 지켜 회의 날짜, 참석자, 아젠다, 아젠다별 액션 아이템, 키워드 항목이 도출되었는가? (2점)
  2. 회의 내용에 있는 액션 아이템이 모두 회의록에 포함되어 있는가 (5점)
  3. 키워드는 적합하게 추출되었는가 (2점)
  4. 문법적으로 어색하지 않은 회의록이 작성되었는가 (1점)

이렇게 시스템이 충족해야 하는 기록을 명문화하고, 스코어링의 기준을 만듦으로써 생성형 결과물에 대해 보다 객관적인 평가가 가능하다. 하지만 이러한 평가 기준표에 따른 human evaluation은 많은 노동력과 시간이 든다. 따라서 시스템을 배포하기 위한 최종적인 평가의 수단으로 사용하기에는 적합하나, prompt engineering 및 시스템 구성 요소 튜닝에 사용하기에는 어려움이 있다. 

 

● LLM Evaluating LLM 

Human Evaluation에 드는 시간과 노동의 공수를 줄이기 위해

최근에는 LLM의 생성 결과물을 LLM을 사용해서 평가하는 방법에 대한 연구가 진행되고 있다.

 

다음 포스트에서는 GPT-4와 같이 성능이 뛰어난 초거대 LLM을 활용하여 LLM 기반의 시스템을 평가하는 방법과 그 한계에 대해 알아보도록 하겠다.


참고 자료