Stanford CRFM의 HELM을 분석합니다. 7가지 메트릭 차원, 16가지 핵심 시나리오, HELM Lite와 MedHELM 변형, 실행 방법과 결과 분석까지 종합적 평가 접근법을 탐구합니다.
대부분의 LLM 벤치마크는 정확도(Accuracy)라는 단일 차원에 집중합니다. MMLU에서 80점을 받은 모델이 75점을 받은 모델보다 "더 좋다"고 판단하는 식입니다. 하지만 프로덕션 환경에서 모델을 선택할 때 고려해야 할 요소는 정확도 하나가 아닙니다.
모델이 자신의 답변에 대해 적절한 확신도를 보이는가? 입력이 약간 변형되었을 때도 일관된 결과를 내는가? 특정 인구 집단에 대해 편향된 결과를 생성하지 않는가? 유해한 콘텐츠를 생성할 위험은 없는가?
Stanford CRFM(Center for Research on Foundation Models)이 개발한 HELM(Holistic Evaluation of Language Models)은 바로 이 문제의식에서 출발했습니다. "전체론적(Holistic)"이라는 이름이 시사하듯, HELM은 모델을 다차원적으로 평가하여 단일 숫자로는 포착할 수 없는 모델의 특성을 드러냅니다.
HELM은 모든 시나리오에 대해 다음 7가지 차원에서 모델을 평가합니다.
태스크별로 적합한 정확도 메트릭을 사용합니다. 객관식에서는 정확도(Accuracy), 생성 태스크에서는 F1 점수, ROUGE, BLEU 등을 측정합니다.
모델이 "80% 확신"이라고 표현한 답변이 실제로 80%의 확률로 정답인지를 측정합니다. 잘 보정된 모델은 자신의 불확실성을 정확히 반영하므로, 의사결정 시스템에서 특히 중요합니다.
보정 오차는 ECE(Expected Calibration Error)로 측정됩니다.
import numpy as np
def expected_calibration_error(
confidences: np.ndarray,
accuracies: np.ndarray,
n_bins: int = 10,
) -> float:
"""Expected Calibration Error를 계산합니다.
신뢰도를 n개 구간으로 나누고, 각 구간에서
평균 신뢰도와 실제 정확도의 차이를 가중 평균합니다.
"""
bin_boundaries = np.linspace(0, 1, n_bins + 1)
ece = 0.0
for i in range(n_bins):
mask = (confidences > bin_boundaries[i]) & (confidences <= bin_boundaries[i + 1])
if mask.sum() == 0:
continue
bin_confidence = confidences[mask].mean()
bin_accuracy = accuracies[mask].mean()
bin_weight = mask.sum() / len(confidences)
ece += bin_weight * abs(bin_accuracy - bin_confidence)
return ece입력에 오타, 동의어 치환, 문장 재구성 등의 변형을 가했을 때 출력이 얼마나 일관적인지를 측정합니다. 원본 입력에서 정답을 맞힌 경우, 변형된 입력에서도 정답을 유지하는 비율을 계산합니다.
서로 다른 인구통계학적 집단에 대해 모델 성능이 얼마나 균등한지를 측정합니다. 특정 집단에서만 정확도가 현저히 떨어진다면, 해당 모델은 공정성 차원에서 낮은 점수를 받습니다.
모델이 특정 집단에 대해 고정관념이나 부정적 연관을 생성하는 정도를 측정합니다. BBQ(Bias Benchmark for QA) 등의 데이터셋을 사용합니다.
모델이 유해하거나 공격적인 콘텐츠를 생성하는 경향을 측정합니다. Perspective API를 사용하여 생성된 텍스트의 독성 점수를 산출합니다.
추론에 소요되는 시간, 토큰 수, 에너지 소비 등을 측정합니다. 동일한 정확도를 더 적은 리소스로 달성하는 모델이 높은 효율성 점수를 받습니다.
7가지 차원 모두를 측정하면 모델의 레이더 차트를 그릴 수 있습니다. 이를 통해 "정확도는 높지만 독성 위험이 있는 모델" 또는 "정확도는 보통이지만 보정이 잘 된 안전한 모델" 등의 세밀한 비교가 가능해집니다.
HELM의 시나리오(Scenario)는 "모델이 어떤 상황에서 어떤 능력을 발휘하는가"를 정의합니다. 각 시나리오는 특정 도메인과 태스크 유형의 조합입니다.
| 카테고리 | 시나리오 예시 | 평가 능력 |
|---|---|---|
| 질의응답 | NaturalQuestions, TruthfulQA | 지식 검색, 사실성 |
| 정보 검색 | MS MARCO | 관련성 판단 |
| 요약 | CNN/DailyMail, XSUM | 핵심 추출, 요약 |
| 감성 분석 | IMDB, Yelp | 텍스트 분류 |
| 독해 | BoolQ, QuAC | 문맥 이해 |
| 추론 | HellaSwag, MMLU | 논리적 추론, 지식 |
| 유해성 | RealToxicityPrompts | 안전성 |
| 코드 | HumanEval, APPS | 코드 생성 |
HELM의 진정한 강점은 각 시나리오에 7가지 메트릭 차원을 모두 적용한다는 점입니다. 단순히 "MMLU 정확도 80%"로 끝나지 않고, MMLU에서의 보정 오차, 강건성, 공정성까지 함께 보고합니다.
이 교차 평가를 통해 시나리오 x 메트릭의 전체 매트릭스를 채울 수 있으며, 모델의 강점과 약점을 다각도에서 파악할 수 있습니다.
HELM 프레임워크는 특정 도메인이나 목적에 맞는 여러 변형으로 확장되었습니다.
HELM의 전체 평가 스위트는 실행에 많은 시간과 비용이 소요됩니다. HELM Lite는 가장 대표적인 시나리오와 메트릭의 부분 집합을 선별하여, 합리적인 비용으로 빠르게 평가할 수 있는 경량 버전입니다.
의료 도메인에 특화된 변형입니다. 의학 지식 질의응답, 임상 노트 요약, 진단 추론 등 의료 관련 시나리오를 포함합니다. 의료 AI 시스템의 평가에서 정확도뿐 아니라 안전성과 공정성이 특히 중요하다는 점을 반영합니다.
AI 안전성과 위험 평가에 초점을 맞춘 벤치마크입니다. 다양한 위험 카테고리(유해 콘텐츠 생성, 개인정보 유출, 범죄 조력 등)에 대한 모델의 취약성을 체계적으로 평가합니다.
도메인 특화 평가가 필요하다면, 처음부터 새로운 프레임워크를 만들기보다 HELM의 시나리오 구조를 확장하는 것이 효율적입니다. HELM은 새로운 시나리오를 플러그인 방식으로 추가할 수 있는 구조를 제공합니다.
# pip를 통한 설치
pip install crfm-helm
# 소스에서 설치
git clone https://github.com/stanford-crfm/helm.git
cd helm
pip install -e .# 실행 설정 파일 지정
helm-run \
--conf-paths run_specs.conf \
--suite my_eval_suite \
--max-eval-instances 100
# 결과 시각화 서버 실행
helm-server --suite my_eval_suite# 평가할 모델과 시나리오 조합을 정의합니다
entries: [
# 모델 정의
{description: "openai/gpt-4o", priority: 1},
{description: "anthropic/claude-3-5-sonnet", priority: 1},
{description: "meta/llama-3.1-70b", priority: 1},
# 시나리오 정의
{description: "mmlu:subject=abstract_algebra,model=openai/gpt-4o", priority: 1},
{description: "mmlu:subject=abstract_algebra,model=anthropic/claude-3-5-sonnet", priority: 1},
{description: "truthfulqa:model=openai/gpt-4o", priority: 1},
{description: "truthfulqa:model=anthropic/claude-3-5-sonnet", priority: 1},
]HELM은 웹 기반 시각화 인터페이스를 제공합니다. helm-server를 실행하면 브라우저에서 다음과 같은 분석을 수행할 수 있습니다.
HELM의 웹 인터페이스에서는 개별 프롬프트와 모델 응답을 직접 확인할 수 있습니다. 이는 단순한 점수 비교를 넘어, 모델이 왜 특정 문제에서 실패했는지 질적으로 분석하는 데 매우 유용합니다.
두 프레임워크는 상호 보완적이며, 사용 목적에 따라 선택이 달라집니다.
| 비교 항목 | lm-evaluation-harness | HELM |
|---|---|---|
| 초점 | 광범위한 벤치마크 커버리지 | 다차원 종합 평가 |
| 메트릭 | 주로 정확도 계열 | 7가지 차원 |
| 태스크 수 | 200+ | 16 핵심 시나리오 + 확장 |
| 태스크 정의 | YAML 기반, 간단한 추가 | Python 클래스 기반, 체계적 |
| 결과 시각화 | JSON 출력, 외부 도구 필요 | 내장 웹 UI |
| 실행 비용 | 태스크별 유연한 선택 | 전체 스위트 실행 시 비용 높음 |
| 주 사용 사례 | 리더보드, 모델 비교 | 모델의 종합적 프로파일링 |
실전에서는 lm-evaluation-harness로 빠르게 벤치마크 점수를 확인하고, 최종 후보 모델에 대해 HELM으로 종합적인 프로파일링을 수행하는 조합이 효과적입니다.
5장에서는 UK AISI가 개발한 Inspect AI를 분석합니다. 전통적인 벤치마크 평가를 넘어, 에이전트(Agent) 수준의 복잡한 작업을 평가하는 방법, 샌드박싱을 통한 안전한 평가 환경 구축, 그리고 GAIA, SWE-Bench, Cybench 등 에이전트 벤치마크의 실행 방법을 다룹니다.
이 글이 도움이 되셨나요?
관련 주제 더 보기
UK AISI의 Inspect AI를 분석합니다. 에이전트 벤치마크 GAIA, SWE-Bench, Cybench의 실행, 샌드박싱 환경, 태스크/솔버/스코러 아키텍처, 멀티에이전트 평가까지 다룹니다.
EleutherAI의 lm-evaluation-harness를 심층 분석합니다. 200개 이상의 태스크, 25개 이상의 모델 백엔드, HuggingFace 리더보드 백엔드로서의 역할, 설치부터 커스텀 태스크 작성까지 실전 가이드를 제공합니다.
DeepEval, promptfoo, Evidently AI, W&B Weave, LangSmith, Ragas 등 실무 평가 도구를 비교합니다. 학술 vs 실무 평가의 차이점과 프레임워크 선택 의사결정 트리를 제시합니다.