mlfoundations/open_clip
An open source implementation of CLIP.
What it solves
OpenCLIP은 OpenAI의 CLIP(Contrastive Language-Image Pre‑training)을 오픈소스로 구현한 프로젝트입니다. 이미지와 텍스트를 공유 임베딩 공간에 연결하는 대비 모델을 확장 가능하게 학습·평가·활용할 수 있는 프레임워크를 제공하여 제로샷 이미지 분류 및 효율적인 이미지‑텍스트 검색과 같은 작업을 수행할 수 있게 합니다.
How it works
이 프로젝트는 이미지 인코더와 텍스트 인코더를 동시에 학습시켜 짝이 된 이미지와 캡션 간의 유사성을 최대화하는 대비 학습을 구현합니다. ViT, ConvNext 등 다양한 아키텍처와 학습 전략을 지원합니다. 최근 업데이트에서는 가변 해상도 이미지와 오디오를 처리하는 "NaFlex"와 고급 어텐션 메커니즘(RoPE, SwiGLU)을 갖춘 "Modern" 텍스트 타워가 추가되었습니다. PyTorch의 FSDP2와 torch.compile을 활용해 대규모 GPU 클러스터에서 고성능 분산 학습을 구현합니다.
Who it’s for
- AI Researchers: 대비 학습의 스케일링 법칙을 연구하거나 새로운 멀티모달 아키텍처를 개발하는 연구자.
- ML Engineers: 다운스트림 애플리케이션을 위해 고성능 사전 학습 멀티모달 임베딩이 필요한 개발자.
- Data Scientists: 자체 이미지 데이터셋에서 대규모 파인튜닝 없이 제로샷 분류를 수행하고자 하는 사용자.
Highlights
- Extensive Pretrained Models: LAION‑2B, DataComp‑1B 등 대규모 데이터셋으로 학습된 방대한 모델 라이브러리에 접근 가능.
- High-Performance Training: FSDP2, SLURM 클러스터,
torch.compile을 기본 지원하여 극한까지 확장 가능(최대 1024개의 A100 테스트). - Multimodal Versatility: 이미지‑텍스트(CLIP), 오디오‑텍스트(CLAP), 생성 캡션(GenLIP/GenLAP)을 지원.
- Flexible Input Handling: NaFlex 파이프라인을 통해 가변 종횡비 이미지와 가변 길이 오디오를 처리.
- Efficient Data Loading: WebDataset 통합으로 수십억 샘플을 낮은 메모리 오버헤드로 처리 가능.