SmolVLM 출시 노트 / 새로운 기능
Hugging Face는 효율성, 속도 및 로컬 배포를 위해 설계된 2B 파라미터 Vision Language Model (VLM)인 SmolVLM을 출시했습니다. 이 모델은 완전한 오픈 소스이며, 모든 체크포인트, 데이터셋, 학습 레시피 및 도구는 Apache 2.0 라이선스 하에 공개됩니다.
모델 변체 및 생태계
SmolVLM은 다양한 사용 사례를 지원하기 위해 세 가지 버전으로 제공됩니다:
- SmolVLM-Base: 다운스트림 미세 조정을 위해 설계되었습니다.
- SmolVLM-Synthetic: 합성 데이터로 미세 조정된 변체입니다.
- SmolVLM-Instruct: 대화형 엔드 유저 애플리케이션에 즉시 사용할 수 있는 인스트럭션 튜닝 버전입니다.
생태계에는 transformers 라이브러리와의 통합, 지도 미세 조정(supervised fine-tuning) 스크립트 및 공개 데모가 포함됩니다. 모델은 오픈 소스 데이터셋인 The Cauldron 및 Docmatix를 사용하여 학습되었습니다.
기술 아키텍처
SmolVLM의 아키텍처는 Idefics3를 기반으로 하지만 메모리 및 연산 요구 사항을 줄이기 위해 몇 가지 최적화를 도입했습니다:
- Language Backbone: Llama 3.1 8B를 SmolLM2 1.7B로 교체했습니다.
- Visual Compression: pixel shuffle 전략을 사용하여 패치된 시각적 정보를 9배 압축합니다 (Idefics3의 4배와 비교).
- Image Patching: 364x364 대신 384x384 패치(pixel shuffle 전략을 위해 3으로 나누어짐)를 사용합니다.
- Vision Backbone: 384x384 패치와 14x14 내부 패치를 가진 형태 최적화된 SigLIP을 활용합니다.
성능 및 효율성
벤치마크
SmolVLM은 다른 2B급 모델보다 훨씬 낮은 메모리 점유율을 유지하면서 여러 멀티모달 벤치마크에서 경쟁력 있는 성능을 보여줍니다:
| 모델 | MMMU (val) | MathVista (testmini) | MMStar (val) | DocVQA (test) | TextVQA (val) | 최소 GPU RAM (GB) |
|---|---|---|---|---|---|---|
| SmolVLM | 38.8 | 44.6 | 42.1 | 81.6 | 72.7 | 5.02 |
| Qwen2-VL 2B | 41.1 | 47.8 | 47.5 | 90.1 | 79.7 | 13.70 |
| InternVL2 2B | 34.3 | 46.3 | 49.8 | 86.9 | 73.4 | 10.52 |
| PaliGemma 3B | 34.9 | 28.7 | 48.3 | 32.2 | 56.0 | 6.72 |
| moondream2 | 32.4 | 24.3 | 40.3 | 70.5 | 65.2 | 3.87 |
메모리 및 처리량
SmolVLM은 이미지 인코딩에 매우 효율적이며, 각 384x384 이미지 패치를 단 81개의 토큰으로 변환합니다. 단일 이미지와 프롬프트에 대해 SmolVLM은 약 1.2k 토큰을 사용하는 반면, Qwen2-VL은 16k 토큰을 사용합니다. 이러한 효율성은 다음과 같은 결과로 이어집니다:
- RAM 감소:
transformers의 기존 VLM 제품군 중 가장 낮은 메모리 사용량을 기록합니다. - 높은 처리량: Prefill 처리량은 3.3
4.5배 빠르며, 생성 처리량은 Qwen2-VL보다 7.516배 빠릅니다.
비디오 분석
SmolVLM은 최대 50개의 균등하게 샘플링된 프레임을 추출하여 기본적인 비디오 분석에 사용할 수 있습니다. CinePile 벤치마크 테스트에서 27.14%의 점수를 기록하여 InternVL2 (2B)와 Video LlaVa (7B) 사이의 성능을 보여주었습니다.
학습 및 미세 조정
컨텍스트 확장
여러 이미지와 긴 시퀀스를 지원하기 위해 SmolLM2의 사전 학습 컨텍스트 윈도우를 16k 토큰으로 확장했습니다. 이는 RoPE base 값을 10k에서 273k로 늘리고, 긴 컨텍스트(Dolma의 도서 및 The Stack의 코드)와 짧은 컨텍스트(FineWeb-Edu, DCLM 및 수학 데이터셋) 데이터의 혼합으로 미세 조정함으로써 달성되었습니다.
체크포인트 선택
최적의 체크포인트는 MMMU, MMStar, DocVQA, TextVQA, MathVista 및 AI2D에 대한 가중치 메트릭을 사용하여 선택되었습니다. 팀은 일반적으로 학습이 진행될수록 일반적인 성능은 향상되지만, DocVQA에 대한 성능은 시간이 지남에 따라 감소하는 경향이 있다고 언급했습니다.
커스터마이징
SmolVLM은 transformers 및 TRL 라이브러리를 사용하여 미세 조정할 수 있습니다. 제공된 노트북은 LoRA 또는 QLoRA를 사용하여 VQAv2 데이터셋에서 미세 조정하는 방법을 보여줍니다. 8-bit 로딩과 gradient checkpointing을 사용하면 소비자용 GPU(예: L4)에서 약 16 GB의 VRAM을 사용하여 모델을 미세 조정할 수 있습니다.