VLMEvalKit
무엇인가
VLMEvalKit은 대형 비전-언어 모델(LVLM)의 평가 파이프라인을 한 저장소에 모은 Python 패키지다. 패키지 이름은 vlmeval이며, 모델 추론과 답 생성, 채점, 결과 집계를 하나의 실행 흐름으로 묶는다. 벤치마크별 저장소와 모델별 평가 스크립트를 각각 관리하던 구조를 대체하는 자리에 있다.
어떻게 동작하나
모든 LVLM에 대해 생성 기반 평가(generation-based evaluation)를 채택한다. 모델이 자유 형식으로 답을 생성하면, 정확 일치(exact matching)와 LLM 기반 답 추출 두 경로로 채점한다. 모델 정의는 config.py에 등록하고, 추론 백엔드로 transformers, LMDeploy, VLLM을 쓴다. 예측 결과는 기본적으로 .xlsx 파일에 저장되며, PRED_FORMAT=tsv 환경변수로 TSV 저장으로 전환한다. 사고 모드 모델은 SPLIT_THINK=True를 켜면 ... 태그 안의 내용을 출력의 thinking 키로 분리한다.
무엇과 다른가
벤치마크마다 별도 저장소와 데이터 준비 스크립트를 요구하는 개별 평가 코드베이스와 달리, 모델과 벤치마크를 같은 인터페이스에 등록해 한 명령으로 실행한다. 채점도 규칙 기반 정확 일치에만 머물지 않고, can_infer_option과 can_infer_text가 판정을 LLM 선택지 추출기로 넘기는 경로를 둔다.
어떻게 쓰나
시작은 QuickStart 문서를 따른다. 새 모델은 config.py에 항목을 추가하고, 다중 노드 분산 추론은 모델 설정에 LMDeploy 또는 VLLM 플래그를 넣어 활성화한다. 비디오 벤치마크는 VLMEVALKIT_USE_MODELSCOPE 환경변수를 설정해 modelscope에서 내려받는다. 산출된 수치는 HuggingFace의 OpenVLM 리더보드와 공개 평가 기록에 대조할 수 있다.
전제와 한계
transformers 버전에 따라 일부 VLM이 동작하지 않는다. Qwen 계열, Monkey 계열, InternLM-XComposer 계열, mPLUG-Owl2, OpenFlamingo v2는 transformers==4.33.0을 권장한다. .xlsx 셀은 32,767자로 제한되어 16k/32k 토큰을 넘는 긴 응답은 잘릴 수 있으므로 TSV 저장을 써야 한다. 분산 추론은 LMDeploy(InternVL, QwenVL, LLaMa4 계열)와 VLLM(QwenVL, LLaMa4 계열)에서만 동작한다.
관련 논문 4
유사 도구
- evalscopeLLM·VLM·임베딩·AIGC 모델의 벤치마크 평가와 추론 성능 스트레스 테스트를 명령 하나로 실행하고 웹 대시보드로 시각화하는 Python 프레임워크다.
- ragasLLM 애플리케이션 출력을 LLM 기반·전통 메트릭으로 채점하고, 프로덕션 데이터에서 테스트셋을 자동 생성하는 Python 평가 라이브러리다.
- opikLLM 호출과 에이전트 실행을 추적·평가·모니터링하는 오픈소스 관측성 플랫폼이다. 서버와 웹 앱까지 Apache-2.0으로 자체 호스팅한다.
- RagaAI-CatalystLLM과 에이전트 실행을 트레이싱하고 평가·가드레일·레드팀까지 한 SDK에서 처리하는 Python 관측 프레임워크다.
- MobileAgent스크린샷을 읽고 데스크톱·모바일·브라우저 GUI를 직접 조작하는 GUI 에이전트 제품군이다. GUI-Owl 비전언어모델과 멀티에이전트 실행 프레임워크로 구성된다.