brunch

12. 파인튜닝 모델 평가

데이터중심 AI강좌: 데이터세트 구축 및 효율적인 데이터 학습 방법

by AI개발자
gaebalai-blog_(2)_(1).jpg

(1) 파인튜닝 모델의 평가

파인튜닝된 LLM은 파인튜닝 모델은 대화나 문장 생성 등 폭넓은 태스크에서 높은 범용성을 발휘할 것으로 기대됩니다. 이번에는 각 태스크에서 기대에 부합하는 동작을 하는지 적절히 평가하는 대표적인 방법들을 알아봅시다.


언뜻보면, "LLM의 파인튜닝 데이터"라는 이번 주제와 무관해 보일 수 있습니다. 그러나 모델성능평가 자체가 어떤 데이터가 파인튜닝 모델 성능향상에 기여하는지, 어떤 데이터가 부족한지를 파악하여 데이터 작성 프로세스를 개선하는데 매우 중요한 역할을 하기 때문입니다. 파인튜닝 데이터를 구축하는데 있어서 모델성능 평가과정을 생략할 수는 없습니다.


① 평가방법

파인튜닝 모델(LLM)의 평가방법에는 크게 2가지 접근 방식이 있습니다.


첫번째, 사전에 준비된 정답과 모델 출력 비교하기로 BLEU, ROUGE 또는 문자열 완전일치 등 정량적인 평가지표를 사용해 모델 출력을 사전에 마련된 정답과 비교하는 방식입니다. 이 방법은 낮은 비용으로 모델의 기본적 역량을 재현성 높게 측정할 수 있어 편리합니다. 그러나, 실제환경에서 요구되는 복잡한 과제나 유일한 정답이 존재하지 않는 태스크를 평가하기에는 적합하지 않습니다.

두번째, 사람이나 LLM을 활용해 모델 출력 평가하는 것으로 파인튜닝된 모델의 출력을 사람이 직접 평가하거나 LLM-as-a-judge라고 불리는 기법을 통해 고성능 LLM(예: GPT-4)으로 평가하는 방식입니다. 사람이 평가하거나, 성능이 우수한 LLM을 활용하기 때문에, 앞서 언급한 정량 지표를 활용하는 방식보다 비용이 많이 들고, 평가과정도 복잡해지는 경향이 있습니다.

그럼에도 불구하고 정량지표로 파악하기 어려운 창의성ㅇ, 자연스러움(유창성), 일관성 등 다양한 요소를 평가할 수 있기 때문에 중요한 평가 방법입니다. 또한, 이 방식은 평가기준에 따라 출력에 점수를 매기는 절대평가와 여러가지 파인튜닝 모델의 출력을 서로 비교해 우열을 가리는 상대평가로 나눌 수 있습니다.


이 2가지 평가방법을 조합함으로써, 파인튜닝 모델의 기본적인 능력을 정량적으로 파악하면서도 실제 사용상황을 가정한 종합평가가 가능합니다.


② 정량적 지표를 통한 평가

정량적 지표를 이용해 모델을 평가하는 경우, 먼저 문제와 그 정답이 포함된 데이터세트를 준비합니다. 평가 대상 파인 모델에 문제를 입력하고, 생성된 해답을 정답 데이터와 비교하여 모델의 성능을 측정합니다. 구체적으로 문자열 일치, BLEU등과 같은 정량지표를 활용해 생성된 해답이 정답 데이터와 어느 정도 일치하는지 확인합니다. 이를 통해 파인튜닝으로 확보한 기초적인 지식을 정량적으로 평가할 수 있습니다. 아래에서는 이런 평가에 사용되는 문제와 정답이 모두 포함된 데이터세트 2가지를 소개합니다.


▣ MMLU

MMLU(Massive Multitask Language Understanding)는 LLM의 지식을 다각도로 평가하기 위해 설계된 사지 선다형 문제 데이터세트입니다. 이 데이터세트는 수학, 역사, 컴퓨터과학, 법률 등 57개분야에서 출제된 문제들로 구성되어 있으며, 초등학교 수준부터 고도의 전문지식이 필요한 수준까지 폭넓은 난이도를 ㅇ아우릅니다. 모델에 문제설명과 4개의 선택지를 입력한 뒤, 정답을 맞힐 수 있는지 확인합니다. 이렇게 함으로써 모델이 다양한 분야의 지식을 얼마나 정확히 습득하고 그 지식을 적절히 활용할 수 있는지를 평가할 수 있습니다.


▣ HumanEval

HumanEval은 파인튜닝 모델의 코드 생성 능력을 평가하기 위한 데이터세트로 164개의 프로그래밍 문제로 구성되어 있습니다. 각 문제에는 미완성 함수와 그 함수 사양을 설명하는 '도큐먼트 문자열(docstring)'이 포함되어 있습니다. 모델에 이러한 함수와 도큐먼트 문자열을 입력해, 함수 사양을 충족하는 코드의 나머지 부분을 작성하도록 지시합니다. 그리고 생성된 코드가 사전에 준비된 단위 테스트를 통과하는지를 기준으로 평가합니다.

이 때 HumanEval에서는 pass@k라는 평가지표를 사용합니다. 이는 각 문제에 대해 모델이 생성한 k개의 후보중, 최소 한개라도 테스트를 통과하는 코드가 있었는지의 비율을 나타냅니다. 이 지표를 통해 모델이 프로그래밍 코드를 얼마나 잘 만들어 낼 수 있는지를 측정할 수 있습니다.


dataai-026-5.png

③ 사람 또는 LLM에 의한 평가

사람이나 LLM을 활용한 평가방식은 크게 절대평가와 상대평가 2가지가 있습니다.


절대평가(Absolute Evaluation): 파인튜닝 모델에 미리 준비된 문제를 입력해 답변을 생성한 뒤, 마련된 채점기준이나 정답에 따라 점수를 매기거나 평점을 부여합니다. 예를 들어, 응답이 얼마나 유용한지, 정확한지, 창의적인지등을 기준으로 채점할 수 있습니다.

상대평가(Relative Evaluation): 여러가지 파인튜닝 모델에 문제나 지시를 부여해 생성된 응답들을 서로 비교하고, 어떤 모델이 더 나은 답변을 내놓았는지 평가합니다.


어떤 평가 방법을 쓰든, 사람이나 사람에 준하는 성능을 가진 LLM이 결과를 확인함으로써, 문자열 일치같은 정량지표로는 충분히 측정하기 어려운 특성들을 평가할 수 있는 장점이 있습니다. 아래에서는 절대평가와 상대평가 각각에서 유명한 평가데이터세트와 플랫폼을 살펴보겠습니다.


▣ MT-Bench

MT-Bench는 80개 대화로 이루어진 데이터세트입니다. 이 데이터세트는 8개의 카테고리로 구성되며, 각 카테고리에 10개씩 다음과 같은 질문이 포함되어

STEM 지식


인문 및 사회과학 지식


평가대상이 되는 파인튜닝 모델은 이 질문들을 입력받고, 생성한 응답에 대해 사람이나 LLM이 1점부터 10점까지 점수를 부여합니다. MT-Bench를 제안한 논문에서는 이 데이터세트를 활용한 LLM-as-a-judge 평가방식의 효율성을 검증했는데, 그 결과 LLM-as-a-judge가 사람평가와 약 85%의 일치율을 보였다고 보고합니다. 이 수치는 사람끼리 평가할 때의 일치율과 거의 유사한 것으로 LLM-as-a-judge가 어느 정도 사람의 평가를 재현할 수 있음을 시사합니다.


▣ Chatbot Arena

Chatbot Arena는 여러 LLM성능을 비교할 수 있는 플랫폼입니다. 무작위로 선택된 두 언어모델에 대해, 사용자가 익명화된 모델들에게 자유롭게 질문을 하고, 어느 쪽 응답이 더 뛰어난지를 투표로 평가합니다. 이 과정을 통해, 모델들이 다양하고 실제적인 질문에 대해 얼마나 우수한 답변을 내놓은지 비교할 수 있으며, 투표 결과를 바탕으로 각 모델의 '레이팅(rating)'이 산출됩니다.

이처럼 사람이 직접 평가를 수행하는 방식은 시간과 많은 평가자가 필요하지만, 실제 사용사례에 가까운 환경에서 모델을 평가할 수 있다는 장점이 있으므로, 가능하다면 시도해볼 가치가 있습니다.


④ 평가시 주의사항

LLM을 평가할 때 주의해야할 몇가지 사항이 있습니다. 특히, 간과되기 쉬운 3가지를 살펴보겠습니다.


▣ 입력 및 하이퍼파라미터 설정의 영향

사전핛습 모델이나 파인튜닝 모델을 평가할 때, In-Context Learning을 활용하는 경우가 있습니다. 이 방식에서는 모델이 태스크를 해결하도록 태스크설명과 구체적 문제, 답안 샘플을 입력으로 제공합ㅂ니다. 그런데 이때 샘플 내용이나 형식이 모델출력에 크게 영향을 준다는 사실이 밝혀졌습니다. 또한, 답변을 생성할 때 설정하는 하이퍼파라밑터(예: temperature, top-p 등) 역시 출력 결과에 영향을 미칩니다.

따라서, 논문이나 기업의 보도자료에 나온 결과는 이러한 요소들의 영향이 반영되었을 가능성이 있으므로, 그대로 받아들이기보다는 자신의 환경에서 통일된 샘플과 하이퍼파라미터를 사용해 직접 평가해 보는 것이 권장됩니다.


▣ 평가 데이터의 컨타미네이션(Contamination)

사전학습이나 파인튜닝 과정에서 의도치 않게 평가용 데이터세트가 학습 데이터에 섞여 들어가는 일이 발생할 수 있습니다. 이를 컨타미네이션이라고 부르는데 이 현상이 생기면 모델이 평가 데이터의 내용을 부분적으로 기억해 버려, 실제보다 높은 성능이 측정되는 위험이 있습니다. 특히 웹에서 텍스트를 수집해 평가데이터를 만든 경우, 해당 텍스트가 이미 사전학습이나 파인튜닝 단계에서 학습된 적이 있을 수 있으므로 각별한 주의가 필요합니다.

예컨데, Meta는 Llama 3을 개발할 떄, 평가데이터를 파인튜닝팀이 볼수 없게 함으로써 컨타미네이션을 방지하는 등의 주치를 취하고 있습니다.


▣ LLM-as-a-judge의 과제

LLM-as-a-judge방식에서는 다음과 같은 평가편향(Bias)이 존재한다는 점이 알려져 있습니다. 특히 주의깊게 살펴봐야 할 3가지 편향은 아래와 같습니다.


Position bias: 여러 답변을 비교할 때, 제시되는 순서에 따라 평가결과가 달라지는 편향

Verbosity bias: 짧고 높은 품질의 답변보다 길지만 품질이 낮은 답변이 과대평가되는 편향

Self-enhancement bias: 평가에 쓰인 모델이 자기 자신이 만든 출력을 부당하게 높게 평가해 버리는 편향


이러한 편향을 줄이려면, 예를 들어, 답변순서를 무작위로 바꾸거나, 평가모델과 평가대상모델을 서로 다른 모델로 설정하는등의 대응책이 효과적입니다. 그렇지만, 이런 편향을 완전히 없애기는 어려우므로, 경우에 따라 사람에 의한 평가를 병행하는 것이 좋습니다. 특히 계산이나 추론이 필요한 문제나 정보의 정확성을 평가하는 태스크등에서는 아직 언어모델로 평가하는 것이 쉽지 않습니다. 이처럼 어려운 문제를 평가할 때는 사람이 직접 평가하는 방안을 고려하는 것이 바람직합니다.


이번에는 파인튜닝 모델을 어떻게 평가하고, 어떤 데이터세트를 사용하며, 평가과정에서 어떤 점을 유의해야 하는지 살펴봤습니다. 모델 성능을 적절히 평가하는 일은 단지 파인튜닝 데이터를 개선하는데 그치지 않고, 모델의 역량과 한계를 정확히 이해하기 위해서도 매우 중요합니다.



(2) 한국어 기반 LLM 파인튜닝

지금까지 소개해 온 파인튜닝용 데이터나 평가용 데이터세트는 주로 영어나 중국어 위주로 구축되어 왔으며, 한국어 데이터세트는 아직 충분히 갖춰져 있지 않은 실정입니다. 이번에는 '한국어 LLM(대규모언어모델)'에서 활용할 수 있는 파인튜닝 데이터와 평가 데이터의 현황 그리고 그 과제에 대해 자세히 설명하겠습니다.


① 한국어 파인튜닝 모델 구축

한국어를 다루는 언어모델을 구성하기 위해서는, 파인튜닝에 사용할 한국어 데이터를 마련하는 것이 이상적입니다. 하지만, 충분한 양의 한국어 데이터를 확보하기 어려운 경우도 있습니다. 예를 들어, 예산문제로 데이터수집을 외부에 의뢰하기 힘들거나, 상업적으로 이용가능한 한국어 데이터를 찾기 어려울 수도 있습니다. 필요한 데이터를 충분히 확보할 수 없다면 모델 학습에 한계가 생깁니다.

이처럼 데이터 부족상황을 극복하기 위한 방법으로 다른 언어로 된 데이터를 한국어로 번역하여 활용하거나, 다국어 데이터(Multiligual data)를 사용하여 한국어 성능을 높이는 방법등이 있습니다. 다음은 한국어 파인튜닝 모델을 구축하기 위한 다양한 접근법을 소개합니다.


▣ 한국어 파인튜닝 데이터 사용하기

모델의 한국어 능력을 향상시키기 위해서는 한국어로 작성된 데이터를 파인튜닝에 활용하는 것이 가장 직접적인 방법입니다. 대표적인 예로 상업적으로 사용시 유료비용을 지불해야 사용가능한 데이터세트가 있지만 다국어 데이터세트인 OpenAssistant Conversations Dataset이나 Aya Dataset에도 한국어등이 포함되어 있고 이를 활용할 수 있습니다. 이렇게 한국어로 작성된 데이터를 이용해 모델을 파인튜닝하면 한국어 특유의 맥락과 표현을 학습해 한층 더 자연스러운 한국어 응답을 생성할 수 있습니다.


https://huggingface.co/datasets/OpenAssistant/oasst1

https://huggingface.co/datasets/CohereForAI/aya_dataset

▣ 다른 언어 데이터를 번역해서 사용하기

한국어 데이터가 부족한 경우, 영어 및 중국처럼 비교적 데이터가 풍부한 언어의 Instruction Data를 한국어로 번역해서 활용하는 방법도 고려해볼 수 있습니다. 이 접근은 처음부터 한국어 데이터세트를 직접 작성하는 것보다 비용과 시간을 크게 절역할 수 있는 장점이 있습니다.

예를 들어 DeepL을 사용하여 oasst1을 번역해서 사용하는 것이 가능하고 databricks-dolly-15k를 번역한 nlpai-lab/databricks-dolly-15k-ko등이 이와 같은 방식으로 작성된 데이터세트입니다.


단, 번역을 통해 데이터세트를 구축시 다음과 같은 문제가 발생할 가능성이 있으므로 주의해야 합니다.

번역품질문제: 전문용어, 미묘한 뉘앙스 등이 제대로 옮겨지지 않을 수 있음

문화적 맥락차이: 한국어 환경에 맞지 않는 표현이나 예시가 포함될 수 있음

라이선스와 저작권 이슈: 원본 데이터나 번역된 데이터의 이용규약을 확인해야 함


이처럼 다른 언어의 데이터를 이용하는 것은 데이터부족을 빠르게 해결할 수 있는 방법이지만, 번역품질과 법적이슈등에 유의해 활용해야 합니다.


<참고할만 한국어 데이터세트>

법제처 국가법령 공동활용센터 전체 판례데이터세트(2023.6): https://huggingface.co/datasets/joonhok-exo-ai/korean_law_open_data_precedents

성균관대 데이터세트(koalpaca, dolly, openassistant, oig_chip2): https://huggingface.co/datasets/jojo0217/korean_rlhf_dataset

한국어 기초사전 데이터세트: https://huggingface.co/datasets/binjang/NIKL-korean-english-dictionary


https://huggingface.co/datasets/erax/EraX-WoW-dataset-Korean-80k-1Mar2025

한국법제연구원 법령용어(20200831): https://huggingface.co/datasets/paperw8/korean_legal_terminology




번역오류: 기계번역을 사용할 경우 지시나 응답이 부적절한 한국어로 옮겨질 수 있습니다. 예를 들어, Python코드인 import math가 '수학을 임포트합니다'라고 잘못 번역된 사례가 보고된 바 있습니다.

라이선스문제: 기계번역 서비스를 이용시, 해당 서비스의 이용약관에 따라 번역된 데이터를 학습 데이터로 사용하는데 제약이 있을 수 있습니다.

문화적 배경 차이: 미국주나 할리우드 배울처럼 한국인에게는 비교적 낯선 장소나 인물에 관한 질문이 데이터세트에 포함될 가능성이 있습니다.


이러한 문제를 피하려면, 번역이 끝난 데이터세트를 꼼꼼히 검수하고 한국의 문화나 지식수준에 맞게 수정하는 것이 중요합니다. 예컨데, 문화적 배경과 관련된 질문을 한국 사례로 바꾸거나, 한국에서 인지도가 높은 인물이나 작품으로 교체하는 등의 방식이 고려될 수 있습니다.


▣ 다국어 데이터를 활용한 파인튜닝

한국어 파인튜닝 데이터가 충분하지 않은 경우, 다국어 데이터세트를 활용해 파인튜닝을 진행하는 것도 효과적인 방법중 하나입니다. Shaham 논문등에서는 영어기반 Instruction Dataset에 다국어 Instruction Data를 추가할 때, 추가한 언어뿐만 아니라, 추가하지 않은 언어로 된 지시에도 모델이 훨씬 잘 대응하게 된다는 결과가 보고되었습니다. 이 연구는 다국어 데이터를 활용함으로써 여러 언어 간 공통점을 학습하고 그로 인해 모델의 범용성을 높일 수 있음을 시사합니다.


② 한국어 평가 데이터세트

한국어 LLM(대규모언어모델)을 평가하려면, 고품질 한국어 ㅂ벤치마크 데이터세트가 필수적입니다. 최근에는 한국어에 특화된 평가 데이터세트가 잇따라 개발되고 있으며 대표적인 예를 소개합니다.


Gaebal AI DeepSeek R1 Q8 GUFF

이것은 한국어 LLM성능을 llama 3데이터를 디스틸(증류)를 통해 확대한 LLM의 8비트 양자화된 모델입니다.

Saxo Linkbricks Horizon AI Llama 3.3 Korean 70B

Llama 3.3 70B를 DPO 파인튜닝한 버전입니다. Bllossom Llama 3.1 Korean Vision 8B



지금까지 LLM의 파인튜닝에서 사용되는 데이터 구축 기법과 평가방법, 그리고 한국어 파인튜닝 모델 현황에 대해 살펴봤습니다. 대표적인 논문들은 Llama, Tulu 등 LLM관련 논문들을 참고해 최신 지식을 적극적으로 받아들이는 것이 좋습니다.

지금까지 파인튜닝 데이터에 관해 이야기했지만, 실제로 데이터세트를 만들 경우 모델에 요구하는 능력이나 행동 양식을 먼저 정의해두는 것을 강력하게 권장합니다. 예를 들어, "한국어로 자연스러운 대화를 생성하는 능력을 강화한다"라고 하거나, "Python코드 생성 능력을 높인다"처럼 명확한 목표를 설정하면, 어떤 종류의 데이터를 수집해야 하는지, 어떤 방식으로 데이터를 모을지를 구체화할 수 있습니다. 이런 목표는 평가체계 설게와도 연결되어 데이터 유효성을 측정하는 지표를 마련하는데 도움이 됩니다.


©2024-2025 GAEBAL AI, Hand-crafted & made with Damon Jaewoo Kim.

GAEBAL AI 개발사: https://gaebalai.com

AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5


keyword
이전 11화11. 파인튜닝(미세조정), 지시데이터, 선호데이터