대규모 언어 모델(LLM)의 성능을 객관적으로 평가하기 위해서는 표준화된 벤치마크를 활용하는 것이 중요합니다. 이 글에서는 벤치마크 평가 방식의 정의와 함께, 한국어 LLM 평가를 위한 주요 벤치마크인 KorNAT, Ko-ARC, Ko-HellaSwag, Ko-MMLU, Ko-TruthfulQA를 소개하고, 마지막으로 Ko-ARC 데이터셋을 활용한 간단한 파이썬 코드 예시를 제공합니다.
1. 벤치마크 평가 방식의 정의
벤치마크는 특정 시스템이나 모델의 성능을 평가하고 비교하기 위해 사용되는 표준화된 테스트 세트입니다. LLM의 경우, 이러한 벤치마크를 통해 모델의 언어 이해, 추론 능력, 상식 적용, 진실성 등 다양한 측면을 측정할 수 있습니다. 이를 통해 연구자와 개발자는 모델의 강점과 약점을 파악하고, 개선 방향을 모색할 수 있습니다.
2. 주요 한국어 LLM 벤치마크 소개
한국어 LLM의 성능을 평가하기 위해 개발된 주요 벤치마크는 다음과 같습니다:
KorNAT (Korean Natural Alignment Test)
- 개발 주체: 셀렉트스타(SelectStar)
- 발표 시기: 2024년 5월 30일
- 평가 목적: 한국 사회적 가치 및 일반 지식에 대한 모델의 정렬(alignment) 평가
- 주요 특징:
- 6,174명의 한국인을 대상으로 한 대규모 설문조사와 한국 교과서 및 GED 참고 자료를 기반으로 구축
- 사회적 가치와 일반 지식 두 측면에서 LLM의 정렬을 측정
- 참고 자료: 링크
Ko-ARC (Korean AI2 Reasoning Challenge)
- 개발 주체: 업스테이지(Upstage)와 한국지능정보사회진흥원(NIA)
- 발표 시기: 2023년 9월
- 평가 목적: 초등학교 수준의 과학 문제를 통해 모델의 추론 능력 평가
- 주요 특징:
- AI2 Reasoning Challenge(ARC) 영어 데이터셋을 한국어로 번역 및 변형하여 구성
- 모델의 일반 지식과 심층 추론 능력을 측정
Ko-HellaSwag
- 개발 주체: 업스테이지와 NIA
- 발표 시기: 2023년 9월
- 평가 목적: 일반 상식에 대한 자연어 추론 능력 평가
- 주요 특징:
- HellaSwag 영어 데이터셋을 한국어로 번역하여 구성
- 일상적인 상황에 대한 상식 추론 능력을 측정
Ko-MMLU (Korean Massive Multitask Language Understanding)
- 개발 주체: 업스테이지와 NIA
- 발표 시기: 2023년 9월
- 평가 목적: 다양한 분야에 대한 종합적인 언어 이해 능력 평가
- 주요 특징:
- MMLU 영어 데이터셋을 한국어로 번역하여 구성
- 57개의 다양한 분야에 대한 사지선다형 문제를 포함하여 모델의 광범위한 지식과 적응력을 평가
Ko-TruthfulQA
- 개발 주체: 업스테이지와 NIA
- 발표 시기: 2023년 9월
- 평가 목적: 모델의 허위 정보 생성 방지 능력 평가
- 주요 특징:
- TruthfulQA 영어 데이터셋을 한국어로 번역하여 구성
- 흔히 오해하기 쉬운 상식에 대한 질문으로 모델이 얼마나 정확하고 진실된 답변을 제공하는지 측정
3. Ko-ARC 데이터셋을 활용한 모델 평가 예시
Ko-ARC(Korean AI2 Reasoning Challenge) 데이터셋은 초등학교 수준의 과학 문제를 포함하여 모델의 추론 능력을 평가하는 데 사용됩니다. 이 섹션에서는 Ko-ARC 데이터셋의 구조를 살펴보고, 이를 활용하여 사전 학습된 한국어 BERT 모델로 성능을 평가하는 파이썬 코드를 제공합니다.
Ko-ARC 데이터셋 구조
Ko-ARC 데이터셋은 각 문제에 대해 다음과 같은 필드를 포함합니다:
- id: 문제의 고유 식별자.
- question: 질문의 텍스트.
- choices: 선택지 목록으로, 각 선택지는 다음을 포함합니다:
- text: 선택지의 텍스트.
- label: 선택지에 대한 레이블(A, B, C 등).
- answerKey: 정답 선택지의 레이블.
데이터셋의 샘플 예시는 다음과 같습니다:
{
"id": "example-1",
"question": "어떤 기술이 가장 최근에 개발되었나요?",
"choices": [
{"text": "휴대전화", "label": "A"},
{"text": "텔레비전", "label": "B"},
{"text": "냉장고", "label": "C"},
{"text": "비행기", "label": "D"}
],
"answerKey": "A"
}
Ko-ARC 데이터셋 로드 및 모델 평가 코드
아래 코드는 datasets 라이브러리를 사용하여 Ko-ARC 데이터셋을 로드하고, 사전 학습된 한국어 BERT 모델을 활용하여 각 질문에 대한 예측을 수행한 후, 모델의 정확도를 계산합니다.
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForMultipleChoice
import torch
from torch.nn.functional import softmax
# Ko-ARC 데이터셋 로드
dataset = load_dataset("davidkim205/ko_arc_challenge", split='train[:100]') # 예시로 100개 샘플 사용
# 사전 학습된 한국어 BERT 모델과 토크나이저 로드
model_name = "monologg/kobert"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForMultipleChoice.from_pretrained(model_name)
# 모델 평가 모드로 설정
model.eval()
# 정확도 계산을 위한 변수 초기화
correct = 0
total = 0
# 데이터셋 순회
for example in dataset:
question = example['question']
choices = example['choices']
answer = example['answerKey']
# 선택지 텍스트와 레이블 추출
choice_texts = [choice['text'] for choice in choices]
choice_labels = [choice['label'] for choice in choices]
# 입력 텍스트 생성
inputs = [f"질문: {question} 선택지: {choice}" for choice in choice_texts]
# 토크나이징 및 텐서 변환
encoding = tokenizer(inputs, return_tensors='pt', padding=True, truncation=True)
input_ids = encoding['input_ids'].unsqueeze(0) # 배치 차원 추가
attention_mask = encoding['attention_mask'].unsqueeze(0) # 배치 차원 추가
# 모델 예측
with torch.no_grad():
outputs = model(input_ids=input_ids, attention_mask=attention_mask)
logits = outputs.logits
probs = softmax(logits, dim=1)
predicted_index = torch.argmax(probs, dim=1).item()
predicted_label = choice_labels[predicted_index]
# 정답 확인
if predicted_label == answer:
correct += 1
total += 1
# 예시 출력 (처음 5개만)
if total <= 5:
print(f"질문: {question}")
for label, text in zip(choice_labels, choice_texts):
print(f"{label}. {text}")
print(f"모델의 예측: {predicted_label}, 실제 정답: {answer}\n")
# 최종 정확도 출력
accuracy = correct / total
print(f"모델의 정확도: {accuracy:.2%}")
출력 예시
위 코드를 실행하면 다음과 같은 출력이 나타날 수 있습니다:
질문: 어떤 기술이 가장 최근에 개발되었나요?
A. 휴대전화
B. 텔레비전
C. 냉장고
D. 비행기
모델의 예측: A, 실제 정답: A
질문: 물은 몇 도에서 얼음으로 변하나요?
A. 0도
B. 100도
C. 50도
D. -10도
모델의 예측: A, 실제 정답: A
...
모델의 정확도: 85.00%
이러한 과정을 통해 Ko-ARC 데이터셋의 구조를 이해하고, 이를 활용하여 LLM의 성능을 평가할 수 있습니다. 데이터셋의 자세한 내용은 Hugging Face Ko-ARC 페이지를 참고하시기 바랍니다.
'AI' 카테고리의 다른 글
| LLM 평가 방법론 - G Eval (0) | 2025.12.10 |
|---|---|
| LLM 평가 방법론 - LLM as a Judge (0) | 2025.12.10 |
| 학습시킨 LLM 얼마나 똑똑한지 알고있니? (0) | 2025.12.10 |
| vLLM의 핵심 이해: Semantic-Aware Scheduling (0) | 2025.03.25 |
| vLLM의 핵심 이해: PagedAttention (0) | 2025.03.25 |