SeraphimSerapis/tool-eval-bench
Tool-calling quality benchmark for LLM serving stacks. 80+ deterministic scenarios testing multi-turn orchestration, safety boundaries, and structured output. Supports vLLM, SGLang, and llama.cpp.
Tool‑Eval‑Bench – LLM 도구 호출 벤치마크
개요 및 목적
Tool‑Eval‑Bench는 대규모 언어 모델(LLM)이 단일 어시스턴트 대화 워크플로우에서 외부 도구를 호출하는 능력을 측정하는 벤치마크 스위트입니다. 자체 호스팅 추론 서버(vLLM, llama.cpp, SGLang, LiteLLM, TensorFold 등) 또는 Gemini, Anthropic 같은 호스팅 API를 운영하는 개발자를 대상으로, 도구 선택, 매개변수 전달, 체이닝, 오류 복구, 안전성, 현지화 성능을 재현 가능한 방식으로 비교할 수 있습니다.
주요 기능
| 기능 | 제공 내용 | 위치 |
|---|---|---|
| 품질 벤치마크 | 52개의 도구 네임스페이스, 다단계 체인, 거부, 안전 검사, 현지화(독일어 중심) 등을 포함한 69개의 결정적 시나리오(선택적 28개의 하드 모드 적대적 케이스 포함). | run 명령 |
| 처리량 및 속도 | 프리필 및 생성 속도 테스트(llama-bench 스타일), 깊이 및 동시성 스윕, 투기적 디코딩 메트릭 제공. | bench 명령 |
| 긴 컨텍스트 검색 | 다양한 컨텍스트 길이에서 바늘찾기 테스트, 유효 컨텍스트 보고. | needle 플래그 |
| 컨텍스트 압력 | 각 시나리오 전에 프리필 컨텍스트 양을 변경하여 품질이 떨어지는 지점을 확인. | context‑pressure 플래그 |
| 정확도 스위트 | GSM8K, MMLU, IFEval을 동일한 OpenAI 호환 어댑터로 실행. | plugin 명령 |
| 결정 모델 감사 | 선택적 보조 모델이 어시스턴트 응답을 감사(확률, 일치). | --decision‑judge 플래그 |
| 저장 아티팩트 | 전체 대화 추적이 포함된 Markdown 보고서 및 SQLite DB. | runs/…/*.md 및 data/benchmarks.sqlite |
| CLI 및 API | 전체 명령줄 인터페이스, Python 비동기 API(run_benchmark). |
tool‑eval‑bench 실행 파일 및 tool_eval_bench.api |
| 백엔드 자동 감지 | 헤더, /health, /props 등을 통해 vLLM, llama.cpp, TensorFold, Strata, TabbyAPI 등을 감지. |
run/probe 중 자동 |
| 구성 지문 | 버전, 모델, 컨텍스트 창, 양자화, GPU 수, 투기 모드 등을 캡처하여 공정한 리더보드 비교 보장. | 실행 메타데이터에 저장 |
사용 방법 (빠른 시작)
# uv(또는 Docker)로 설치
uv tool install git+https://github.com/SeraphimSerapis/tool-eval-bench.git
# 로컬 서버에 대해 짧은 15개 시나리오 스위트 실행
tool-eval-bench run --short --base-url http://localhost:8000
# 전체 벤치마크(69개 시나리오) – 재현 가능한 시드
tool-eval-bench run --seed 42
# 하드 모드 및 성능 테스트 추가
tool-eval-bench run --hardmode --perf --seed 42
# 과거 실행 또는 리더보드 보기
tool-eval-bench history
tool-eval-bench leaderboard
환경 변수(TOOL_EVAL_*) 또는 .env 파일을 사용하여 URL, API 키, 모델 이름을 저장하고 반복 A/B 테스트에 사용할 수 있습니다.
점수의 의미
- 각 시나리오는 **2(통과), 1(부분), 0(실패)**로 점수가 매겨집니다. 종합 점수는 획득한 점수의 백분율입니다.
- 등급 별:
- 90‑100% → ★★★★★ 우수
- 75‑89% → ★★★★ 좋음
- 60‑74% → ★★★ 보통
- 40‑59% → ★★ 약함
- 0‑39% → ★ 부족
- 안전 위반이 있으면 원점수와 관계없이 등급이 ★★★로 제한될 수 있습니다.
--weight-by-difficulty옵션으로 어려운 시나리오에 가중치를 다시 부여하여 대체 점수를 계산할 수 있습니다.
유용한 경우
- 모델 개발자: 새 체크포인트를 출시하기 전에 도구 호출 능력에 대한 구체적이고 반복 가능한 지표가 필요할 때.
- 운영 팀: 동일한 워크로드에서 자체 호스팅 백엔드(vLLM vs. llama.cpp vs. TensorFold 등)를 비교할 때.
- 연구: 프롬프트 전략, 시스템 프롬프트 조정, 또는 투기적 디코딩이 도구 사용에 미치는 영향에 대한 연구.
- CI 파이프라인: 안전 회귀 시 빌드를 실패시킬 수 있습니다(
--fail‑on‑safety).
제한 사항 및 범위
- 모의 도구를 사용한 단일 어시스턴트 대화에 초점을 맞추며, 완전한 멀티에이전트 시스템, 위임, 장기 실행 자율 에이전트는 평가하지 않습니다.
- 현재 현지화는 독일어 중심이며, 다른 언어는 기본으로 지원되지 않습니다.
- 난이도 계층은 작성자 추정치이며, 대규모 모델 집합으로 보정되지 않았습니다.
- 모의 도구 응답에는 현실적인 노이즈가 포함되지만, 여전히 시뮬레이션일 뿐 실제 외부 API는 아닙니다.
위 정보는 모두 리포지토리의 README에서 직접 가져온 것이며 외부 가정은 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch