Mixture of Experts (MoE)
Mixture of Experts(MoE) 아키텍처를 살펴보십시오. 게이팅 네트워크와 희소 계층이 고성능 AI 및 컴퓨터 비전을 위해 신경망을 어떻게 확장하는지 알아보십시오.
Mixture of Experts (MoE)는 연산 비용의 비례적 증가 없이 모델을 대규모로 확장할 수 있게 해주는 딥러닝의 특화된 아키텍처 디자인입니다. 모든 입력에 대해 모든 파라미터가 활성화되는 표준적인 밀집 neural network (NN)와 달리, MoE 모델은 조건부 연산(conditional computation)이라는 기법을 사용합니다. 이 접근 방식은 입력 데이터의 특정한 특성을 기반으로 "전문가(experts)"라고 불리는 네트워크 구성 요소의 작은 하위 집합만 동적으로 활성화합니다. 이를 통해 MoE 아키텍처는 훨씬 더 작은 시스템의 inference latency와 작동 속도를 유지하면서 수조 개의 파라미터를 가질 수 있는 강력한 foundation models을 생성할 수 있습니다.
MoE의 핵심 메커니즘#
Mixture of Experts 모델의 효율성은 표준 밀집 레이어를 희소(sparse) MoE 레이어로 대체하는 것에서 비롯됩니다. 이 레이어는 일반적으로 정보를 효율적으로 처리하기 위해 함께 작동하는 두 가지 주요 요소로 구성됩니다.
- 전문가 (The Experts): 이들은 독립적인 서브 네트워크이며, 대개 단순한 피드포워드 신경망(FFN)입니다. 각 전문가는 데이터의 다양한 측면을 처리하는 데 특화되어 있습니다. natural language processing (NLP)의 맥락에서, 한 전문가는 문법 처리에 능숙해질 수 있고, 다른 전문가는 사실 정보 검색이나 코드 구문에 집중할 수 있습니다.
- 게이팅 네트워크 (라우터): 라우터는 데이터의 교통 제어기 역할을 합니다. 이미지 패치나 텍스트 토큰 같은 입력이 레이어에 들어오면, 라우터는 softmax function을 사용하여 확률 점수를 계산합니다. 그런 다음 해당 입력을 가장 높은 점수를 가진 "Top-K" 전문가(보통 한두 명)에게만 전달합니다. 이는 모델이 가장 관련성이 높은 파라미터에만 에너지를 소비하도록 보장합니다.
모델 앙상블과의 차이점#
두 개념 모두 여러 서브 모델을 사용하는 것을 포함하지만, Mixture of Experts를 model ensemble과 구별하는 것은 매우 중요합니다. 전통적인 앙상블에서는 그룹 내의 모든 모델이 동일한 입력을 처리하며, accuracy를 극대화하기 위해 그 결과들을 평균 내거나 투표합니다. 이 접근 방식은 모델 수에 비례하여 연산 비용을 선형적으로 증가시킵니다.
반면, MoE는 서로 다른 입력이 서로 다른 경로를 통과하는 단일의 통합된 모델입니다. 희소(sparse) MoE는 주어진 추론 단계에서 전체 파라미터의 일부분만 실행함으로써 scalability와 효율성을 목표로 합니다. 이를 통해 밀집 앙상블과 관련된 과도한 비용 없이 방대한 양의 training data로 학습할 수 있습니다.
실제 애플리케이션 사례#
MoE 아키텍처는 특히 다중 작업 기능과 광범위한 지식 유지가 필요한 시나리오에서 현대적인 고성능 AI의 초석이 되었습니다.
-
다국어 언어 모델: Mistral AI's Mixtral 8x7B와 같은 주요 모델은 MoE를 활용하여 다양한 언어 작업에서 뛰어난 성능을 발휘합니다. 토큰을 특화된 전문가에게 라우팅함으로써, 이 시스템들은 단일 모델 구조 내에서 번역, 요약, 코딩 작업을 처리할 수 있으며, 활성 파라미터 수가 비슷한 밀집 모델보다 뛰어난 성능을 보입니다.
-
확장 가능한 컴퓨터 비전: computer vision (CV) 영역에서 연구원들은 대규모 비전 백본을 구축하기 위해 MoE를 적용합니다. Vision MoE (V-MoE) 아키텍처는 전문가들이 고유한 시각적 특징을 인식하는 데 어떻게 특화될 수 있는지 보여주며, ImageNet과 같은 벤치마크에서 성능을 효과적으로 확장합니다. 예측 가능한 메모리 풋프린트 덕분에 YOLO26과 같이 고도로 최적화된 밀집 모델이 실시간 엣지 검출의 표준으로 남아 있는 한편, MoE 연구는 서버 측 시각적 이해의 경계를 계속해서 넓혀가고 있습니다.
라우팅 로직 예시#
게이팅 네트워크가 전문가를 선택하는 방식을 이해하기 위해, 이 단순화된 PyTorch 예제를 살펴보세요. 이는 주어진 입력에 가장 적절한 전문가를 선택하는 라우팅 메커니즘을 보여줍니다.
import torch
import torch.nn as nn
# A simple router deciding between 4 experts for input dimension of 10
num_experts = 4
input_dim = 10
router = nn.Linear(input_dim, num_experts)
# Batch of 2 inputs
input_data = torch.randn(2, input_dim)
# Calculate scores and select the top-1 expert for each input
logits = router(input_data)
probs = torch.softmax(logits, dim=-1)
weights, indices = torch.topk(probs, k=1, dim=-1)
print(f"Selected Expert Indices: {indices.flatten().tolist()}")학습 및 배포 시의 과제#
장점에도 불구하고 MoE 모델은 training process에 고유한 과제를 도입합니다. 주요 문제는 **로드 밸런싱(load balancing)**입니다. 라우터가 몇 가지 "인기 있는" 전문가는 선호하면서 다른 전문가들은 무시하여 용량 낭비를 초래할 수 있습니다. 이를 완화하기 위해 연구원들은 모든 전문가가 균등하게 사용되도록 장려하는 보조 loss functions를 사용합니다.
또한 이러한 대규모 모델을 배포하려면 정교한 하드웨어 설정이 필요합니다. 활성 파라미터가 적더라도 전체 파라미터 수가 많기 때문에 모델은 상당한 VRAM을 필요로 하며, 여러 GPUs에 걸친 distributed training이 필요합니다. Microsoft DeepSpeed와 같은 프레임워크는 이러한 시스템을 효율적으로 학습하는 데 필요한 병렬 처리를 관리하는 데 도움을 줍니다. 이러한 복잡한 아키텍처를 위한 데이터셋 및 학습 워크플로를 관리하기 위해 Ultralytics Platform과 같은 도구는 로깅, 시각화, 배포를 위한 필수 인프라를 제공합니다.






