개요

18편까지 거대 언어 모델을 만들고 쓰는 법을 봤다. 이번 글은 잘 되고 있는지 어떻게 아는가다.

이게 생각보다 어려운 문제다.

감정 분류는 정답이 있다. 맞았는지 틀렸는지 세면 된다. 그런데 “해리포터 1권을 5문장으로 요약해줘” 의 정답은 뭘까?

정답이 없는 작업을 채점하는 이야기다.

교육 자료는 대외비라 슬라이드 이미지나 예제 데이터는 싣지 않는다. 개념 흐름만 내가 이해한 방식으로 재구성했고, 그림은 전부 생성했다.


1. 평가의 세 가지 요소

평가(Evaluation) = 구축한 시스템이 실제로 잘 동작하는지 확인하는 단계

무엇을 평가하든 세 가지가 필요하다.

요소 질문
목표 시스템으로 무엇을 달성하고자 하는가
평가 방법 어떤 방법으로 평가할 것인가
평가 지표 어떻게 성공 여부를 판단할 것인가

AI에 국한된 이야기가 아니다. 배달 앱을 예로 들면 이렇게 된다.

요소 배달 앱
목표 음식을 음식점에서 유저에게까지 배달하는 것
평가 방법 배달 시간을 측정
평가 지표 전체 유저 배달 건수에 대한 평균 배달 시간

세 개가 다 있어야 한다. 목표만 있고 측정 방법이 없으면 잘하고 있는지 알 수 없다.


2. 기존 AI 모델의 평가 — 테스트 데이터

전통적인 방식은 테스트 데이터를 쓴다.

핵심 가정 — 학습 단계에서 본 적이 없고, 질문과 정답을 알고 있는 데이터

감정 분류라면 이렇게 된다.

요소 감정 분류
목표 주어진 텍스트의 감정을 올바르게 예측
평가 방법 모델의 예측 감정과 사람이 작성한 정답을 비교
평가 지표 테스트 데이터셋에서의 평균 정확도
[입력] "총평하자면, 두 시간 동안 영화를 보고
        얻은 건 팝콘과 음료 뿐입니다..."
              ↓ 추가 학습된 언어 모델
[예측] 0 (부정적)   ==   [정답] 0 (부정적)   ✓

3편에서 다룬 그 방식이다. 본 적 없는 데이터로 재야 한다는 원칙은 여기서도 그대로다.


3. 거대 언어 모델 평가의 특별한 점

그런데 거대 언어 모델은 사정이 다르다.

특정 테스크에서 학습된 기존 AI 모델들과 달리, 거대 언어 모델은 다양한 테스크에 대해 동시에 학습된다.

여기서 두 가지가 따라 나온다.

(1) 여러 작업을 종합적으로 봐야 한다

하나의 시험만 잘 봐서는 성능을 말할 수 없다. GPT-4 기술 보고서만 봐도 평가 항목이 이렇게 나열된다.

벤치마크 무엇을 재나
MMLU 57개 전문 분야 객관식 지식
HellaSwag 일상 사건에 대한 상식 추론
ARC 초등 과학 문제
HumanEval 파이썬 코딩
DROP 독해 + 산술
GSM-8K 초등 수학 문장제

(2) 조건을 맞춰야 공정하다

같은 질문에도 디코딩 알고리즘과 프롬프트에 따라 예측이 바뀐다. 17·18편에서 본 그대로다.

그래서 성능 표에는 점수만 적혀 있지 않다.

MMLU    86.4%
        5-shot          ← 예시를 5개 줬다는 뜻

GSM-8K  92.0%
        5-shot chain-of-thought   ← CoT까지 썼다는 뜻

평가 방법(몇 shot인지, CoT를 썼는지)까지 함께 적혀 있어야 비교가 가능하다.

두 학생의 시험 점수를 비교하는데 한 명은 오픈북, 한 명은 아니었다면 점수만 비교하는 건 의미가 없다. 벤치마크 표에서 작은 글씨로 붙은 조건들이 그 역할을 한다.


4. 평가 방법의 갈래

크게 두 경우로 나뉜다.

평가 방법의 갈래

정답이 정해진 경우

예측과 정답을 비교하여 일치도를 측정한다.정확도(Accuracy) 다.

대표적인 벤치마크가 MMLU(Massive Multitask Language Understanding) 다. 57개의 다양한 전문 분야에 대한 객관식 문제로 구성되어 있다. 미시경제학, 물리학, 대학 수학 등이 섞여 있다.

객관식이니 채점이 명확하다. 문제는 다음이다.

정답이 정해져 있지 않은 경우

문서 요약, 스토리 생성 같은 작업이다.

같은 요청에 대해 Gemini는 한 문단으로, ChatGPT는 번호 매긴 5줄로 답할 수 있다. 둘 다 맞다.

여기에 세 가지 접근이 있다.

방법 아이디어
#1 사람이 임의의 정답을 작성하고 예측과 비교
#2 정답과 무관하게 생성 텍스트 자체의 품질만 측정
#3 생성된 텍스트의 상대적 선호를 평가

5. 방법 #1 — 임의의 정답과 비교하기

사람이 정답 하나를 써놓고, 모델의 출력과 얼마나 비슷한지 잰다.

그럼 두 텍스트의 유사도를 어떻게 재느냐가 문제가 된다.

단어 수준에서 재기 — ROUGE

가장 단순한 방법이다. 겹치는 단어를 센다.

Reference: "The cat sat on the mat."     ← 정답 문장
Generated: "The cat lay on the mat."     ← 모델 출력

ROUGE-1 = 겹친 단어 수 / 정답 문장 전체 단어 수
        = {The, cat, on, the, mat} = 5 / 6 = 0.83

계산이 쉽고 빠르다. 하지만 약점이 분명하다.

“sat”과 “lay”가 비슷한 뜻이라는 걸 모른다. 글자가 다르면 그냥 틀린 것으로 센다.

같은 뜻을 다른 단어로 쓴 좋은 요약이 낮은 점수를 받을 수 있다.

벡터 공간에서 재기 — 코사인 유사도

그래서 나온 것이 의미 공간에서 비교하기다. 8편의 임베딩 이야기가 여기서 다시 나온다.

Sentence-BERT의 동작이 대표적이다.

1. 두 문장을 각각 입력한다
2. BERT를 통해 문장 내 단어들을 벡터로 변환한다
3. 단어별 벡터를 하나의 문장 벡터로 합친다 (pooling)
4. 각 문장의 벡터 u, v를 얻는다
5. 코사인 유사도를 계산한다 (-1 ~ 0 ~ 1)

이렇게 하면 단어가 달라도 의미가 비슷하면 가깝게 나온다.

ROUGE는 철자를 대조하는 채점이고, 코사인 유사도는 뜻을 대조하는 채점이다. 후자가 사람의 판단에 더 가깝다.


6. 방법 #2 — 텍스트 자체의 품질만 재기

정답을 아예 안 쓰는 방법도 있다.

Perplexity(PPL) — 문장이 얼마나 확률적으로 자연스러운지 측정

15편에서 본 그 지표다. 수식은 이렇게 쓴다.

$$ \text{PPL}(X) = \exp\left{-\frac{1}{t}\sum_{i}^{t} \log p_\theta(x_i \mid x_{<i})\right} $$

읽는 법은 간단하다. 앞 단어들을 봤을 때 다음 단어가 나올 확률을 전부 구해서 평균 낸 것이다. 자연스러운 문장일수록 각 단어의 확률이 높고, PPL이 낮아진다.

다음 단어의 확률을 계산해야 하므로 별도의 언어 모델(예: GPT-2) 을 채점용으로 쓴다.

한계

PPL은 “말이 되는 문장인가” 만 잰다.

단순한 등장 확률이 아니라 창의성, 유창성, 가독성 같은 여러 측면에서 평가하고 싶다면?

이런 지표를 각각 따로 설계하는 것은 굉장히 어렵다. 기존 해결 방법은 전문가를 고용해 평가를 맡기는 것이었다. 비싸고 느리다.

그래서 이런 발상이 나왔다.

거대 언어 모델로 그 역할을 대신 수행하게 하면 안 될까?


7. LLM-as-judge — 모델이 채점한다

LLM-as-judge (또는 G-Eval) = 거대 언어 모델을 통해 생성 텍스트를 평가하는 방법

LLM-as-judge

구조는 단순하다.

[사용자가 제공]
  1. 풀고자 하는 테스크    "뉴스 기사 요약을 평가해줘"
  2. 평가하고자 하는 텍스트  "Paul merson was brought on with..."
  3. 평가 기준            "Coherence (1-5): 문장 전체의 일관성..."
        ↓
   [거대 언어 모델]
        ↓
[결과] 점수 2.59 + 그렇게 준 이유

점수만이 아니라 이유도 함께 내놓는다는 점이 중요하다. 왜 낮은 점수인지 알 수 있으면 고칠 수 있다.

실제로 잘 되나

기존 지표와 사람의 평가에 얼마나 가까운지를 비교한 결과다. (숫자가 클수록 사람과 비슷)

지표 평균 상관
ROUGE-1 0.192
ROUGE-L 0.165
BERTScore 0.225
G-Eval-4 (GPT-4) 0.514

ROUGE보다 두 배 이상 사람에 가깝다.

이미 널리 쓰이고 있다

평가에만 쓰는 게 아니다. LLaMA 3는 학습 데이터를 거를 때 이 방식을 썼다.

"아래는 웹 페이지에서 추출한 내용입니다. 이 페이지가 교육적 가치가
 높고 초등~고등 교육 현장에서 유용한지 5점 척도로 평가하세요.
  - 교육 주제와 관련된 기본 정보가 있으면 1점 추가
  - 교육 관련 요소를 다루되 기준에 엄밀히 맞지 않으면 1점 추가
  - ...
 점수를 매긴 이유를 100단어 이내로 서술하세요."

수십억 개 문서를 사람이 읽고 거를 수는 없다. 모델에게 채점 기준표를 주고 대신 읽히는 것이다.


8. 방법 #3 — 상대적 선호로 평가하기

16편의 선호 학습과 같은 발상이다. 점수를 매기는 대신 어느 쪽이 더 나은지 고른다.

[풀고자 하는 태스크]  "달 착륙을 6살에게 설명해줘"
        ↓
[모델 생성 응답 후보]  A, B, C, D
        ↓
[사람 주석 선호도 평가]  D > C > A = B

LMArena

이 방식의 대표 사례가 LMArena다.

실제 유저 피드백을 활용하며, 거대 언어 모델 성능 측정 방법 중 가장 신뢰성 있는 방법 중 하나로 여겨진다.

동작은 이렇다.

1. 사용자가 질문을 입력한다
2. 익명의 두 모델(Model A, Model B)이 각각 답한다
3. 사용자가 고른다: [A is better] [B is better] [Tie] [Both are bad]
4. 투표가 쌓이면 모델별 점수(ELO)가 나온다

모델 이름을 가리고 답만 보고 고른다는 게 핵심이다. 브랜드 선입견이 안 들어간다.

새 모델이 나올 때마다 “LMArena 리더보드 1위”가 홍보 문구로 쓰이는 이유가 이것이다.

문제는 비용

그러나 높은 평가 비용 및 시간을 필요로 한다.

사람이 하나하나 읽고 투표해야 한다. 모델을 조금 고칠 때마다 이걸 돌릴 수는 없다.

그래서 여기서도 같은 발상이 나온다.

사람 주석 선호도 평가를 → 거대 언어 모델 생성 선호도 평가로 대체한다면?

실제 프롬프트는 이렇게 생겼다.

[System]
공정한 심사위원 역할을 맡아, 아래에 제시된 사용자 질문에 대해
두 AI 어시스턴트가 제공한 답변의 품질을 평가해 주세요.
...
답변의 순서가 판단에 영향을 주지 않도록 하고,
길이가 평가에 영향을 주지 않도록 하십시오.
...
최종 판정은 "[[A]]" 또는 "[[B]]" 또는 "[[C]]"(무승부) 형식으로 출력하세요.

9. 그런데 심판도 편향이 있다

여기가 이번 글에서 가장 중요한 부분이다.

LLM-as-judge 방식은 몇 가지 한계점을 가지고 있다.

심판의 세 가지 편향

편향 ① 위치 편향 (Position Bias)

특정 위치의 응답을 상대적으로 선호한다.

실험이 잔인할 만큼 명확하다. A와 B의 순서만 바꿔서 같은 모델에게 두 번 물었다.

A를 첫 번째로 제시 → "어시스턴트 A의 답변이 더 상세하고 잘 정리되어 있습니다."
B를 첫 번째로 제시 → "어시스턴트 B의 답변이 더 상세하고 더 넓은 범위를 다룹니다."

내용은 그대로인데 결론이 뒤집혔다. 심지어 이유까지 비슷한 문장으로 만들어낸다.

편향 ② 길이 편향 (Length Bias)

품질과 무관하게 길이가 긴 응답을 상대적으로 선호한다.

같은 내용을 중복해서 늘려 쓴 답변 A중복 없이 필요한 정보만 담은 짧은 답변 B를 비교한 실험이 있다.

심판 판단
GPT-3.5 A가 더 상세하고 정확하다 → A 선택
Claude-v1 A가 더 깊이 있고 자세하다 → A 선택
GPT-4 A는 같은 설명을 두 번 반복한다. B가 더 간결하다 → B 선택

A는 중복일 뿐인데 두 심판이 속았다. GPT-4는 잡아냈다.

편향 ③ 자기 선호 편향 (Self-preference Bias)

생성 모델이 평가 모델과 같은 경우, 이를 선호한다.

GPT-4를 심판으로 세우면 GPT-4의 답을, Claude를 심판으로 세우면 Claude의 답을 더 높게 친다. 사람 평가와 비교하면 그 지점만 튄다.

자기가 쓴 답안지를 자기가 채점하면 후해진다. 모델도 그렇다.


10. 그래서 어떻게 보완하나

한계가 있다는 것을 인지하고 보완하여 활용하는 것이 필요하다.

위치 편향 → 순서를 바꿔 두 번

순서를 바꿔서 두 번 평가하고 평균을 취한다. 간단하고 확실하다. 비용이 두 배가 되지만 편향이 상쇄된다.

길이 편향 → 통계적으로 제거

길이가 미치는 영향을 통계적으로 제거해서 어느 정도 해결할 수 있다.

AlpacaEval 2가 이 방식이다. GPT-4를 평가자로 쓰되, 길이의 영향을 보정한 승률(LC Win Rate) 을 함께 보여준다.

  Win Rate LC Win Rate
GPT-4 Omni 51.3% 57.5%
GPT-4 Turbo 46.1% 55.0%

길이 보정을 하면 순위가 달라지는 모델들이 나온다. 원래 점수가 길이 덕을 보고 있었다는 뜻이다.


정리

  • 평가 = 목표 + 평가 방법 + 평가 지표. 셋 다 있어야 한다
  • 기존 AI 평가는 테스트 데이터 기반. 학습 때 본 적 없고 정답을 아는 데이터
  • 거대 언어 모델 평가의 특징
    • 여러 작업에 동시에 학습되므로 종합적으로 봐야 한다
    • 디코딩·프롬프트에 따라 결과가 바뀌므로 조건까지 맞춰야 공정하다
  • 정답이 정해진 경우 — 정확도. 대표 벤치마크는 MMLU(57개 분야 객관식)
  • 정답이 없는 경우 세 갈래
    • #1 임의 정답과 비교ROUGE(단어 겹침) / 코사인 유사도(의미 비교)
    • #2 텍스트 자체 품질Perplexity. 단 “말이 되는가”만 잰다
    • #3 상대적 선호LMArena. 가장 신뢰받지만 비용과 시간이 크다
  • LLM-as-judge — 모델에게 평가 기준을 주고 채점시킨다
    • ROUGE보다 사람과의 상관이 두 배 이상 높다
    • LLaMA 3의 학습 데이터 필터링에도 쓰였다
  • 심판의 세 가지 편향위치 / 길이 / 자기 선호
    • 순서만 바꿔도 결론이 뒤집힌다
    • 보완 — 순서 바꿔 두 번 평가, 길이 영향 통계적 제거(AlpacaEval 2)

다음 글에서

마지막 글에서는 응용과 한계를 다룬다. 멀티모달로의 확장, 합성 데이터 생성, 그리고 환각·탈옥·AI 텍스트 검출 문제다.

참고 자료

한줄 평

  • 헤헿 나두 AI 평가 못한다 근데 AI는 이걸 평가한다 짱이다 왁 ( 근데 얘도 특정 패턴에 약한게 웃기네요 )