AI Engineering - 3장: 평가 방법론
AI 품질과 위험성은 제품을 만드는 사람에게 도전으로 다가올 것이다. 그러려면 이를 정량적으로 평가할 방안에 대해 살펴본다. 이 부분이 가장 어렵기도 하다
단 평가는 일부가 아닌 시스템 전체 컨텍스트를 보고 판단해야 한다. 이를 통해 위험을 줄이고 기회를 발견하기 위함이기 때문이다.
파운데이션 모델 평가를 위해 트위터에서 '누가 좋다더라' 하는 소리에 휘둘리거나, 결과(주로 이해하지 못한 그래프 결과)를 눈으로 대충 보고 판단하는 것이야 말로 가장 하면 안 되는 일이다.
그런고로 파운데이션 모델들은 언어모델요소가 있으니, 이를 평가하기 위한 교차 엔트로피와 퍼플렉시티 같은 지표들을 살펴본다. 언어모델 학습, 파인튜닝에 쓰일 뿐 아니라 평가 방법에도 활용된다.
파운데이션 모델은 개방형이기 때문에 더욱 평가가 어렵다. 모범사례를 통해 평가 자동화(정확한 평가 + 주관적 평가 포함)을 살펴본다.
주관적 평가로는 AI 평가자로 다른 AI를 활용하는 것도 있다.
파운데이션 모델 평가의 어려움
이유는 아래와 같다:
- 모델이 똑똑하면 평가가 어렵다.
- 정교한 헛소리를 검증하는 것이 더 힘들다
- 확인, 추론, 이를 위한 전문지식 모두 필요하다
- 정답을 기준으로 성능을 평가하는 기존 방식이 유효하지 않다
- 하나의 입력에 여러 정답이 존재하기 때문
- 파운데이션 모델은 블랙박스로 취급된다
- 모델의 세부사항이 공개되지도 않을 뿐더러
- 앱 개발자가 모델 아키텍처, 학습 데이터, 학습 과정을 모두 알고 장/단을 한번에 평가하기는 힘들다
공개적으로 이용가능한 평가 벤치마크는 아래의 이유로 사용하기 어렵다.
- 모든 능력을 테스트하고 확인하기가 어렵다
- AI의 발전속도가 벤치마크 지표를 죄다 최고점수를 찍는다
- 범용 모델의 평가범위가 확장되었다 - 모델이 똑똑해지면 스스로 할 수 있는 한계점이 더 넒어지기 때문
책에서는 분명히 쉽고 간단해보이고 즉흥적인 접근 방식으로 판단하지 않기를 강권한다. 앱의 지속개선을 위한 방안을 제시한다.
언어 모델링 지표 이해하기
파운데이션 모델은 언어모델에서 출발했다. 또한 많은 파운데이션 모델은 언어모델이 핵심 구성 요소로 활용되고있다. 언어 모델의 성능이 좋으면 파운데이션 모델의 성능이 좋은 경향이 있다[1]. 그러므로 언어 모델링 지표를 대략적으로 이해하여 앱의 성능을 이해해보자.
언어 모델링은 앞서 말한 섀넌의 논문 〈Prediction and Entropy of Printed English〉 에서 수십년간 존재해왔다. 이 지표는 크게 변하지 않았다. 대부분의 자기회귀 언어 모델은 엔트로피나, 퍼플렉시티를 사용해 학습된다. 또한 문자당 비트(BPC), 바이트당 비트(BPB) 같은 개념도 교차 엔트로피의 변형된 형태이다.
상기 네 가지 지표(교차 엔트로피, 퍼플렉시트, BPC, BPB)는 밀접하게 괸련되어 있다. 필요한 정보가 있다면 하나로 나머지 셋을 계산할 수 있다. 이 지표들은 텍스트 뿐 아니라 다른 종류의 토큰들로 이루어진 시퀀스를 생성하는 모델에서도 사용할 수 있다.
언어모델은 언어에 대한 통계적 정보(주어진 컨텍스트에서 토큰이 나타날 가능성)를 인코딩한다. 모델이 더 많은 통계 정보를 파악할 수록 다음 토큰을 더 잘 예측할 수 있다.
ML 용어로 말하자면, 언어 모델은 학습 데이터의 분포를 학습한다. 모델이 더 잘 학습할수록 학습 데이터에서 다음에 올 것을 더 잘 예측할 수 있고 학습 교차 엔트로피는 더 낮아진다. 다른 ML 모델처럼, 학습 데이터뿐만 아니라 운영 환경의 성능도 물론 중요하다. 일반적으로 운영 환경의 데이터가 모델의 학습 데이터와 비슷할수록 모델이 더 좋은 성능을 낸다.
엔트로피
엔트로피는 토큰이 평균적으로 얼마나 많은 정보를 담고있는지 측정한다. 엔트로피가 높을 수록 각 토큰이 더 많은 정보를 담고 있으며, 토큰을 표현하는 데 더 많은 비트가 필요하다.
책의 예시를 보면 토큰이 많은 정보를 담으려면 더 많은 비트가 필요함을 시사한다. 다음 예측에 더 많은 용량이 필요하단 거니까. 이를 놓고보았을 때, 엔트로피는 언어에서 다음에 올 게 무엇인지 예측하는 것 자체가 어려움을 말한다.
교차 엔트로피
데이터셋에서 언어 모델을 학습시킬 때의 목표는, 모델이 학습 데이터의 분포를 배우게 하는 것이다. 다음에 뭐가 올지 예측하게 만드는 것을 의미한다. 교차 엔트로피는 언어 모델이 데이터셋의 내용을 얼마나 예측하기 어려워 하는지를 보여주는 지표다
학습 데이터에 대한 모델의 교차 엔트로피는 아래 특성에 따라 달라진다:
- 학습 데이터의 예측 가능성: 이는 학습 데이터 자체가 가진 본연의 정보량이며, 데이터의 엔트로피로 측정된다.
- 분포의 불일치성: 언어 모델이 파악한 확률 분포가 학습 데이터의 실제 분포와 얼마나 동떨어져 있는지를 의미한다.
엔트로피와 교차 엔트로피는 모두 기호 H를 사용하여 표기한다. 학습 데이터의 실제 분포를 P, 언어 모델이 학습한 분포를 Q라고 정의하면 다음과 같은 관계가 성립한다.
- 학습 데이터의 엔트로피:
로 표기한다. - 쿨백-라이블러 발산 (KL Divergence): Q와 P가 얼마나 다른지 측정하는 지표이며, 수학적으로
로 표현한다.
따라서 학습 데이터에 대한 모델의 교차 엔트로피
이 식은 모델 Q가 실제 분포 P를 완벽하게 학습하여 DKL 값이 0이 될 때, 교차 엔트로피가 데이터의 최소 엔트로피인
교차 엔트로피는 비대칭적이다.
언어 모델은 학습 데이터에 대한 교차 엔트로피를 최소화하도록 학습된다. 만약 언어 모델이 학습 데이터를 완벽하게 학습하면, 모델의 교차 엔트로피는 학습 데이터의 엔트로피와 정확히 같아진다. 이때
문자당 비트와 바이트당 비트
엔트로피와 교차 엔트로피의 단위는 비트를 사용한다. 언어 모델의 교차 엔트로피가 6비트라면, 각 토큰을 표현하는 데 6비트가 필요하다는 의미다.
모델마다 토큰화 방식이 다르기 때문에 토큰당 비트 수로 모델을 비교할 수 없다. 대신 문자당 비트(BPC, bits-per-character)를 사용하기도 한다. (E.g., 토큰당 비트 수가 6이고 평균적으로 각 토큰이 2개의 문자 로 이루어져 있다면, BPC는 6/2 = 3)
BPC의 문제점은 문자 인코딩이 천차만별이라는 점이다(E.g., ASCII와 UTF-8). 그로 인해 바이트 당 비트(BPB, bits-per-byte)를 사용한다. 이는 원본 학습 데이터의 1바이트를 표현하는 데 필요한 비트 수를 의미한다.
교차 엔트로피는 언어 모델이 텍스트를 얼마나 효율적으로 압축할 수 있는지 알려준다. 언어 모델의 BPB가 3.43이면, 원본 1바이트(8비트)를 3.43비트로 표현할 수 있다는 뜻이며, 이 언어 모델은 원본 학습 텍스트를 원래 크기의 절반 이하로 압축할 수 있다는 의미다
퍼플렉시티
퍼플렉시티는 엔트로피와 교차 엔트로피의 지수 함수로 정의된다. 흔히 PPL로 줄여 쓰며, 언어 모델의 성능을 평가하는 주요 지표로 활용된다.
실제 분포 P를 가진 데이터셋이 주어졌을 때, 데이터 자체의 퍼플렉시티와 모델의 퍼플렉시티는 각각 다음과 같이 정의된다. (이때 밑은 정보 이론에서 주로 사용하는 2를 기준으로 한다.)
- 데이터셋 자체의 퍼플렉시티:
- 모델의 퍼플렉시티: 실제 분포 P와 모델이 학습한 분포 Q 사이의 교차 엔트로피를 지수로 취한다.
교차 엔트로피가 모델이 다음 토큰을 예측하기 얼마나 어려운지 측정한다면, 퍼플렉시티는 다음 토큰을 예측할 때의 불확실성을 측정한다. 불확실성이 높을수록 다음 토큰으로 가능한 선택지가 많다는 뜻이다.
텐서플로와 파이토치를 포함한 인기 있는 ML 프레임워크는 엔트로피와 교차 엔트로피의 단위 로 nat(자연로그)를 사용한다. nat는 자연로그 의 밑인
퍼플렉시티 해석과 활용 사례
교차 엔트로피, 퍼플렉시티, BPC, BPB는 언어 모델의 예측 정확도를 측 정하는 다양한 지표들이다. 모델이 텍스트를 더 정확하게 예측할수록 이런 지표들의 값은 더 낮아진다. 이 책에서는 언어 모델링의 기본 지표로 퍼플렉시티를 사용할 것이다. 주어진 데이터셋에서 다음에 올 것을 예측할 때 불확실성이 클수록 퍼플렉시티가 높아지는 점을 기억하자.
좋은 퍼플렉시티 값은 데이터 자체의 특성은 물론 퍼플렉시티를 어떻게 계산하는지에 따라서 도 달라진다. 예를 들어, 모델이 참조할 수 있는 이전 토큰의 수 같은 요소들이 영향을 미친다. 다음은 퍼플렉시티를 해석할 때 사용할 수 있는 일반적인 규칙들이다
- 구조화된 데이터일 수록 퍼플렉시티가 낮다
- 예측하기 쉽기 때문
- 어휘 크기가 클 수록 퍼플렉시티가 높다
- 어려운 내용, 풍부한 어휘를 쓰면(토큰이 많으면) 다음 토큰 예측이 어렵기 때문
- 컨텍스트 길이가 길 수록 퍼플렉시티가 낮다
- 모델이 볼 수 있는 컨텍스트가 많을 수록 다음 토큰 예측에 대한 불확실성이 줄어든다
퍼플렉시티는 언어 모델 학습시 성능 지표로 사용되는 것 외에도 다양한 AI 엔지니어링 작업에 서 유용하다. 우선 퍼플렉시티는 모델의 성능을 간접적으로 보여주는 좋은 지표다. 모델이 다 음 토큰을 잘 예측하지 못한다면 다른 작업에서도 성능이 좋지 않을 가능성이 높다.
벤치마크 결과를 토대로 얼마만큼 성능이 향상되었는지 정도만을 말한다.
이러면 사실 위에 언급된 내용과 별반 다를 게 없어서, 이 내용은 그냥 그렇구나 정도로 넘어가는게 적절할 듯?
정확한 평가
모델의 성능을 평가할 때, 정확한 평가와 주관적 평가를 구분하는 것이 중요하다.
정확한 평가는 모호함 없이 판단을 내린다. 주관적 판단은 그렇지 않다. 그럴 수도 없다. 그래서 채점기준이 있으면 그나마 낫다. AI 평가자는 주관적이므로, 평가하는 모델과 프롬프트에 따라 달라진다.
정확한 점수를 산출하는 두 가지 평가방식이 있다.
- 기능적 정확성
- 참조 데이터의 유사도 측정
임의의 텍스트를 생성하는 개방형 응답의 평가에 주요 포커스를 두고 살펴본다.
기능적 정확성
시스템이 의도한 기능을 제대로 수행하는지 평가하는 것을 의미한다. 의도하는 대로 잘 도는가? 를 묻는 거니 쉽다 싶겠지만, 기능적 정확성을 측정하는 게 항상 쉬운 것도 아니고 자동화도 쉽지 않다.
코드 생성은 그 작업 중 하나의 예시다. OpenAI의 HumanEval, 구글의 MBPP 같은 벤치마크도 있고 요즘엔 SWE-Bench 같은 테스트도 있다. 이런 문제를 갖다주고 얼마나 잘 푸나 살펴보는 것이다.
게임 봇도 마찬가지로 평가할 수 있다. 측정 가능한 목표가 있으니 그 기능에 대한 정확성으로 판단하는 것이다.
참조 데이터 유사도 측정
기능적 정확성으로 측정하기 힘든 것들은 참조 데이터와 비교해 평가하는 것이다.
참조데이터는 <입력, 참조응답>의 예시를 따른다. 한 입력에 여러 참조응답(또는 표준 응답이라 함)이 있을 수도 있다. 하나의 문제에 여러 답이 있을 수 있다. 참조가 필요한 평가 지표는 참조 기반 지표(reference-based metrics), 그렇지 않은 것은 참조없는 지표(reference-free metrics)라고 한다.
이 평가 방식은 참조 데이터가 필요하다. 이 참조 데이터를 얼마나 빨리 만들 수 있는가가 성능의 척도가 된다. AI를 이용한 참조 데이터를 만드는 방안이 각광받고있다.
생성된 응답이 참조 응답과 더 비슷할 수록 더 좋은 것으로 간주된다. 두 개방형 텍스트 간 유사도를 측정하는 방법은 아래와 같이 존재한다:
- 비교: 평가자에게 두 텍스트가 같은지 요청하기
- 정확한 일치: 생성된 응답이 참조 응답 중 하나와 "정확한지" 비교
- 어휘적 유사도: 생성된 응답이 참조 응답과 얼마나 비슷해 보이는지
- 의미적 유사도: 생성된 응답이 의미(semantic)에서 참조응답과 얼마나 가까운지
두 응답의 비교는 사람이 할 수도, AI가 할 수도 있다.
- 검색: 질의와 유사한 항목 찾기
- 순위 매기기: 질의에 대한 유사도를 기준으로 순위 매기기
- 군집화: 항목간 유사도를 기준으로 군집화
- 이상 탐지: 나머지 항목들과 유사도가 낮은 항목 탐지하기
- 데이터 중복 제거: 타 항목과 유사도가 높은 항목 제거하기
정확한 일치
간단하거나 퀴즈형태는 쉬운데 이를 넘어서면 어려워진다
어휘적 유사도
두 단어가 얼마나 겹치나 측정하는 것을 의미한다. 각 테스트를 더 작은 토큰으로 나누어 비교한다.
- 근사 문자열 매칭(퍼지 매칭): 두 텍스트가 얼마나 비슷한지 측정하기 위해 한 텍스트를 다른 텍스트로 바꾸는 데 필요한 편집횟수를 카운트. 이 때 편집 횟수를 편집 거리라고 일컬음
- n-gram 유사도: 토큰의 연속된 시퀀스인 n-gram 의 겹침을 기준으로 측정함
이 방법은 포괄적인 참조 응답 세트가 있어야하고, 이 참조 응답과 유사해야 유사도가 높게 측정되는 단점을 가지고 있다. 무엇보다도 참조 응답 자체가 오답일 수도 있고, 어휘적 유사도가 높다고 해서 더 나은 응답이라고 할 수도 없다.
의미적 유사도
의미가 얼마나 비슷한지 계산하고, 텍스트를 임베딩 해야한다(3.3.3 임베딩 소개 절 참고). 두 임베딩 간 유사도는 코사인 유사도 같은 지표로 계산할 수 있다. 의미적 유사도는 이미지, 오디오를 포함한 모든 유형의 임베딩에 대해 계산할 수 있다.
의미적 유사도는 어휘적 유사도만큼의 참조 응답 세트를 필요로 하지 않지만, 임베딩 알고리즘의 품질에 따라 차이점이 매우 크다.
임베딩 소개
임베딩(embedding)은 원본 데이터의 의미를 담으려는 숫자 표현이다. 임베딩은 벡터다. 임베딩 벡터의 원소객수 - 즉 크기는 100에서 10000사이다^citation-needed
임베딩의 목표는 원본 데이터의 본질을 담으려는 것에 있다. 큰 틀에서 보면, 더 비슷한 텍스트의 임베딩이 코사인 유사도 혹은 관련 지료포 측정 시 더 가까우면 좋은 알고리즘이라고 본다.
임베딩의 품질은 해당 작업의 유용성을 기준으로 평가할 수 있다. 임베딩은 분류, 주제 모델링, 추천 시스템, RAG 등에서 쓰일 수 있다.
모든 데이터는 임베딩으로 표현될 수 있다. 제품에 대한 임베딩, 이미지, 그래프, 쿼리, 사용자 자체에 대한 임베딩 또한 가능하다.
서로 다른 유형의 데이터에 대한 통합 임베딩 기법또한 있다. CLIP(Radford et al., 2021)은 텍스트와 이미지라는 이형 데이터를 하나의 통합 임베딩 공간으로 매핑할 수 있는 모델이었다. 이런 여러 유형의 데이터를 표현할 수 있는 통합 임베딩 공간을 멀티모달 임베딩 공간이라고 한다.
AI 평가자
AI를 사용하여 AI를 평가하는 접근방식을 의미한다. (AI as a judge 또는 LLM as a judge)
AI 평가자를 쓰는 이유
그야... 쉽고 빠르고 비용이 저렴한데다가, 출력을 평가하도록 하기에 부담이 없다. 자신의 결정을 설명하라고 해도 잘 한다.
AI 평가자 사용법
프롬프트 예시를 통해 살펴보자.
- 주어진 원본 질의에 대해 응답의 품질을 독립적으로 판단하기
"다음 질의와 응답이 주어졌을 때, 질의에 대한 응답이 얼마나 좋은지 평가하시오.
1부터 5까지의 점수를 사용하시오.
1은 매우 나쁨을 의미한다.
5는 매우 좋음을 의미한다.
질의: [질의]
응답: [응답]
점수:"
- 생성된 응답을 참조 응답과 비교하여 생성된 응답이 참조 응답과 같은지 비교하기
"다음 질의, 참조 응답, 생성된 응답이 주어졌을 때, 이 생성된 응답이 참조 응답
과 같은지 평가하시오. True 또는 False를 출력하시오.
질의: [질의]
참조 응답: [참조 응답]
생성된 응답: [생성된 응답]"
- 생성된 두 응답 중 어느것이 더 나은지, 사용자가 어떤 것을 더 선호할지 예측하기
"다음 질의와 두 응답이 주어졌을 때, 어느 응답이 더 나은지 평가하시오. A 또는
B를 출력하시오.
질의: [질의]
A:[첫 번째 응답]
B:[두 번째 응답]
더 나은 응답은:"
범용 AI 평가자는 어떤 기준으로도 응답을 평가할 수 있다. AI 도구들이 기본으로 제공하는 AI 평가기준(2024년 9월 기준)을 살펴보고 이와 유사한 평가 기준을 살펴보아 자신에게 맞는 도구를 사용해보자.
| AI 도구 | 내장된 기준 |
|---|---|
| Azure AI Foundry | 사실 기반성, 관련성, 일관성, 유창함, 유사성 |
| MLflow.metrics | 신뢰성, 적합성 |
| LangChain Criteria Evaluation | 정확성, pc, 윤리적 부분 |
| Ragas | 신뢰성, 응답 관련성 |
이런 평가기준은 표준화되어있지 않기 때문에 각 서비스 별로 관련성 점수가 다를 수도 있다. 이 점수는 평가자 역할을 하는 AI모델과 프롬프트를 타기도 한다.
AI평가자를 프롬프트하는 방법은 다른 AI 앱 프롬프트 방법과 유사하다. 일반적으로 평가자 프롬프트는 아래 사항을 명확히 해야 한다.
- 모델이 수행할 작업 (E.g., 생성된 응답과 질의 간의 관련성 평가)
- 모델을 평가할 때 따라야 할 기준(E.g., 주요 초점은 생성된 응답이 기준 응답(ground truth answer)에 따라 주어진
질의를 충분히 해결하는 정보를 포함하는지 판단하는 데 두어야 한다'). 지시가 더 자세할수록 좋다. - 점수 체계. 다음 중 하나의 방식으로 점수를 매길 수 있다:
A. 분류: 좋음/나쁨, 관련됨/관련 없음/중립 등
B. 이산적인 숫자 값: 1 〜5점. 이는 각 클래스를 의미적으로 해석하는 대신 숫자로 구분하는 특수한 분류 방식
C. 연속적인 숫자 값: 0과 1 사이의 값. 유사성 정도를 평가할 때 사용
언어모델은 일반적으로 숫자보다 텍스트를 더 잘 다룬다. AI 평가자는 수치 점수 체계보다 분류에서 더 잘 작동하는 것으로 알려져있다.
수치 점수 체계를 쓸 때는 연속 점수보다 이산 점수 체계를 구성하자. 경험적으로 이산점수의 범위는 1-5 사이가 좋다.
프롬프트에 대한 예시가 포함된 경우 성능이 더 좋은 것으로 나타났다. 점수 체계를 쓸거면 점수에 해당하는 응답 예시를 포함하고, 가능하면 특정 점수를 부여받은 이유까지 기재하자. 모범 사례는 5장을 참조한다. 아래 예시를 보고 어떤 식인지 살펴보자:
당신의 임무는 정답을 바탕으로 생성된 응답과 질의 사이의 관련성을 1부터 5까지의 범위에서 점수를 매기고, 점수를 매긴 이유도 제공하는 것입니다.
당신의 주요 초점은 생성된 응답이 정답에 따라 주어진 질의를 다루기에 충분한 정보를 포함하고 있는지 판단하는 것이어야 합니다.
(중략)
생성된 응답이 정답과 모순된다면 1~2점의 낮은 점수를 받게 될 것입니다. 예를 들어, "하늘이 파란가요?",라는 질의에 대해 정답은 "네, 하늘은 파랗습니다."이고 생성된 응답은 "아니요, 하늘은 파랗지 않습니다."입니다.
이 예시에서 생성된 응답은 하늘이 사실상 파란데 파랗지 않다고 말함으로써 정답과 모순됩니다.
이러한 불일치로 인해 1~2점의 낮은 점수를 받을 것이며, 낮은 점수의 이유는 생성된 응답과 정답 사이의 모순을 반영할 것입니다.
AI 평가자는 모델만 있는 것이 아니라 모델과 프롬프트 모두를 포함하는 시스템이다. 모델, 프롬프트 또는 모델의 샘플링 파라미터를 변경하면 다른 평가자가 된다.
AI 평가자의 한계
이는 앞서말한 확률적 특성 때문에 신뢰성이 떨어진다. 여길 수도 있고 비용과 레이턴시 이슈도 있다. 운영환경에 도입하는 것은 당연히 더 망설여지기 쉽다.
비일관성
평가방법은 말 그대로 일관적이어야 되는데 AI 평가자는 그렇지 못하니 그게 힘들다. 그렇기 떄문에 AI 평가자의 일관성을 높이는 것을 해야한다. 한 논문에 따르면[2] 프롬프트에 평가 예시를 포함하여 일관성을 상승시킨 바 있지만, 높은 일관성이 높은 정확도를 말하는 것은 아니라는 것 까지 시사했다. 평가자가 일관되게 실수할 수도 있기 때문이다. 게다가 예시가 더 많이 들어가면 그만큼 프롬프트가 길어지고, 긴 프롬프트는 추론비용을 높인다. 실험에서는 프롬프트 예시를 더 많이 포함하자 GPT-4 비용이 4배 늘어났다.
평가 기준의 모호성
AI 평가자 지표는 표준화되지 않아서 잘못된 해석과 오용하기 쉽다. 상기 오픈소스 도구들은 모두 충실성(faithfulness)이란 내장 기준을 가지고있지만, 지시 및 점수 체계가 모두 다르다. MLflow는 1 점에서 5점까지의 점수 체계를 사용하고, Ragas는 0과 1을 사 용하며, Llamalndex의 프롬프트는 평가자에게 YES와 NO를 출력하도록 요청한다. 그렇다보니 비교도 어렵다.
평가 방식은 이상적으론 고정되어야 한다. 이래야 앱의 변화를 모니터링할 수 있기 때문이다. 하지만 AI 평가자도 AI 앱이기 때문에 시간이 지나며 변할 수 있다. 또한 앱과 AI 평가자 관리주체가 다르면 혼란스럽기 쉽다. 둘 다 서로 변하니까 뭐 때문에 문제가 일어난 것인지 추적이 힘들어지기 때문이다.
모델과 평가자에 사용된 프롬프트를 볼 수 없다면 어떤 AI 평가자도 신뢰할 수 없다.
비용과 지연시간 증가
강력한 모델로 응답평가하는 건 비용이 많이 들 수도 있다. 다양한 기준을 더 충족하는지 살펴보려면 그만큼 비용이 더 들어간다. 더 약한 모델을 쓰거나, 표본검사를 하는 것으로 비용을 줄일 수 있다. 이 균형을 찾으려면 시행착오가 필요하다. (4장에서 자세히 다룸)
AI 평가자의 편향
모델도 마찬가지로 편향이 있다. AI 평가자는 자기 편향(self-bias)을 보이는 경향이 있다. 자기 응답이 더 맞다고 선호하는 현상을 의미한다.
많은 모델들이 첫 위치 편향을 보인다. 첫 번째 응답을 선호하는 편향을 의미한다 . 이는 순서를 바꾸며 같은 테스트를 반복하거나, 세심하게 작성된 프롬프트로 완화할 수 있다. 반면 사람은 마지막에 본 응답을 선호하는 경향이 있다.
일부 AI 평가자는 장황성 편향을 보인다. 더 긴 응답을 선호하는 것을 의미한다. 그런데 이는 모델이 더 강력해질 수록 이런 편향이 사라질 수 있다는 것을 시사한다.
평가자로 활용 가능한 모델
평가자는 평가받는 모델보다 강할 수도, 약할 수도, 비슷할 수도 있다. 각 시나리오별로 장단이 있다.
더 강한 모델로 평가하고 약한 모델로 응답하는 것은 비용과 지연시간을 고려할 때 생각해볼 수 있다. 비용 절감을 위해 일부 응답 평가에만 활용하는 방식이다. 물론 내부 모델로 응답을 생성하고 강력한 모델로 응답을 평가하는 방안도 가능하다.
강력한 모델이 애플리케이션에 비해 너무 느릴 수도 있다. 빠른 모델로 응답을 생성하고, 더 강력하지만 느린 모델은 백그라운드에서 평가를 수행하도록 할 수 있다. 강력한 모델이 약한 모델의 응답이 좋지 않다고 판단하면, 강력한 모델의 응답으로 교체하는 등의 조치를 취할 수 있다.
반대 패턴도 흔한데, 강력한 모델로 응답을 생성하고 약한 모델이 백그라운드에서 평가 를 수행하는 방식이다.
더 강력한 모델을 평가자로 사용하면 두 가지 문제가 생긴다. 첫째, 가장 강력한 모델을 평가할 만한 평가자를 찾을 수 없다. 둘째, 어떤 모델이 가장 강력한지 판단하기 위한 다른 평가 방법 이 필요하다.
모델이 자기 자신을 평가하는 자기평가/자기비평 또한 기본 검증에 매우 유용하다.
AI 평가자를 활용하는 방안은 아래와 같다:
- 보상 모델
- <프롬프트, 입력> 쌍을 받고 주어진 프롬프트에 대해 점수를 매기는 것 (RLHF에서 쓰인 방안)
- 범용 파운데이션 모델보다 훨씬 작음
- 참조 기반 평가자
- 하나 이상의 참조 응답을 기준으로 생성된 응답을 평가
- 유사도 점수나 품질 점수(생성된 응답이 참조 응답과 비교하여 얼마나 더 좋은가?)
- 선호도 모델
- <프롬프트, 응답1, 응답2> 를 받고 주어진 프롬프트에 대해 어떤 응답이 더 나은지 출력하는 것을 의미
비교 평가를 통해 모델 순위 정하기
개별 평가는 각 모델을 독립적으로 평가한 후 순위를 매긴다. 비교평가는 모델을 서로 비교해 평가하고 비교결과로 순위를 계산한다. 응답의 품질이 주관적일 때 비교평가가 더 쉽다.
모든 질의는 선호도로 평가할 수 없으므로 많은 경우 정확성을 기준으로 평가해야 한다. 사용자에게 비교의견을 수집할 때 가장 어려운 점은 어떤 질의가 선호도 투표에 적합한지 판단하는 것이다.
스포츠나 게임분야에서 이런 평가 알고리즘이 응용되기도 한다.
비교 평가의 과제들
확장성
데이터가 많아야 비교할 수가 있다.
순위 알고리즘은 전이성을 가정한다 (E.g.,
새 모델을 평가하는 것도 어렵다. 기존 모델과 비교해서 순위를 다시 재거나 해야한다.
비공개 모델은 직접 순위표를 만들거나 비공개 평가를 의뢰하는 수 밖에 없다.
표준화와 품질 관리의 부재
비교결과 수집 방안은 접근성이 쉬우니 조작하기도 쉽다. 그리고 표준화와 품질 관리를 강제하기도 어렵다.
비교 성능에서 절대 성능으로
최고 모델을 쓸 것이 아니라 필요에 맞는 적절한 모델을 쓰는 것이 중요하다. 모델이 좋은 건 알겠는데 내 수준에서 이게 적합한지는 결국 스스로 알아야한다.
비교 평가의 미래
- 두 출력을 비교하는 것이 구체적 점수를 매기는 것 보다 쉽고, 이를 통한 가치있는 피드백을 확보할 수 있다
- 사람의 선호도를 파악하는 데는 여전히 유효하다. 참조데이터가 아니라 선호도가 들어가니까
마무리
파운데이션 모델은 기존 ML 모델보다 평가가 까다로워 사람의 직접 검증이 중요하지만, 효율성을 위해 퍼플렉시티나 교차 엔트로피 같은 자동화된 지표가 널리 활용된다. 특히 기능 정확도나 유사도 점수 같은 객관적 지표 외에도 AI를 활용한 개방형 응답 평가가 도입되고 있으나, AI 평가자는 주관적이고 기준이 수시로 변한다는 한계가 있다. 따라서 현재는 AI 평가의 미비점을 정밀한 측정 방식이나 사람의 평가로 보완하는 단계에 머물러 있다.
모델 평가 방식은 개별 점수를 매기는 방식과 두 모델을 직접 비교하여 순위를 정하는 방식으로 나뉘는데, 최근에는 체스 점수 산출법과 유사한 직접 비교 방식이 각광받고 있다. 이 과정에서 발생하는 고비용의 선호도 데이터를 대체하기 위해 사용자 취향을 예측하는 '선호도 모델'이 대안으로 부상했다. 전통적인 언어 모델 지표에서 시작된 평가 기술은 이제 파운데이션 모델에 특화된 AI 기반 비교 평가로 진화하고 있으며, 신뢰할 수 있는 평가 프로세스를 구축하는 방향으로 연구가 집중되고 있다.