1. LLM 평가는 왜 하는가?
- LLM은 일반적 성능을 지닌 범용성이 크기에 각 분할된 Task들을 종합적으로 평가할 지표가 필요
- Translation
- QA
- F-1 Score, Exact Match(EM)
- Bias (편향된 모델은 아닌지 평가)
- Fairness Benchmarks
- 성별, 인종, 나이, 사회적 배경 등의 편향을 얼마나 가지고 있는지 평가
- 이름이 포함된 이력서에서 특정 성별의 이름이 포함된 이력서를 더 많이 선택한다? 이러면 성별에 대한 편향이 존재한다고 판단
- Hallucination
- Faithfulness Test (HaluEval, FaithDial), Self-Consistency Checks
- Faithfulness: 없는 정보 판단 진실성이 중요
- Self-Consistency:동일 질문에 대한 일관된 답변 여부 체크
- Math
- GSM8K, Logical Consistency
- GSM8K
수학문제해결능력을 위한 데이터셋
- Logical Consistency
논리적 일관성을 평가하는 메트릭 일관적인/모순적인 대화 체크
- 최근에는 사람선호를 반영한 LLM 평가도 진행됨.
2. 무엇을 평가하는가
- NLU
- NLG
- LLM
- Domain-Specific
- 이외 STEM(기술 관련), 윤리 등의 다양한 평가 대상이 존재한다.
무엇을 '어떤' 데이터로 평가하는가?
- 벤치마크 데이터셋
목적에 맞는 다양한 벤치마크 데이터셋이 존재한다.
GLUE
SQuAD
ARC
HellaSwag
OpenSource LLM Leaderboard
3. 어떻게 평가하는가?
- 자동화된 방법
- Metric 기반 평가
BLEU, ROUGE, F1-Score와 같은 점수 기반으로 정량적 평가
번역 Task 같은 경우에는 충분히 활용될 수 있으나, 문맥 이해 및 생성 Task에는 적절하지 않을 수도 있다.
- LLM-as-a-judge
- LLM을 활용한 평가
평가 항목, 내용을 텍스트 형태로 프롬프트에 입력하여 LLM이 직접 점수를 산출하도록 함.
- Human Evaluation
- 사람이 특정 가이드라인을 기준으로 LLM의 으답을 직접 평가
- 전문영역에서의 평가에 강점이 있으며, 주관적 내용이나 뉘앙스를 잡아낼 수 있다. 그리고 윤리 문제까지 고려할 수 있다.
- 다만, 비용이 높고 한 사람이 다 처리할 수 없어서 여러 사람이 붙어 평가하다 보면 비일관적이게 된다.
4.LLM 모델 기반 평가
모델 기반 평가
- Embedding 기반
- BERTScore
BERT 모델과 같은 인코딩 모델을 사용하여 점수를 계산한다.(유사도 등의 판단)
- 확률 기반
- GPTScore, FFLM 등...
- 조건부 확률을 계산하여 점수를 산출한다.
- 확신을 가지고 Next Token을 예측하는 경우 더 좋은 텍스트라고 판단한다.
- 다만, 위와 같은 경우에는 GPT 의존적이라는 단점이 있다..
Prompting LLMs
- 프롬프트에 평가 방식을 삽입하여 LLM이 평가
Fine Tuning LLMs
- Prompting LLMs의 한계
- Fine Tuning LLMs
- OpenSource 모델을 평가 전용 모델로서 Fine-Tuning 수행
- 고품질 평가용 데이터를 생성하여 이를 활용하여 모델 튜닝
- 평가용 LLM을 따로 만드는 것 !
Human-LLM Collaborative Evaluation
- LLM 평가와 인간 검수를 유기적으로 연결함
- COEVAL, AdaTest, AdaTest++ 등
- 다만... 그렇다 해도 자동화된 LLM 평가 방식이 너무 편리하게 아직도 LLM을 활용한 자동평가가 많이 쓰이고 있음.
LLM 기반 평가의 Challenges
- Position Bias (위치선호 편향)
- Verbosity Bias (길이가 긴 것을 선호)
- Self-enhancement bias (평가자 자신의 모델의 생성값을 선호)
- Limited Capability in grading math and reasoning questions (수학-추론 등의 채점을 잘 못함)
- Order Bias (A/B test 중에서 A를 더 선호)
5. 최신 LLM 벤치마크
Chatbot Arena
- 두 모델의 응답을 사람이 선택
- 선택된 것에 대해 승리 점수를 줌
- 일종의 ELO Scoring... LoL에서 레이팅 점수같은 것
WildBench
- 실제 사람이 작성한 데이터를 수집
- 1024개의 데이터셋을 생성하여 스코어링함.
Open Ko-LLM Leaderboard v2 (한국어 벤치마크)
LC(Length-Controlled) AlpacaEval
- 기존 AlpacaEval에서 길이 편향을 보정함.
- Human Correlation이 약 0.98로 매우 높음.
6. Eval dataset을 만들 때 유의할 점
-
복잡한 추론 문제를 LLM은 잘 못한다. 그래서 이걸 포함한 데이터셋을 만드는 것이 중요
-
긴 문맥처리에 LLM은 어려움이 있기에, 이런걸 평가하는 데이터셋도 중요
-
LLM에는 멀티턴에 대한 문제가 존재한다.
대화 주제를 빠르게 바꾸거나 문맥을 전환하는 등의 시나리오가 담긴 데이터가 좋다.
취약한 부분을 건드는 데이터셋을 잘 만들 것
평가시에 발생할 수 있는 Bias 관리도 해야한다.
- A/B 테스트 시에 Order Bias 발생가능성이 있으므로, 순서를 무작위로 섞거나 랜덤시드를 다르게 주는 등으로 완화하고
- 길이선호의 경우에는 LC Alpaca 방법과 같이 길이 보정의 형태로 점수를 수정하는 등의 방법을 적용할 수 있다.