피드로 돌아가기
nanoVLM: The simplest repository to train your VLM in pure PyTorch
Hugging Face BlogHugging Face Blog
AI/ML

HuggingFace가 순수 PyTorch 기반의 nanoVLM 저장소를 공개해 Colab 무료 티어에서 Vision Language Model 학습 가능

nanoVLM: The simplest repository to train your VLM in pure PyTorch

2025년 5월 21일10beginner

Context

Vision Language Model(VLM) 학습은 복잡한 설정과 높은 리소스 요구로 인해 진입 장벽이 높았다. 기존 VLM 프레임워크들은 코드 복잡도가 높아 내부 동작을 이해하기 어려웠다.

Technical Solution

  • Vision backbone을 Google SigLIP(google/siglip-base-patch16-224)로 선택: 이미지 임베딩 생성
  • Language backbone을 SmolLM2-135M로 선택: 경량 언어 모델로 Colab 호환성 확보
  • Modality Projection 모듈 구성: 픽셀 셔플(pixel shuffle) 연산 후 선형 계층으로 이미지 임베딩을 텍스트 임베딩 공간으로 변환
  • 픽셀 셔플 연산으로 이미지 토큰 수 감소: 입력 길이 민감도가 높은 트랜스포머 언어 디코더의 계산 비용 절감
  • 단일 train.py 스크립트로 데이터셋 로딩, 모델 초기화, 최적화, 로깅까지 통합: 설정 클래스(TrainConfig, VLMConfig) 분리로 가독성 확보
  • Visual Question Answering을 학습 목표로 제한: 스코프 축소로 코드 복잡도 최소화

Key Takeaway

VLM과 같은 멀티모달 모델을 학습할 때는 백본 선택(경량성)과 모달리티 정렬(projection) 전략이 리소스 효율성을 좌우한다. 코드 가독성을 최우선 가치로 설정하면 커뮤니티 학습과 확장성이 높아진다.


VLM 학습을 시작하거나 멀티모달 아키텍처를 이해해야 하는 엔지니어는 nanoVLM의 픽셀 셔플 + 선형 계층 조합을 Modality Projection 패턴으로 참고할 수 있다. 특히 경량 모델에서는 이미지 토큰 수 감소가 학습 속도에 직접적 영향을 미치므로 입력 길이 최적화를 먼저 검토해야 한다.

원문 읽기