AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

NeMo AutoModel – Transformers API 그대로 MoE 파인튜닝을 가속하는 NVIDIA 라이브러리

NeMo AutoModel은 Hugging Face Transformers의 from_pretrained() 흐름을 유지하면서 대규모 MoE(Mixture-of-Experts) 모델 파인튜닝을 NVIDIA 스택으로 가속하는 라이브러리다. 핵심은 API를 크게 바꾸지 않고 Expert Parallelism, DeepEP 통신, TransformerEngine 커널을 붙이는 것이다.

왜 필요한가

MoE 모델은 토큰을 여러 전문가(expert)로 라우팅한다. 이 과정은 단순한 dense Transformer보다 통신, expert matmul, weight sharding, 계산·통신 overlap이 복잡하다. 일반 목적 라이브러리만으로는 대규모 MoE 파인튜닝에서 GPU 메모리와 처리량 병목이 빠르게 드러난다.

Transformers v5는 expert backend, dynamic weight loading, 분산 실행 기반을 제공한다. NeMo AutoModel은 그 위에 NVIDIA 최적화를 얹어 Nemotron, Qwen, DeepSeek류 MoE 모델을 더 효율적으로 학습시키는 역할을 한다.

핵심 구성요소

구성요소역할
Expert Parallelism전문가를 GPU에 분산해 MoE 학습을 확장
DeepEPall-to-all expert dispatch 통신을 fused 처리하고 계산과 겹침
TransformerEngineNVIDIA GPU용 attention·linear 커널 최적화
FSDP2파라미터·옵티마이저 상태 분산
dynamic weight loading모델별 체크포인트 변환 부담 감소

NVIDIA는 NeMo AutoModel이 native Transformers v5 대비 MoE 파인튜닝 처리량을 3.4~3.7배 높이고 GPU 메모리를 29~32% 줄였다고 설명한다.

사용 방식

기본 아이디어는 AutoModelForCausalLM 대신 NeMoAutoModelForCausalLM을 import하는 것이다. 이후에는 기존 Hugging Face 모델 로딩 흐름과 유사하게 동작한다.

from nemo_automodel import NeMoAutoModelForCausalLM

model = NeMoAutoModelForCausalLM.from_pretrained(
    "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16",
    dtype="bfloat16",
)

멀티 GPU에서는 distributed setup에 FSDP2와 expert parallel size를 지정해 MoE expert를 분산한다. 학습 후 save_pretrained()로 저장한 체크포인트는 vLLM, SGLang 같은 서빙 도구와 연결할 수 있다.

누가 쓰면 좋은가

  • Nemotron, Qwen, DeepSeek 계열 MoE 모델을 직접 파인튜닝하는 팀
  • Transformers 생태계를 유지하면서 NVIDIA GPU 최적화를 쓰고 싶은 연구팀
  • 30B 이상 MoE 모델의 full fine-tuning이나 대규모 PEFT를 검토하는 플랫폼 팀
  • vllm·SGLang 서빙까지 이어지는 학습-서빙 파이프라인을 구성하는 팀

관련 문서

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)