모델별 답변을 직접 비교하고 확인할 수 있는 LLM 벤치마크 도구를 만들었습니다
I built an LLM benchmark harness that lets you browse and compare how models answered each question
핵심 요약
LLM 벤치마크 결과를 웹에서 모델별로 상세히 비교하고 검토할 수 있는 오픈소스 도구 'lm-eval-ledger'를 개발했습니다.
- 시각화 도구 — 벤치마크 결과를 웹 앱으로 시각화하여 모델별 답변과 성능을 상세 비교함
- 데이터 관리 — 모든 벤치마크 데이터를 SQLite DB에 저장하여 분석 편의성을 높임
- 사용성 개선 — YAML 설정 파일 기반으로 여러 모델과 태스크를 간편하게 실행 가능
- 다양한 백엔드 — vLLM, SGLang, Hugging Face, llama.cpp 등 다양한 추론 엔진 지원
다들 안녕. 요즘 LLM 벤치마크 도구들 보면 그냥 헤드라인 숫자만 띡 던져주고, 정작 모델이 각 질문에 어떻게 답했는지 확인하려면 JSONL이나 Parquet 파일 뒤져가며 직접 코드를 짜야 하는 게 너무 짜증 나더라고.
그래서 lm-eval-ledger를 만들었어. 벤치마크 돌리고 결과 싹 다 기록한 다음에, 웹 앱으로 모델별 답변을 하나하나 뜯어보고 비교할 수 있게 만든 도구야.
데모로 5090 한 장 꽂고 모델 세 개 돌려봤거든. Qwen3.5-9B, NVIDIA-Nemotron-3.5-Lightning-30B-A3B (UD-Q4_K_XL GGUF), 그리고 Gemma-4-12B-it (QAT w4a16). 보니까 Qwen이 다른 둘보다 훨씬 고민을 길게 하더라.
-
GPQA Diamond: Qwen 0.717 vs Nemotron 0.657 vs Gemma 0.601 — 근데 시간은 2시간 26분 vs 1시간 34분 vs 1시간 19분
-
LiveCodeBench: Qwen은 22시간 57분 걸렸는데(나머지는 9시간 51분 / 6시간 13분), 정확도는 0.713 vs 0.837 / 0.820 나왔음
Hugging Face Spaces에서 lm-eval-ledger로 돌린 전체 결과는 여기서 볼 수 있어: https://huggingface.co/spaces/jayminbhan/lm-eval-ledger
lm-eval-ledger가 기록하고 보여주는 것들
-
질문별: 시스템 프롬프트, 모델 생성 답변, 추출된 정답, 실제 정답, 중단 사유, 생성된 글자 수
-
벤치마크별: 정확도, tok/s, 완료까지 걸린 시간, 샘플 개수, 무응답 개수
-
기타: 같은 태스크/질문에 대한 모델 간 1:1 비교, 벤치마크 실행 전체에서 항상 틀리는 문제 / 항상 맞히는 문제
작동 방식: 모든 데이터는 SQLite DB 하나에 때려 박고, Flask 앱으로 띄워서 보여주는 구조야.
이제 모델 여러 개랑 태스크 여러 개 돌리려고 쉘 스크립트 짤 필요도 없어. lm-eval-ledger는 YAML 기반이라 복사해서 모델 N개, 태스크 M개 적어놓고 명령어 한 번만 치면 끝임.

