AI Engineering by Chip Huyen

Chapter 3

Evaluation Methodology: 평가 방법론

평가란 무엇인가?

  • 평가는 위험을 줄이고 기회를 발굴하기 위한 것
  • 실패에 대한 가시성을 확보하려면 시스템을 재설계해야할 수도 있음
  • 언어 모델의 평가 지표는 cross entropy, perplexity 등이 있음
  • 평가는 정확도 평가와 주관적 평가가 있으며 AI 판사는 주관적 평가의 주목받는 방법임

파운데이션 모델 평가의 어려운 점

  • AI 모델이 지능적이 될 수록 평가도 어려워짐
  • 파운데이션 모델의 열린 선택지 특성은 전통적으로 진실에 대해 모델 평가를 하던 접근 방법을 적용하기 어렵게 하고 있음
  • 대부분의 파운데이션 모델은 내부를 알 수 없음(black boxes)
  • 공개적으로 가능한 평가 벤치마크는 파운데이션 모델을 평가하기 부적합한 것으로 밝혀짐
  • 평가의 범위가 일반 목적 모델에 대해 넓어짐

언어 모델 지표 이해

  • 언어 모델 지표에 대한 이해는 이를 이용한 다운스트림 성능을 이해하는데 도움을 줄 수 있음
  • 대표적인 4가지 지표는 cross entropy, perplexity, BPC, BPB이며 서로 연관됨
  • 대개 대상 데이터가 모델의 훈련 데이터와 유사할 수록 해당 데이터에 대한 모델의 성능도 높아짐

엔트로피(Entropy)

  • 엔트로피는 한 토큰이 얼마나 많은 정보를 가지는지 측정하는 지표임
  • 엔트로피는 다음 토큰을 예측하기 얼마나 어려운지에 대한 지표가 될 수 있음
  • 다음에 어떤 토큰일지 완벽하게 예측할 수 있다면 이는 새로운 정보가 전혀 없다는 것을 의미함
  • Shannon entropy
    $$ H(P) = - \sum_{x} P(x) \log P(x) $$
    Binary Shannon Entropy

크로스 엔트로피(Cross Entropy)

  • 특정 데이터 세트에 대한 언어 모델의 크로스 엔트로피는 언어 모델이 그 데이터 세트에 대한 다음 토큰을 얼마나 잘 예측할 수 있는가에 대한 지표
  • 크로스 엔트로피는 2가지 특성에 의존함
    1. 훈련 데이터의 예측 가능성(expected 엔트로피)
    2. 훈련 데이터의 진짜 분포로부터 획득된 언어 모델의 분포(actual 엔트로피)
  • 크로스 엔트로피는 Kullback-Leibler (KL) divergence(발산)을 통해 구할 수 있음
  • KL divergence
    $$ D_{\text{KL}}(P \parallel Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)} $$
  • Cross entropy
    $$ H(P,Q) = H(P) + D_{\text{KL}}(P \parallel Q) = - \sum_{x} P(x) \log Q(x) $$
  • 비대칭성: Q의 P에 대한 크로스 엔트로피 \(H(P,Q)\) 는 P의 Q에 대한 크로스 엔트로피 \(H(Q,P)\)와 다름

Bits-per-Character와 Bits-per-Byte

  • 엔트로피와 크로스 엔트로피의 단위는 bit
  • bits-per-character(BPC)는 언어 모델이 본래 훈련 데이터의 1 글자를 표현하는데 필요한 bit의 갯수
  • bits-per-byte(BPB)는 언어 모델이 본래 훈련 데이터의 1 바이트를 표현하는데 필요한 bit의 갯수
  • 크로스 엔트로피는 언어 모델이 텍스트를 얼마나 효율적으로 압축하는지 나타내줌
    • 언어 모델의 BPB가 3.43이라면 본래 8비트를 3.43비트로 표현한 것이므로 본래 텍스트를 절반 이하로 압축

Perplexity

  • Perplexity는 엔트로피와 크로스 엔트로피에 대한 지수식
  • 진짜 분포 P에 대한 perplexity 정의
    $$ PPL(P) = 2^{H(P)}$$
  • 학습된 분포 Q에 대한 언어 모델의 perplexity 정의
    $$ PPL(P,Q) = 2^{H(P,Q)}$$
  • 크로스 엔트로피가 모델의 다음 토큰 예측에 대한 난이도를 측정하는 반면, perplexity는 다음 토큰 예측의 불확실성의 양을 측정함
  • 불확실성이 높다는 것은 다음 토큰에 대한 가능한 선택지가 많다는 뜻
  • 자연로그 nat 를 단위로 쓴다면 perplexity는 e의 지수식. TensorFlow와 PyTorch 같은 인기 ML 프레임워크는 자연 로그를 엔트로피와 크로스 엔트로피의 단위로 사용함
    $$ PPL(P) = e^{H(P)}$$

Perplexity 해석과 용례

  • cross entropy, perplexity, BPC, BPB는 언어 모델의 예측 정확도 지표의 종류들
  • 일반적으로 perplexity는 아래와 같은 특성을 보임
    • 데이터가 구조화될수록 perplexity는 감소함
    • 어휘(vocabulary)가 커질수록 perplexity도 증가함
    • 컨텍스트 길이가 길어질수록 perplexity는 감소함
  • perplexity는 AI 엔지니어링 작업에 유용한 특성을 지님
    • perplexity는 모델의 능력에 대한 좋은 대리자
      • OpenAI의 GPT-2 보고서에서는 모델이 커질수록(강력할수록) 낮은 perplexity를 가짐을 보임
    • 훈련 데이터의 중복 제거에 사용할 수 있음
      • 새로운 데이터에 대한 perplexity가 크다면 새로운 데이터를 훈련 세트에 추가(학습되지 않았음을 유추할 수 있음)
  • 언어 모델의 perplexity는 대개 사후 학습 후 증가하는 경향을 보임
  • 언어 모델의 텍스트에 대한 perplexity 정의
    $$ \text{Perplexity}(x_1, x_2, \dots, x_N) = \exp \left( - \frac{1}{N} \sum_{i=1}^{N} \log P(x_i | x_1, x_2, \dots, x_{i-1}) \right) $$
    $$ x_i \text{는 토큰 시퀀스의 i번째 토큰} $$

정확도 평가

  • 정확도 평가는 모호하지 않은 판단을 내림
    • 다지선다 문제에서 A, B 중 A가 정답인데 B를 고른다면 틀렸음을 정확히 판단할 수 있음
  • 주관적 평가는 에세이 점수 평가처럼 같은 사람이라도 두 번 평가하면 다른 판단을 내릴 수 있는 평가
  • AI 판사는 주관적. 모델과 프롬프트에 따라 평가 결과가 달라질 수 있음
  • 정확도 평가는 크게 2가지로 나눌 수 있음
    • 기능 정확도
    • 기준 데이터와의 유사도 측정

기능 정확도

  • 기능 정확도는 시스템이 의도된 기능성을 나타내는지 평가하는 것
    • 코드 생성은 기능 정확도 측정이 자동화될 수 있는 예시
  • 측정가능한 목표를 가진 작업은 기능 정확도로 평가될 수 있음

기준 데이터와의 유사도 측정

  • AI의 결과를 기준 데이터와 비교
  • 기준 데이터(응답)는 ground truthcanonical responses로도 불림
  • 기준이 필요한 지표는 reference-based하고 아닌 지표는 reference-free
  • 기준 데이터가 얼마나 빨리 생성되느냐가 평가의 병목