microsoft/Tutel

Tutel MoE: Optimized Mixture-of-Experts Library, Support GLM/Kimi/Gpt/DeepSeek/Qwen using FP8/NVFP4/MXFP4

Tutel이란 무엇인가요?

Tutel은 대규모 언어 모델을 위한 고성능 Mixture-of-Experts (MoE) 레이어를 구현하는 Microsoft의 오픈 소스 라이브러리입니다. 다음과 같은 기능을 제공하여 거대한 MoE 모델(수천억에서 조 단위 파라미터)의 학습 및 추론 속도를 높이는 데 중점을 둡니다.

  • 동적 병렬 처리 – 추가 비용 없이 데이터 병렬, 전문가 병렬, 모델 병렬 모드 간에 전환할 수 있는 기능.
  • 특수 저정밀도 커널 – NVIDIA FP4/FP8, AMD MXFP4 및 블록 단위 FP8 형식을 지원하여 매우 큰 모델을 단일 GPU나 소규모 GPU 클러스터에서 실행할 수 있게 합니다.
  • 빠른 게이팅 연산 – DeepSeek-V3, Qwen-3, Kimi, GLM-5.x, OpenAI-GPT-OSS와 같은 MoE 모델의 라우팅 단계에 사용되는 커스텀 CUDA 커널.
  • 멀티 노드, 멀티 GPU 런처 – torch.distributed 및 MPI의 래퍼로, all-to-all 통신을 효율적으로 처리합니다.

README에는 구체적인 성능 수치(예: 8 × MI300 GPU에서 671 B DeepSeek 모델이 초당 100 토큰 이상 처리)가 나와 있으며, Azure GPU 인스턴스에서 즉시 실행 가능한 Docker 이미지를 제공합니다.


누가 사용해야 하나요?

  • 연구소나 기업: MoE 기반 LLM을 학습하거나 서비스하며, NVIDIA A100/H100, AMD MI300 등과 같은 GPU에서 최대 처리량을 뽑아내야 하는 팀.
  • 추론 서비스를 구축하는 엔지니어 (챗봇, 코드 어시스턴트, 멀티모달 에이전트): GLM-5, Kimi-K3, DeepSeek-V3, Qwen-3, GPT-OSS와 같은 모델을 낮은 지연 시간과 높은 토큰 처리량으로 서비스하려는 개발자.
  • 커스텀 MoE 아키텍처 개발자: 빠른 게이팅 커널과 유연한 병렬 전환의 레퍼런스 구현이 필요한 개발자.

시작하기 (퀵스타트 가이드)

  1. PyTorch 설치 (NVIDIA의 경우 CUDA ≥ 11.7, AMD의 경우 ROCm ≥ 6.2.2) – README에 정확한 pip 명령어가 제공됩니다.
  2. Tutel 설치 (리포지토리에서 직접 설치):
    pip install -U git+https://github.com/microsoft/tutel@main
    
    또는 복제 후 setup.py를 실행합니다.
  3. 단일 GPU에서 상태 확인 예제 실행:
    python -m tutel.examples.helloworld --batch_size=16
    
    이 명령은 최적화된 MoE 레이어를 실행하고 타이밍 정보를 출력합니다.
  4. 확장:
    • 단일 머신에서 8개 GPU 사용 시:
      torchrun --nproc_per_node=8 -m tutel.examples.helloworld --batch_size=16
      
    • 멀티 노드 클러스터의 경우, 제공된 MPI 런처를 사용합니다:
      mpiexec -bind-to none -host <hosts> -x LOCAL_SIZE=8 \
        python -m tutel.launcher.run -m tutel.examples.helloworld_ddp_tutel --batch_size=16
      
  5. 실제 모델 서비스 – huggingface_hub로 모델 체크포인트를 가져오고(예: moonshotai/Kimi-K3), README에 제공된 Docker 컨테이너를 시작합니다:
    docker run -e WORKER=1 -e LOCAL_SIZE=8 -p 8000:8000 \
      tutelgroup/deepseek-671b:mi300x8-chat-20260929 \
      --serve=core --try_path moonshotai/Kimi-K3 --max_seq_len 200000
    
    컨테이너는 간단한 HTTP /chat 엔드포인트를 노출하므로 curl로 쿼리하거나 자체 UI에 통합할 수 있습니다.

대안을 고려해야 할 경우

상황 Tutel이 적합하지 않을 수 있는 이유
CPU 전용 추론이 필요함 Tutel의 성능 향상은 GPU 커널에 의존하며, CPU 지원은 최소 수준입니다.
모델이 MoE가 아님 (밀집형 Transformer) Tutel의 최적화는 MoE의 라우팅 및 전문가 병렬 부분에 집중되어 있어 밀집형 모델은 혜택을 받지 못합니다.
구형 GPU 사용 (예: A100 미만, ROCm 지원 없음) 저정밀도 커널(FP4/FP8)은 최신 하드웨어가 필요하며, 표준 FP16/FP32로 돌아가 속도 향상이 거의 없습니다.
단일 라이브러리, 엔드투엔드 학습 프레임워크 선호 (예: DeepSpeed, Megatron-LM) Tutel은 이들과 결합할 수 있지만 기본적으로 MoE 커널/런처 레이어이므로 추가적인 접착 코드가 필요할 수 있습니다.

위의 상황에 해당한다면 DeepSpeed MoE, Megatron-LM, 또는 FasterTransformer와 같은 대안을 살펴보세요.


요약

Tutel은 Microsoft가 유지 관리하는 GPU 중심 라이브러리로, 동적 병렬 처리, 저정밀도 커널, 즉시 사용 가능한 Docker 이미지를 제공하여 대규모 MoE 언어 모델을 더 빠르게 실행합니다. 최신 NVIDIA 또는 AMD GPU에서 조 단위 파라미터의 MoE 모델을 서비스하거나 학습하는 팀에 가장 적합합니다.

관련

  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트