← 목록

오픈소스 VLM 3종 자체 서빙 평가 파이프라인

2026-08-31 · scene_bench · e987b40f 100편 전량 · GPU 1장/모델 · API 비용 $0
Qwen3-VL-8B(일반 오픈 대표) · Cosmos-Reason2-8B(Robotics-ER 오픈 대응) · Molmo2-8B(포인팅/멀티프레임, molmo_spaces 연결)
TL;DR 워커 pod는 외부 접속이 막혀 있어 같은 sbatch 안에서 vLLM 서버 + 기존 평가 하네스(localhost)로 구성. Gemini Robotics-ER은 클로즈드(1.5 셧다운, 1.6-preview API 전용)라 Cosmos-Reason2로 대체. 1편짜리 카나리아 게이트가 사고 6건을 전량 실행 전에 차단 — 특히 max_tokens 미지정 시 8B writer가 컨텍스트 한도까지 생성 폭주(노트 40K 토큰→읽기 400), 온도 변동으로 KEEP 형식 준수가 런마다 뒤집히는 문제(→ greedy 고정).
3 × 7 × 589
추가 측정 (모델×전략×행)
$0
API 비용 (GPU own 쿼터만)
6건
카나리아가 차단한 사고
42/42
qwen 카나리아 파스 성공

1구성

# scripts/serve_eval_vllm.sh — 컨테이너 vllm/vllm-openai:v0.28.0-cu129 고정 vllm serve $MODEL --max-model-len $LEN --limit-mm-per-prompt '{"image":24}' [모델별 플래그] & (health 폴링) → OPENAI_BASE_URL=http://127.0.0.1:8000/v1 run_eval_v1 4샤드 (cap 8·공통 전문·30s 청크·e987b40f 100편)
모델라이선스max_tokensctx형식 수용
Qwen/Qwen3-VL-8B-InstructApache 2.0409665536—
nvidia/Cosmos-Reason2-8BNVIDIA Open (gated, Keh0t0 동의)16384 (추론 장문)65536HF_HUB_OFFLINE 캐시
allenai/Molmo2-8BApache 2.0409632768 (상한 36864)system→첫 user 접기 · 연속 user 병합 · trust-remote-code

공통: greedy(temp 0) — 클라이언트에 env 옵션 4종 추가(SBENCH_MAX_TOKENS / SBENCH_NO_SYSTEM / SBENCH_MERGE_USER_TURNS / SBENCH_TEMPERATURE), API 경로는 불변. 수용은 전부 형식 호환이고 내용·예산·프롬프트는 7모델 동일.

2카나리아가 잡은 사고 6건

#증상원인수정
1읽기 400 "Input 41006 > 40960" (qwen·cosmos)max_tokens 미지정 → writer가 컨텍스트 한도까지 생성(24콜 ~48만 토큰) → rf 노트 40K 토큰SBENCH_MAX_TOKENS (수정 후 노트 2.4k자)
2Molmo2 "roles must alternate" 400템플릿이 system 롤 미지원system을 첫 user에 접기
3Molmo2 max_model_len 거부모델 상한 3686432768
4Molmo2 MM 토큰 예산 초과max_tokens_per_mm_item 31872 > 배치 예산--max-num-batched-tokens 32768
5샤드 죽어도 잡이 --time까지 hang스크립트 wait가 vLLM 서버 PID까지 대기샤드 PID만 wait
6molmo2 vis writer n_kept 0/24 ↔ 동일 입력 프로브 8/8기본 온도의 샘플링 분산으로 형식 준수가 런마다 뒤집힘오픈 3종 greedy 고정 (파서는 공통 유지)
카나리아 최종: qwen 42행 오류 0 · cosmos 오류 5(추론 절단 3 → 16384로 완화, vocab 위반 1, JSON 1) · molmo2 오류 4(전부 vocab 위반 = 모델 실수, 정상 채점). 1편 ≈ 4–8분.

3Next