트랜스포머의 한계를 넘어서: Mixture of Experts (MoEs) 심층 분석
요약
기존 LLM은 모델 크기(파라미터 수)를 늘리는 '밀집 스케일링'에 의존해왔으나, 이는 높은 학습 비용과 추론 지연 시간 증가라는 한계에 직면했습니다. Mixture of Experts (MoEs)는 이 문제를 해결하는 대안으로, 트랜스포머의 피드-포워드 레이어(Feed-Forward Layer) 일부를 여러 개의 '전문가(Experts)'로 대체합니다. 각 토큰은 라우터(Router)를 통해 필요한 소수의 전문가만 활성화하여 사용하므로, 전체 파라미터 수 대비 실제 추론 시 사용하는 계산량(Active Parameters)을 획기
핵심 포인트
- MoEs는 트랜스포머의 일부 레이어를 여러 개의 독립적인 '전문가(Experts)'로 대체하며, 토큰별 라우팅 메커니즘을 통해 필요한 전문가만 활성화합니다.
- 모델 용량은 총 파라미터 수에 의해 결정되지만, 추론 속도는 실제로 사용되는 활성 파라미터(Active Parameters)에 의존하여 효율성이 극대화됩니다.
- MoEs는 기존 밀집 모델 대비 뛰어난 계산 효율성을 제공하며, DeepSeek V2와 Mixtral-8x7B 등 주요 오픈소스 모델에서 이미 상용화 및 채택되고 있습니다.
- 효율적인 MoE 구현을 위해 트랜스포머 라이브러리는 체크포인트(Checkpoint)의 분리된 전문가 가중치들을 런타임에 최적화된 단일 연속 텐서로 변환하는 'WeightConverter' 같은 새로운 로딩 파이프라인을 도입했습니다.
최근 LLM 발전은 대규모 모델(Dense Language Models)의 규모 확장(Scaling)에 크게 의존해 왔습니다. 초기 ULMFiT부터 GPT-2, 그리고 현재 수백억 개 이상의 파라미터를 가진 시스템까지, '더 많은 데이터 + 더 많은 파라미터 = 더 나은 성능'이라는 공식이 주류였습니다.
하지만 이러한 밀집 스케일링(Dense Scaling) 방식은 실질적인 한계에 도달했습니다. 모델 학습 비용의 기하급수적 증가, 추론 시 지연 시간(Inference Latency)의 급격한 상승, 그리고 막대한 메모리 및 하드웨어 요구 사항이 그 예입니다.
Mixture of Experts (MoEs): 효율성을 극대화하는 아키텍처
MoE는 이러한 한계를 돌파하기 위해 등장했습니다. MoE 모델은 트랜스포머의 기본 구조를 유지하되, 일부 밀집 피드-포워드 레이어(Feed-Forward Layer)를 여러 개의 '전문가(Experts)' 세트로 대체합니다. 여기서 전문가란 특정 주제에 국한된 모듈이 아니라, 단순히 학습 가능한 서브 네트워크(learnable sub-network)입니다.
핵심 원리는 다음과 같습니다: 각 토큰은 라우터(Router) 메커니즘을 통해 자신에게 가장 적합하거나 필요한 소수의 전문가만을 선택적으로 활성화하여 처리합니다. 이로 인해 모델의 전체 용량(Capacity)은 총 파라미터 수에 의해 결정되지만, 실제 추론 속도와 계산 부하(Compute Load)는 오직 '활성 파라미터(Active Parameters)'에 의해서만 결정됩니다.
MoE의 압도적인 효율성 예시:
예를 들어, 총 210억 개의 파라미터를 가진 모델이 있다고 가정해 봅시다. 이 모델은 32개의 전문가 중 단 4개만을 토큰당 활성화한다고 할 때, 실제 추론 시 사용되는 계산량은 약 36억 개 수준에 머무릅니다. 이는 마치 36억 개 파라미터의 밀집 모델과 유사한 성능을 내면서도, 210억 개라는 거대한 용량을 유지할 수 있게 합니다.
이러한 구조적 이점 덕분에 MoEs는 다음과 같은 장점을 제공합니다:
- 뛰어난 계산 효율성 (Compute Efficiency): 고정된 학습 FLOP 예산(FLOP budget) 내에서 밀집 모델보다 우수한 성능을 보이므로, 반복적인 개선과 확장성이 뛰어납니다.
- 자연스러운 병렬화 축 (Natural Parallelization Axis): 각 전문가가 독립적인 계산 단위를 제공하므로, 토큰들이 서로 다른 전문가를 사용하면서 '전문가 간 병렬 처리(Expert Parallelism)'가 가능해집니다.
- 산업계 채택 가속화: Qwen 3.5, MiniMax M2, GLM-5 등 최신 오픈소스 모델과 DeepSeek V2 같은 선도적인 시스템에서 MoE 구조의 도입이 활발하게 이루어지고 있습니다.
MoEs를 위한 인프라의 진화: WeightConverter의 역할
기존 LLM 생태계의 대부분의 툴링(모델 로딩, 장치 배치, 양자화 등)은 밀집 모델을 전제로 설계되었습니다. MoE 구조가 주류가 되면서 이러한 가정들을 근본적으로 재설계해야 할 필요성이 생겼습니다.
특히 가중치 로딩 과정에서 큰 변화가 있었습니다. 체크포인트(Checkpoint) 파일에는 각 전문가의 가중치가 개별적인 텐서로 분리되어 저장되는 경우가 많습니다 (예: model.layers.3.mlp.experts.0..., model.layers.3.mlp.experts.255...). 하지만 GPU가 최적화된 커널(Kernel)을 사용하여 MoE를 실행하려면, 이 모든 전문가 가중치들이 하나의 연속적인 텐서(Contiguous Tensor)로 '패킹(Packing)'되어야 합니다.
이러한 '체크포인트의 분리된 구조'와 '런타임의 통합된 요구사항' 사이의 불일치를 해소하기 위해, 트랜스포머 라이브러리는 WeightConverter라는 추상화 계층을 도입했습니다. 이 도구는 단순히 가중치를 복사하는 것이 아니라, 체크포인트에 저장된 여러 개의 분리된 텐서들을 지정된 연산(예: MergeModulelist, Concatenate)을 통해 원하는 런타임 레이아웃의 단일 연속 텐서로 변환하는 파이프라인 역할을 합니다. 이는 MoE를 트랜스포머 프레임워크의 핵심 요소로 자리매김하게 한 중요한 진전입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Hugging Face Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기