본문 바로가기
C.W.K.
Stream
Lesson 04 of 07 · published

lm-evaluation-harness (EleutherAI)

~18 min · frameworks, lm-eval-harness, benchmarks

Level 0추측자
0 XP0/55 lessons0/10 achievements
0/150 XP to next level150 XP to go0% complete

학술 벤치마크 평가의 표준

lm-evaluation-harness(EleutherAI, 오픈 소스)는 언어 모델을 표준 자연어 처리 벤치마크로 평가하는 사실상의 표준 프레임워크야. "모델 X가 Y에서 몇 점을 받았다"라는 내용을 봤다면 그 수치는 lm-evaluation-harness나 이를 변형한 도구로 측정했을 가능성이 매우 커.

다루는 영역

  • 200개 이상의 벤치마크 과제를 기본으로 제공해. MMLU, HellaSwag, ARC, GSM8K, HumanEval, TruthfulQA, BIG-Bench 등이 포함돼.
  • 실행 환경에 구애받지 않아 — Hugging Face 모델, vLLM, OpenAI·Anthropic API, 로컬 llama.cpp, MLX에서 실행할 수 있어.
  • 재현성을 보장해 — 정확한 프롬프트, 지표 정의, 후처리 방식을 사용하므로 lm-evaluation-harness로 얻은 수치를 팀 간에 비교할 수 있어.

다루지 않는 영역

제품 평가용 프레임워크는 아니야. 특정 RAG 파이프라인이 실제 사용자 질문에 제대로 답하는지는 측정해 주지 않아. 대신 기반 모델이 특정한 일반 역량을 갖추었는지 알려줘. 기반 모델을 비교하거나 미세 조정으로 일반 역량이 손상되지 않았는지 확인할 때 사용해. 기능 출시 여부를 판단하는 용도로는 쓰지 마.

원칙: lm-evaluation-harness는 모델을 비교하는 도구야. promptfoo, DeepEval, Braintrust는 시스템을 비교하는 도구고. 둘 다 각자의 쓰임이 있으며 서로를 대체하지 않아.

Code

Hugging Face 모델에서 MMLU 실행하기·bash
# pip install lm-eval[hf]
lm_eval --model hf \
  --model_args pretrained=meta-llama/Llama-3.2-3B-Instruct \
  --tasks mmlu \
  --device cuda \
  --batch_size 8 \
  --output_path results/llama-3.2-3b-mmlu.json
여러 벤치마크를 한 번에 실행하기·bash
lm_eval --model hf \
  --model_args pretrained=Qwen/Qwen2.5-7B-Instruct \
  --tasks mmlu,gsm8k,hellaswag,truthfulqa_mc2 \
  --num_fewshot 5 \
  --batch_size auto \
  --output_path results/qwen2.5-7b-bench.json
YAML로 사용자 정의 과제 만들기·yaml
# tasks/my_task.yaml
task: my_qa_task
dataset_path: json
dataset_name: null
dataset_kwargs:
  data_files: ./data/my_qa.jsonl
output_type: generate_until
doc_to_text: 'Question: {{question}}\nAnswer:'
doc_to_target: '{{answer}}'
metric_list:
  - metric: exact_match
    aggregation: mean
    higher_is_better: true

External links

Exercise

자체 호스팅 모델이나 미세 조정 모델을 사용한다면 lm-evaluation-harness로 MMLU와 도메인에 가까운 과제 하나를 실행해. 기반 모델에 공개된 점수와 비교하면 미세 조정으로 실제 역량이 어떻게 변했는지 확인할 수 있어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.