한 줄로 말하면
혼합전문가(Mixture of Experts, MoE)는 하나의 신경망 층 안에 여러 개의 작은 전문가 신경망을 두고, 입력마다 그중 일부만 골라 쓰는 설계야. 파라미터 전체를 쓰지 않고 일부만 활성화하기 때문에, 모델의 전체 파라미터 수를 크게 늘려도 한 번의 계산에 드는 비용은 그만큼 늘지 않아 — 그래서 같은 계산 예산으로 훨씬 큰 모델을 학습시킬 수 있어.1
비유로 이해하기
병원을 생각해보면 쉬워. 내과·외과·피부과 의사가 모두 한 병원에 있지만, 환자 한 명이 오면 접수처(라우터)가 증상을 보고 필요한 전문의 한둘에게만 보내지, 병원에 있는 의사 전부가 그 환자를 진료하지 않아. 병원 전체의 의료진(전체 파라미터)은 많아도, 환자 한 명을 보는 데 드는 인력(활성 파라미터)은 적은 거야.
다만 이 비유가 놓치는 게 있어 — 병원은 의사가 노는 시간엔 월급만 나가지만, MoE는 쓰지 않는 전문가라도 모델을 실행하는 동안엔 메모리에 전부 올려 둬야 해. 그래서 계산량은 줄어도 메모리 요구량은 줄지 않아. 여기부터는 비유 밖이고, 실제 구조를 봐야 해.
두 부품으로 이루어진 층
트랜스포머 안에서 MoE는 원래 있던 dense feed-forward network(FFN) 층 하나를 두 부품으로 바꿔 넣은 것이야.1 첫째는 여러 개(예: 8개)의 전문가 신경망이고, 각 전문가는 그 자체로 하나의 작은 FFN이야. 둘째는 게이트 네트워크(라우터)로, 입력 토큰마다 어느 전문가에게 보낼지를 학습해서 결정해.1
이 구조가 처음 등장한 건 1991년 “Adaptive Mixture of Local Experts” 논문이고,1 이후 Noam Shazeer 등(제프리 힌턴·제프 딘 포함)이 2017년 논문에서 희소성(sparsity)을 도입해 이 아이디어를 1,370억 파라미터 규모의 LSTM으로 확장했어.21 희소성이란 조건부 연산(conditional computation)의 한 형태로, dense 모델이 모든 입력에 모든 파라미터를 쓰는 것과 달리 시스템의 일부만 실행하는 방식이야.1 2017년 논문은 이렇게 게이팅 네트워크가 각 예제마다 전문가들의 희소 조합을 골라 쓰는 층을 도입했고, 저자들은 최신 GPU 클러스터에서 계산 효율 손실을 최소화하면서 모델 용량을 1000배 이상 늘렸다고 주장했어.2
왜 중요한가
MoE가 중요한 이유는 같은 계산 예산으로 dense 모델보다 훨씬 큰 모델을 사전학습시킬 수 있게 해주기 때문이야.1 이 성질 때문에 MoE는 대형 언어 모델을 더 싸게 더 크게 만들려는 시도의 핵심 축이 됐고, 구글의 GShard처럼 트랜스포머를 6000억 파라미터 이상으로 확장하는 시도도 이 구조 위에서 나왔어.1 뒤에서 볼 조(兆) 단위 파라미터 모델들도 마찬가지로, MoE는 이런 다중 조 단위 파라미터 모델의 학습을 가능케 했어.1
단 공짜는 아니야. 전문가들이 쓰이든 안 쓰이든 모델을 실행하려면 전부 메모리에 올려 둬야 해서, 예를 들어 Mixtral 8x7B 같은 MoE는 추론 시 일부 파라미터만 쓰는데도 47B 파라미터급 dense 모델과 맞먹는 VRAM이 필요해.1 그래서 MoE는 계산은 줄이지만 메모리 요구량은 줄이지 않는 트레이드오프를 갖고 있고, 여러 대의 머신을 쓸 수 있는 고처리량 환경에서는 sparse 모델이 유리하지만 VRAM이 적은 저처리량 환경에서는 오히려 dense 모델이 낫다는 것이 이 구조를 만든 쪽의 권고야.1
실제 예시
구글이 공개한 Switch Transformers는 이 구조를 극단까지 밀어붙인 사례야. 8개에서 2048개까지 전문가를 가진 T5 기반 MoE 모음이고, 최대 모델은 1.6조 파라미터에 이르러 당시 공개된 것 중 가장 컸어.1 흥미로운 건 설계 선택이야 — MoE는 원래 예제마다 최소 두 개 이상의 전문가를 조합해 쓰는 것이 기본 아이디어였는데, Switch Transformers는 이를 단순화해 예제마다 전문가 하나만 골라 쓰는 전략을 썼고,1 그러고도 같은 크기의 T5-XXL 대비 4배 빠른 사전학습 속도를 냈어.1
또 다른 사례는 Mistral이 만든 Mixtral 8x7B야. 이 모델은 더 큰 Llama 2 70B를 능가하는 성능을 내면서도 추론은 훨씬 빨랐어.1
헷갈리지 말아야 할 점
“전문가가 특정 분야를 전담한다”는 통념은 틀렸어. MoE라는 이름 때문에 “수학 전문가”, “코딩 전문가”처럼 사람이 아는 분야별로 전문가가 나뉜다고 생각하기 쉬워. 하지만 ST-MoE 연구자들이 실제로 관찰한 건 그런 의미론적 분업이 아니라, 인코더의 전문가들이 토큰 그룹이나 얕은 표면적 패턴에 특화되는 경향이었어 — 예를 들면 구두점을 다루는 전문가, 고유명사를 다루는 전문가 같은 식이야.1 사람이 이해하는 지식 영역이 아니라, 모델이 학습 과정에서 스스로 찾아낸 얕은 패턴 단위로 나뉜다는 뜻이야.
이어서 읽기
MoE는 대형 언어 모델의 파라미터 수와 계산 비용을 다루는 여러 논의의 기초가 되는 구조야. Mixtral·Switch Transformers·GShard처럼 이 구조를 쓴 실제 모델이나, Google DeepMind처럼 대형 모델을 만드는 조직을 다루는 글이 앞으로 쌓이면 여기에 연결한다.
남은 질문들
- MoE의 게이팅(라우팅) 알고리즘이 학습 안정성에 미치는 영향과, 이를 개선하려는 후속 연구는 무엇인가.
- 파인튜닝 단계에서 MoE가 겪는다는 어려움의 구체적 원인과, 이를 완화하는 instruction-tuning 접근은 어떻게 작동하는가.
댓글