NVIDIA-NeMo/Automodel

🚀 Pytorch Distributed native training library for LLMs/VLMs with OOTB Hugging Face support

해결하는 문제

NeMo AutoModel은 LLM, Vision-Language Models (VLMs), 확산 모델(diffusion models), 검색 모델을 포함한 대규모 AI 모델의 학습 및 미세 조정 프로세스를 단순화합니다. 새로운 모델을 도입할 때 발생하는 전형적인 "의례"와 지연을 제거하고 Hugging Face 모델에 대한 "Day-0" 지원을 제공하여, 복잡한 변환 없이 즉시 학습할 수 있습니다.

작동 방식

PyTorch DTensor 네이티브 SPMD (Single Program, Multiple Data) 라이브러리로 구축되어 모델 코드와 병렬화 전략을 분리합니다. 이를 통해 구성 메쉬(configuration mesh)를 조정하는 것만으로 동일한 학습 스크립트를 다양한 규모(1개의 GPU부터 수천 개까지)에서 실행할 수 있습니다. YAML 기반 레시피와 오버라이드를 위한 CLI를 사용하며, 커스텀 커널과 PyTorch 네이티브 병렬 처리(텐서, 시퀀스, 데이터 병렬 처리)를 활용하여 성능과 메모리 효율성을 최적화합니다.

대상 사용자

소규모 프로토타입에서 Kubernetes 또는 Slurm를 사용한 대규모 멀티 GPU, 멀티 노드 배포로 실험 규모를 확장해야 하는 AI 연구자 및 프로덕션 엔지니어를 위해 설계되었습니다.

주요 특징

  • Day-0 Hugging Face 통합: 포맷 변환 없이 HF 모델 학습을 즉시 시작할 수 있습니다.
  • 확장 가능한 병렬 처리: 모델 코드를 다시 작성할 필요 없이 설정을 통해 텐서, 시퀀스, 데이터 병렬 처리를 혼합하여 사용할 수 있습니다.
  • YAML 기반 워크플로우: 사전 정의된 레시피로 최소한의 설정으로 시작하고, CLI 오버라이드로 유연성을 제공합니다.
  • 폭넓은 모델 지원: MoE (Mixture of Experts) 및 옴니모달 모델을 포함한 다양한 최신 아키텍처와 호환됩니다.
  • 고성능: 커스텀 커널과 PyTorch DTensor를 활용하여 대규모 학습을 최적화합니다.