언어모델 평가하기
머신러닝과 인공지능 분야는 끊임없이 발전하고 있고, 최근에는 LLM이 인기를 끌고 있습니다. 그런데 LLM은 개발도 어렵지만, 평가하는 방법은 더 난해한 것 같습니다. 한국어 LLM 개발 프로젝트에 참여하면서, 자체적으로 테스트셋을 만들던 중 언어모델의 평가방법에 대해 정리한 메모들을 모아 글로 남깁니다.
Oct 19, 2023
(last update: 2023.10.19)
1. NLP 분야 벤치마크의 발전
컴퓨팅 분야에서 벤치마크는 하드웨어와 소프트웨어의 성능을 표준화된 방법으로 측정하는 테스트를 의미합니다. 머신러닝 발전 초기(약 1990년대)에는 Train-Test 패러다임을 사용하여 모델의 성능을 측정해왔습니다. 그러나 개인이나 조직의 독립적인 데이터로 만든 테스트 셋만으로는 모델의 보편적인 성능을 정확히 측정하기 어려웠습니다. 이를 해결하기 위해, ML 분야에서도 벤치마크 개념이 도입되었습니다. 벤치마크는 여러 연구자들이 동일한 테스트 셋으로 다양한 모델의 성능을 비교하기 위한 합의된 평가 방식입니다. NLP 분야에는 GLUE, CoLA, SqUAD, SST와 같은 전통적인 벤치마크들이 있으며, 다양한 벤치마크가 계속해서 개발되고 있습니다.
하지만 시간이 흐르면 특정 벤치마크에 모델들이 과적합될 수 있으며, 기존 태스크의 수준이 더 이상 모델 평가에 적절하지 않을 수 있습니다. 언어 모델의 발전은 NLU와 NLG의 경계를 더욱 모호하게 만들기도 하므로, 새로운 벤치마크를 개발할 때는 태스크의 난이도와 확장성을 모두 고려해야 합니다. 이런 맥락에서, GLUE 벤치마크는 SuperGLUE, GLGE, XGLUE, AdvGLUE, IGLUE와 같은 파생 벤치마크를 만들어나가며 꾸준히 발전해나가고 있습니다.
2. 한국어 모델 평가를 위한 벤치마크
한국어의 경우 KLUE (Korean Language Understanding Evaluation Benchmark), KoBEST (Korean Balanced Evaluation of Significant Tasks) 벤치마크가 많이 사용되고 있습니다. 영어모델 평가에 주로 사용되는 태스크를 차용해 실용적이고 최적화된 구성을 가지고 있다고 볼 수도 있지만, 반대로 아직 하위 태스크가 많지 않고, 평가를 위한 데이터셋의 소스도 한정적이어서(한국어 데이터를 수집한 후 깔끔하게 전처리하는 작업의 난이도가 영어에 비해 어려워서 그렇지 않을까 생각합니다) 개선의 여지도 있어보입니다.
3. 벤치마크 프레임워크
언어모델이 개발되면 종종 논문이나 Github을 통해 다양한 벤치마크로의 테스트 결과가 발표됩니다. 그러나 대다수 경우, 논문을 포함하여, 해당 테스트를 재현할 수 있는 코드는 함께 제공되지 않는다는 문제가 있습니다. 벤치마크의 결과는 그 구현 방식에 따라 크게 달라질 수 있기 때문에, 단순히 태스크와 데이터만이 아닌 평가 지표, 테스트의 전체 과정과 규칙까지 표준화하는 것이 중요합니다. 이런 필요성을 반영하여, 다양한 태스크에 대응하는 통합적인 도구들이 등장하였고, 이들을 '벤치마크 프레임워크'라 칭하겠습니다.
특히, Eleuther AI Language Model Evaluation Harness는 폭넓게 사용되는 벤치마크 프레임워크로 인정받고 있습니다. 이 프레임워크는 ARC(추론을 필요로 하는 질의응답), HellaSwag(상식 기반 추론), MMLU(57개 영역의 지식 테스트), 그리고 TruthfulQA(사실성 및 정확성 평가)와 같은 다양한 벤치마크를 통해 언어모델을 평가합니다. 그 결과는 Open LLM Leaderboard에 공개되어 있습니다.
(챗봇의 경우 Chatbot Arena Leaderboard에서 순위를 확인할 수 있습니다)
4. 평가방식의 확장
LLM을 정량적으로 평가하는 방법은 계속해서 발전 중입니다. 아직은 어떤 벤치마크도 Golden Standard로 기능하지는 않으며, 그렇기에 LLM 평가에서 아직은 Human Scoring을 배제할 수 없습니다. 그러나 사람이 직접 모델의 출력을 평가하는 것은 리소스도 많이 투입될 뿐더러, 편향을 제거해야하는 문제도 있습니다. 이를 보완하기 위해 최근에는 언어 모델을 평가할 때 다른 언어모델을 사용하는 방식이 점점 등장하고 있습니다. 이 방법은 사람 평가에 잠재되어있는 편향을 배제하고, 모델 개발에서 적지 않은 시간을 차지하는 평가 단계에 들어가는 리소스를 줄여주기 때문에 점점 더 발전해 갈 영역으로 보입니다.
사실 ‘모델 평가에 모델을 사용하는’ 컨셉이 마냥 새로운 것은 아니고, 초창기(2019년 - 2020년)에는 아래와 같은 방법론이 있었습니다.
그러다 ChatGPT를 시작으로 많은 LLM이 등장하면서 ‘LLM을 평가하는 LLM’이라는 방법론이 등장했고, 언어모델의 생성능력을 이용한 평가 방법이 개발되었습니다.
직접적으로 점수를 내지 않는다는 점에서 조금 결이 다르지만, 최근에는 LLM의 출력 결과에 대한 오류를 지적하고, 피드백을 할 수 있는 Shepherd도 등장했습니다. LLaMA-7B 모델을 기반으로 학습된 모델이며, LLM이 생성하는 불완전하거나 오류가 있는 출력을 평가하면서 더 나은 출력을 만들어내도록 하는 것을 목표로 합니다.
References
- Hang Li, Deep learning for natural language processing: advantages and challenges, National Science Review, Volume 5, Issue 1, January 2018, Pages 24–26, https://doi.org/10.1093/nsr/nwx110
- 비립, 이진, 강예지, 박서윤, 이재원, 김유진, 강조은 and 김한샘. (2022). 한국어 벤치마크 태스크 구성 연구: 국내・외 NLP 벤치마크의 태스크 선정 사례 분석을 중심으로. 언어와 정보, 26(2), 47-86.
- https://klue-benchmark.com/
- https://jiho-ml.com/weekly-nlp-43/
Share article