KISTI 초거대AI연구센터에서 개발한 Docker 기반 VLM 평가 시스템
Vision-Language 모델들은 각기 다른 transformers 버전을 요구합니다:
- Qwen-VL, mPLUG-Owl2, Monkey-Chat, InternLM-XComposer → transformers 4.33.0
- LLaVA → transformers 4.37.2
문제점:
- ❌ 모델마다 환경 재설치 필요
- ❌ 의존성 충돌
- ❌ 재현 불가능한 환경
SpectraBench-Vision 해결책:
- ✅ 단일 명령으로 모든 모델 사용
- ✅ 자동 의존성 관리
- ✅ 완전한 재현성 (해시 검증 기반)
- ✅ 7개 모델 × 24개 벤치마크 = 168개 조합
# .env 파일 생성 및 HuggingFace 토큰 추가
cp .env.template .env
nano .env # HUGGING_FACE_HUB_TOKEN=hf_your_token_here# 직접 컨테이너 사용
docker run --rm --gpus all \
-v $(pwd)/outputs:/workspace/outputs \
-v $(pwd)/.env:/workspace/.env \
ghcr.io/gwleee/spectravision:4.33 \
python /workspace/VLMEvalKit/run.py \
--model qwen_chat \
--data MMBench_DEV_EN# LLaVA 평가 (100% 성공률 검증됨!)
docker run --rm --gpus all \
-v $(pwd)/outputs:/workspace/outputs \
-v $(pwd)/.env:/workspace/.env \
ghcr.io/gwleee/spectravision:4.37 \
python /workspace/VLMEvalKit/run.py \
--model llava_v1.5_7b \
--data MMBench_DEV_EN TextVQA_VAL- Qwen-VL-Chat (검증 완료)
- mPLUG-Owl2 (검증 완료)
- Monkey-Chat (검증 완료)
- InternLM-XComposer2 (검증 완료)
- InternLM-XComposer (검증 완료)
- LLaVA-1.5-7B (100% 성공률 검증!)
- LLaVA-1.5-13B (100% 성공률 검증!)
| 분야 | 벤치마크 |
|---|---|
| 기본 VQA | MMBench, TextVQA, GQA |
| 문서 이해 | DocVQA, ChartQA, InfoVQA, OCRBench |
| 과학/전문 | ScienceQA, AI2D, MMMU |
| 고급 평가 | HallusionBench, MMStar, POPE |
| 한국어 | MMBench_DEV_KO, SEEDBench_IMG_KO |
- 구성: Transformers 4.37.2 (Flash Attention 비활성화)
- 모델: LLaVA-1.5-7B, LLaVA-1.5-13B
- 벤치마크: 20개 × 10 샘플
- 결과: 40/40 (100% 성공률)
- 소요 시간: ~22분
주요 기능:
- ✅ CSV/XLSX 자동 생성
- ✅ 모델별 성능 메트릭
- ✅ 지속형 컨테이너 (반복 다운로드 없음)
outputs/[timestamp]/
├── logs/
│ ├── evaluation_summary.log
│ └── [model].log
├── results/
│ ├── [model]_results.csv
│ └── [model]_results.xlsx
├── [model]/[benchmark]/ # VLMEvalKit 원본 출력
└── EVALUATION_REPORT.md
# run_437_llava_only.sh 스크립트 사용
./run_437_llava_only.shdocker run --rm --gpus '"device=0,1"' \
-v $(pwd)/outputs:/workspace/outputs \
ghcr.io/gwleee/spectravision:4.37 \
python /workspace/VLMEvalKit/run.py --model llava_v1.5_7b --data MMBenchdocker run --rm --gpus all \
-e VLMEVAL_SAMPLE_LIMIT=10 \
-v $(pwd)/outputs:/workspace/outputs \
ghcr.io/gwleee/spectravision:4.37 \
python /workspace/VLMEvalKit/run.py --model llava_v1.5_7b --data MMBench모든 의존성은 pip-tools로 잠금되어 있습니다:
docker/requirements/
├── base-requirements.lock # 공통 패키지 (SHA256 해시)
├── transformers-4.33.lock # 4.33.0 전용
└── transformers-4.37.lock # 4.37.2 전용
의존성 업데이트:
cd docker/requirements
pip-compile --generate-hashes --allow-unsafe \
--output-file=transformers-4.37.lock \
transformers-4.37.in base-requirements.inGPU 메모리 부족
# 더 작은 모델 사용 또는 특정 GPU 지정
docker run --gpus '"device=0"' ...토큰 오류
# .env 파일에 토큰 추가
echo "HUGGING_FACE_HUB_TOKEN=hf_your_token_here" >> .env이미지 다운로드 실패
# 수동 다운로드
docker pull ghcr.io/gwleee/spectravision:4.33
docker pull ghcr.io/gwleee/spectravision:4.37Apache License 2.0
- VLMEvalKit 기반 구축
@software{spectrabench-vision2025,
title={SpectraBench-Vision},
author={KISTI Large-scale AI Research Center},
year={2025},
url={https://github.com/gwleee/SpectraBench-Vision/},
license={Apache-2.0},
}Developed by Gunwoo Lee, AI Platform Team (Leader: Ryong Lee) KISTI Large-scale AI Research Center (Director: Kyong-Ha Lee)