AI 엔지니어링 챕터 3: AI 평가가 생각보다 어려운 이유
요약
AI 모델 구축만큼이나 중요한 AI 평가의 어려움과 방법론을 다룹니다. 벤치마크의 한계와 엔트로피, 퍼플렉서티 등 모델의 예측 성능을 측정하는 핵심 지표들의 개념을 설명합니다.
핵심 포인트
- AI 모델은 정답이 다양하여 전통적 소프트웨어보다 평가가 어려움
- 모델의 발전 속도로 인해 벤치마크(GLUE, MMLU 등)는 지속적으로 업데이트 필요
- 벤치마크 점수가 반드시 실제 언어 이해 능력을 보장하지는 않음
- 엔트로피와 퍼플렉서티는 모델의 불확실성과 예측 성능을 측정하는 지표
- 평가 지표는 데이터셋, 토크나이저, 문맥 등 환경에 따라 해석이 달라져야 함
AI 엔지니어링 챕터 3에서 얻은 가장 큰 깨달음 중 하나는 AI 모델을 구축하는 것이 도전 과제의 일부일 뿐이라는 점이었습니다. 그것을 공정하고 정확하게 평가하는 방법을 알아내는 것 또한 그만큼 어려울 수 있습니다.
전통적인 소프트웨어의 경우, 무언가가 제대로 작동하는지 판단하기가 대개 쉽습니다. 계산이 틀렸거나 테스트가 실패하면 버그가 있다는 것을 알 수 있습니다. 하지만 AI는 항상 그런 방식으로 작동하지는 않습니다. 모델은 동일한 질문에 대해 여러 개의 합리적인 답변을 생성할 수 있으며, 이로 인해 어떤 답변이 실제로 더 나은지 결정하는 것이 훨씬 더 어려워집니다.
이 점은 저에게 다음과 같은 생각을 하게 만들었습니다:
AI 모델이 실제로 개선되고 있는지 어떻게 알 수 있을까?
지속적으로 진화해야 하는 벤치마크 (Benchmarks)
이 섹션을 읽으면서 평가 벤치마크 (benchmarks)가 AI 발전 속도를 따라가는 것이 얼마나 어려운지 깨달았습니다.
이 장에서는 GLUE (General Language Understanding Evaluation)가 일반적인 자연어 작업에서 언어 모델이 얼마나 잘 수행하는지 측정하기 위해 2018년에 도입되었다고 설명합니다. 하지만 약 1년 만에 모델들이 이미 해당 작업을 매우 잘 수행하게 되었고, 연구자들은 2019년에 더 어려운 벤치마크인 SuperGLUE를 도입했습니다.
GLUE는 다음과 같은 작업들을 평가합니다:
질의응답 (Question answering)
감성 분석 (Sentiment analysis)
문장 유사도 (Sentence similarity)
텍스트 분류 (Text classification)
이 장은 또한 다음과 같은 최신 벤치마크들도 언급합니다:
SuperGLUE
MMLU (Massive Multitask Language Understanding)
MMLU-Pro
각 벤치마크는 이전 벤치마크가 더 이상 충분히 도전적이지 않기 때문에 도입되었습니다.
흥미로웠던 점은 모델이 더 높은 벤치마크 점수를 받는다고 해서 항상 언어를 더 잘 이해한다는 의미는 아니라는 것입니다. 때로는 단순히 모델이 해당 특정 벤치마크를 해결하는 데 매우 능숙해졌음을 의미할 뿐입니다.
엔트로피 (Entropy)와 퍼플렉서티 (Perplexity) 이해하기
제가 정말 즐겁게 읽었던 또 다른 섹션은 엔트로피 (entropy)와 퍼플렉서티 (perplexity)에 대한 설명이었습니다.
이 장에서는 엔트로피 (entropy)를 하나의 토큰 (token)이 얼마나 많은 정보를 담고 있는지, 그리고 시퀀스 (sequence)에서 다음 토큰을 예측하는 것이 얼마나 어려운지를 측정하는 척도로 설명합니다.
Perplexity (혼란도)는 불확실성을 측정합니다. 모델이 다음에 올 내용에 대해 매우 불확실하다면, Perplexity는 더 높아질 것입니다. 만약 모델이 자신감 있고 정확하게 예측한다면, Perplexity는 더 낮아집니다.
또한 Cross Entropy (교차 엔트로피), Perplexity (혼란도), Bits-per-character (BPC), 그리고 Bits-per-byte (BPB)가 모두 언어 모델이 텍스트를 얼마나 잘 예측하는지를 측정하는 서로 다른 방법이라는 점을 배우는 것도 즐거웠습니다. 모델이 텍스트를 더 잘 예측할수록, 이러한 지표들은 더 낮아집니다.
또 다른 눈에 띄는 점은 단 하나의 "좋은" Perplexity 점수라는 것은 존재하지 않는다는 것이었습니다. 그 값은 다음 요소들에 따라 달라집니다:
- 평가 대상이 되는 데이터셋
- 사용되는 Tokenizer (토크나이저)
- Perplexity가 계산되는 방식
- 모델이 접근할 수 있는 Context (문맥)의 양
이는 지표를 맹목적으로 비교하기보다는 항상 문맥 속에서 해석해야 한다는 점을 상기시켜 주는 유익한 내용이었습니다.
또한 이러한 지표들이 텍스트 압축 (text compression)과 직접적으로 연결된다는 점이 매우 흥미로웠습니다. 모델이 텍스트를 효율적으로 예측한다면, 더 적은 비트 (bits)를 사용하여 해당 정보를 표현할 수 있습니다. 이 장을 읽기 전까지는 언어 모델과 데이터 압축이 이렇게 밀접하게 연관되어 있다고 생각해 본 적이 없었습니다.
𝗘𝘅𝗮𝗰𝘁 𝗘𝘃𝗮𝗹𝘂𝗮𝘁𝗶𝗼𝗻 𝘃𝘀. 𝗦𝘂𝗯𝗷𝗲𝗰𝘁𝗶𝘃𝗲 𝗘𝘃𝗮𝗹𝘂𝗮𝘁𝗶𝗼𝗻 (정확한 평가 vs. 주관적 평가)
매우 납득이 갔던 또 다른 개념은 정확한 평가 (exact evaluation)와 주관적 평가 (subjective evaluation)의 차이였습니다.
어떤 작업들은 단 하나의 정답을 가집니다.
예를 들어:
- 수학 문제 풀기
- Unit Test (단위 테스트) 통과하기
- 객관식 질문에 답하기
이러한 것들은 정답이 맞거나 틀리거나 둘 중 하나이기 때문에 평가하기가 쉽습니다.
하지만 많은 AI 애플리케이션은 그런 방식으로 작동하지 않습니다.
한 응답이 다른 응답보다 얼마나 더 도움이 되는지, 더 창의적인지, 혹은 더 잘 쓰였는지를 어떻게 측정할 수 있을까요?
그 지점에서 평가는 훨씬 더 주관적이 됩니다.
𝗔𝗜 𝗝𝘂𝗱𝗴𝗶𝗻𝗴 𝗔𝗜 (AI가 AI를 심판하기)
이 부분은 아마도 이 장에서 제가 가장 좋아했던 섹션일 것입니다.
연구자들은 이제 인간에게만 의존하는 대신, 하나의 AI 모델을 사용하여 다른 모델을 평가하고 있습니다.
AI 심판은 다음과 같은 질문에 답할 수 있습니다:
- 이 응답이 관련이 있는가?
- Hallucination (환각)을 포함하고 있는가?
- 어떤 응답이 더 나은가?
- 사용자들이 아마 어떤 답변을 더 선호할 것인가?
이 장에서는 일부 AI 심사위원(AI judges)이 인간 평가자와 놀라울 정도로 자주 일치한다는 연구 결과에 대해서도 논의합니다.
하지만 왜 우리가 이러한 심사위원들을 맹목적으로 신뢰해서는 안 되는지에 대해서도 설명합니다.
이들은 다음과 같은 요소들에 의해 영향을 받을 수 있습니다:
- 프롬프트 (prompt)
- 응답이 제시되는 순서
- 모델 자체
- 서로 다른 채점 방식 (scoring methods)
이 장의 문장 중 하나가 정말 기억에 남습니다:
"심사위원으로 사용된 모델과 프롬프트를 확인할 수 없다면, 어떤 AI 심사위원도 신뢰하지 마십시오."
더 많은 AI 도구들이 블랙박스 (black boxes)가 되어가는 상황에서, 이는 좋은 경고처럼 느껴집니다.
𝗟𝗼𝗼𝗸𝗶𝗻𝗴 𝗕𝗲𝘆𝗼𝗻𝗱 𝘁𝗵𝗲 𝗪𝗼𝗿𝗱𝘀
제가 흥미롭다고 느낀 또 다른 아이디어는 어휘적 유사성 (lexical similarity)과 의미적 유사성 (semantic similarity)의 차이였습니다.
두 문장은 완전히 다른 단어를 사용하면서도 거의 같은 의미를 가질 수 있습니다.
예를 들어:
"What's up?"
"How are you?"
반면에, 두 문장은 거의 동일해 보이면서도 완전히 다른 의미를 가질 수 있습니다.
이 장에서 나온 고전적인 예시는 다음과 같습니다:
"Let's eat grandma."
"Let's eat, grandma."
쉼표 하나가 모든 것을 바꿉니다.
이 지점에서 임베딩 (embeddings)이 매우 중요해집니다. 단어를 직접 비교하는 대신, 임베딩은 의미를 벡터 (vectors)로 표현하여 모델이 단순히 텍스트를 매칭하는 것이 아니라 아이디어를 비교할 수 있게 해줍니다.
이것이 바로 의미 검색 (semantic search), 추천 시스템 (recommendation systems), 검색 (retrieval), 클러스터링 (clustering), 그리고 RAG와 같은 많은 현대적 AI 애플리케이션을 구동하는 힘입니다.
𝗖𝗼𝗺𝗽𝗮𝗿𝗶𝗻𝗴 𝗜𝗻𝘀𝘁𝗲𝗮𝗱 𝗼𝗳 𝗦𝗰𝗼𝗿𝗶𝗻𝗴
이 장은 또한 개별적으로 점수를 매기는 대신 응답들을 비교하는 접근 방식인 비교 평가 (comparative evaluation)에 대해서도 논의합니다.
하나의 응답에 절대적인 점수를 부여하는 것보다 두 응답을 비교하는 것이 종종 더 쉽습니다.
다음과 같이 말하는 것이:
"응답 A가 응답 B보다 더 낫다."
다음과 같이 자신 있게 말하는 것보다 훨씬 쉽습니다:
"이 응답은 정확히 10점 만점에 8점을 받을 만하다."
이 아이디어는 현재 선호도 학습 (preference training) 및 AI 모델의 순위 지정 (ranking)에 활발하게 사용되고 있습니다.
이 장은 저에게 AI 평가에 대한 새로운 이해를 갖게 해주었습니다.
이 장을 읽기 전에는 주로 모델 아키텍처 (model architectures), 프롬프팅 (prompting), 미세 조정 (fine-tuning), 그리고 추론 (inference)에 대해서만 생각했습니다. 이제는 평가 (evaluation) 또한 그만큼 중요하다는 것을 깨달았습니다.
강력한 모델이 반드시 유용한 모델인 것은 아닙니다. 신뢰성 (reliability), 유용성 (usefulness), 안전성 (safety), 또는 정렬 (alignment)을 측정할 수 없다면, 모델이 실제로 개선되고 있는지 알기 어렵습니다.
이 장을 통해 얻은 가장 큰 깨달음 중 하나는 평가가 단순히 모델에 점수를 부여하는 것만이 아니라는 점입니다. 그것은 그 점수들이 실제로 무엇을 의미하는지 이해하고, 작업에 적합한 평가 방법 (evaluation method)을 선택하며, 각 접근 방식의 한계를 인식하는 것에 관한 것입니다.
AI가 계속해서 진화함에 따라, 더 나은 평가 방법을 구축하는 것이 더 나은 모델을 구축하는 것만큼이나 중요해질 것이라고 생각합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기