Expert Parallelism
전문가 병렬화가 혼합 전문가 모델을 GPU 전반에 분산하여 라우팅, 통신, 성능의 균형을 유지하면서 메모리 요구 사항을 줄이는 방법을 알아보세요.
Expert parallelism은 mixture-of-experts 모델의 다양한 전문가(expert)들을 서로 다른 GPU나 가속기에 배치하는 분산 컴퓨팅 기법입니다. 모든 장치가 모든 전문가를 저장하는 대신, 각 장치는 하위 집합을 보유합니다. 학습된 라우터가 각 입력 토큰을 선택된 전문가에게 전달하여, 모든 입력에 대해 모든 매개변수를 활성화하지 않고도 매우 큰 모델이 매개변수 용량을 늘릴 수 있도록 합니다.
이 기법은 일반적인 조밀 신경망(dense neural networks)이 아니라 mixture-of-experts architectures에 구체적으로 적용됩니다. 전문가 층이 없었다면 한 장치에서 너무 많은 메모리를 소비했을 대규모 언어 및 vision-language models을 학습시키거나 서빙할 때 흔히 사용됩니다.
Expert Parallelism의 작동 방식#
MoE 층에는 일반적으로 피드포워드 신경망인 여러 전문가 네트워크와 라우터가 포함됩니다. 각 토큰에 대해 라우터는 점수를 생성하고 top-k 라우팅이라고도 불리는 소수의 전문가를 선택합니다.
예를 들어 4개의 GPUs에 분산된 8개의 전문가 층에서 각 GPU는 두 명의 전문가를 저장할 수 있습니다. 그런 다음 처리는 네 가지 주요 단계를 따릅니다:
- 라우터가 각 토큰에 대한 전문가를 선택합니다.
- 토큰들이 GPU 간에 교환되어 해당 전문가를 보유한 장치에 도달합니다.
- 각 전문가는 할당된 토큰을 로컬에서 처리합니다.
- 결과가 원래 토큰 위치로 돌아와 모델을 통해 계속 진행됩니다.
이 교환은 일반적으로 NVIDIA NCCL collective operations documentation에 설명된 집합 연산인 all-to-all 통신에 의존합니다. NVIDIA Megatron Bridge parallelism guide는 전문가 수와 expert-parallel 크기가 각 GPU에 배치되는 전문가 수를 결정하는 방법을 보여줍니다.
Expert parallelism은 전문가 가중치가 분할되기 때문에 장치당 메모리를 절약합니다. 그러나 연산이나 통신 비용을 없애지는 못합니다. 토큰이 모든 MoE 층에서 장치 또는 노드 경계를 넘을 수 있기 때문입니다.
Expert Parallelism 대 관련 기법#
Expert parallelism은 distributed training의 한 형태이지만, 다른 전략과 다르게 모델을 분할합니다:
- Data parallelism: 각 장치는 전체 모델 복제본을 저장하고 서로 다른 배치를 처리합니다. PyTorch distributed training overview에서 설명한 대로 그래디언트는 복제본 간에 동기화됩니다. 이는 완전한 모델이 각 장치에 들어갈 때 효과적입니다.
- Tensor parallelism: 층 내의 개별 가중치 행렬과 수학적 연산이 장치들에 걸쳐 분할됩니다. 대신 Expert parallelism은 완전한 전문가를 장치들에 할당합니다.
- Pipeline parallelism: 연속된 층 그룹이 서로 다른 장치에서 실행되며, 파이프라인 단계로서 그들을 통해 마이크로배치가 흐릅니다.
- Context parallelism: 활성화 메모리 요구 사항을 줄이기 위해 긴 입력 시퀀스가 장치들에 걸쳐 분할됩니다.
- Expert tensor parallelism: 전문가들이 장치들에 분산되며, 개별 전문가 각각도 텐서 샤딩됩니다. 이 하이브리드 접근 방식은 더 큰 전문가를 수용할 수 있지만 추가적인 통신을 유발합니다.
이러한 접근 방식들은 상호 보완적입니다. 대규모 MoE 시스템은 모델 크기와 하드웨어 토폴로지에 따라 expert, data, tensor, pipeline, context parallelism을 결합할 수 있습니다.
실제 적용 사례#
대규모 다국어 어시스턴트: MoE 언어 모델은 각 토큰에 대해 소수만 활성화하면서 많은 전문가 네트워크를 포함할 수 있습니다. Expert parallelism은 이러한 네트워크를 서빙 클러스터 전반에 분산시켜, 시스템이 모든 전문가를 모든 GPU에 로드하지 않고도 높은 모델 용량을 유지할 수 있게 합니다. vLLM expert-parallel deployment 및 TensorRT-LLM expert parallelism 같은 프로덕션 런타임이 이러한 유형의 추론 레이아웃을 지원합니다.
멀티모달 콘텐츠 분석: 이미지 패치와 텍스트 토큰을 처리하는 대규모 MoE 모델은 여러 가속기에 분산된 선택된 전문가들을 통해 입력을 라우팅할 수 있습니다. 이는 장치당 전문가 메모리를 관리 가능한 수준으로 유지하면서 문서 이해, 시각적 질의 응답 및 기타 multimodal AI 서비스를 지원할 수 있습니다. 동일한 원리가 희소 대규모 비전 트랜스포머에 적용될 수 있으나, 대부분의 컴팩트한 실시간 비전 모델은 이를 요구하지 않습니다.
이점, 병목 현상 및 실무 지침#
Expert parallelism은 GPU당 줄어든 전문가 가중치 메모리, 더 큰 총 용량을 가진 모델 지원, 그리고 토큰당 소수의 전문가만 활성화될 때의 효율적인 희소 연산이라는 세 가지 주요 장점을 제공합니다. Amazon SageMaker expert parallelism guide는 expert-parallel 차수가 클러스터 전반의 분포를 제어하는 방법을 보여줍니다.
주요 과제는 부하 불균형입니다. 라우터가 너무 많은 토큰을 하나의 전문가에게 보내면, 다른 전문가들이 대기하는 동안 해당 전문가의 GPU는 지연 유발 요소(straggler)가 됩니다. 그 결과 낮은 처리량, 불안정한 지연 시간, 그리고 전문가 용량이 제한될 때 발생할 수 있는 토큰 드로핑이 초래됩니다. 엔지니어는 전문가당 토큰, 라우팅 균형, 통신 시간, 메모리 사용량 및 엔드투엔드 지연 시간을 모니터링해야 합니다. 고대역폭 인터커넥트와 통신-연산 중첩은 전송 오버헤드를 줄일 수 있습니다.
Ultralytics YOLO26과 같은 조밀 모델을 사용할 때는 expert parallelism이 불필요합니다. 멀티 GPU Ultralytics YOLO training은 대신 분산 데이터 병렬 처리를 사용합니다:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Two-GPU YOLO training uses data parallelism, not expert parallelism.
results = model.train(
data="coco8.yaml",
epochs=10,
imgsz=640,
device=[0, 1],
)이 워크플로는 YOLO26을 두 개의 GPU에 복제하고 그들 사이에 학습 배치를 분할하며, 전문가 네트워크 간에 입력을 라우팅하지 않습니다. 팀은 또한 분산 인프라를 수동으로 구성하지 않고도 비전 데이터셋, 학습, 지표, 내보내기 및 배포를 관리하기 위해 Ultralytics Platform cloud training을 사용할 수 있습니다.









