혼합 전문가(MoE)는 피드포워드 네트워크를 여러 전문가 서브네트워크로 바꾸고, 라우터가 토큰마다 계산을 배정하는 모델 구조입니다. 핵심은 전문가 수가 아니라 희소 활성화입니다. 각 토큰은 소수의 전문가만 거치고, 나머지는 그 단계에서 참여하지 않습니다. 그래서 전체 파라미터는 매우 클 수 있지만, 추론 한 단계의 계산량은 활성화된 부분만으로 셉니다. 이 문장을 이해하는 것이 MoE의 모든 절충을 이해하는 것입니다.
라우터는 MoE에서 가장 작으면서 가장 중요한 부품입니다. 각 토큰의 표현을 읽고 모든 전문가에게 점수를 매긴 뒤 상위 k개만 남기는 작은 학습 가능 네트워크입니다. 선택된 전문가가 각자 토큰을 처리하고, 그 출력은 라우터 가중치로 가중 합산됩니다. 어텐션 층, 임베딩, 라우터 자체는 모든 토큰이 공유하고, 희소한 것은 전문가 피드포워드 층뿐입니다. 공유 전문가를 더해 모든 토큰이 거치게 하고, 공통 패턴을 처리해 라우팅되는 전문가의 부담을 덜어주는 설계도 있습니다.
밀집 모델과 MoE, 비용은 따로 계산해야 합니다
밀집 모델은 토큰을 하나 생성할 때마다 모든 파라미터를 실행하므로, 파라미터가 두 배가 되면 계산과 메모리도 대략 두 배가 됩니다. MoE는 둘을 분리합니다. 전체 파라미터는 메모리에 몇 개의 가중치를 담아야 하는지를 정하고, 활성화 파라미터는 각 단계가 얼마나 빠른지 정합니다. 같은 카드에서도 MoE는 전체 파라미터를 훨씬 크게 담을 수 있는 경우가 많지만, 모든 가중치가 메모리에 상주해야 하고 전문가를 불러오고 전환하는 데도 비용이 들기 때문에 작은 밀집 모델처럼 동작하지는 않습니다. 전체 파라미터만 보면 오해하고, 활성화 파라미터만 봐도 오해합니다. 두 숫자를 함께 읽어야 합니다.
흔한 세 가지 오해를 분리해야 합니다. 첫째, 전문가는 과목별 부서가 아닙니다. 라우팅이 배우는 것은 통계적 패턴상의 분업이며, 누구도 전문가에게 '수학 전문가', '코드 전문가'라는 표를 붙이지 않았고, 주제로 전문가를 지정하는 것은 믿을 수 없습니다. 둘째, 전문가가 많다고 능력이 자동으로 쌓이는 것은 아닙니다. 라우터가 대부분의 토큰을 소수 전문가에게 보내면 노는 전문가는 메모리 낭비가 되므로, 학습에서는 부하 균형 제약을 통해 이러한 붕괴를 막습니다. 셋째, MoE가 자동으로 돈을 절약하는 것은 아닙니다. 절약하는 것은 토큰당 계산이며, 그 대신 더 큰 메모리, 더 복잡한 배포, 디버깅하기 어려운 학습과 맞바꾸고, 추론 서비스도 전문가 병렬화와 통신 비용을 지불합니다.
MoE는 전체 용량 수요가 크고, 단계별 지연 예산이 빠듯하며, 큰 메모리와 분산 배포를 감당할 수 있는 경우, 예를 들어 대규모 온라인 추론에 적합합니다. 개인 기기에서 MoE를 실행하려면 먼저 메모리 계산부터 해야 합니다. 가중치 총량이 들어가는지를 정하고, 활성화량이 속도를 정하며, 두 조건이 모두 필요합니다. 반대로 파라미터 규모가 크지 않고 배포가 단순하면 밀집 모델이 보통 덜 번거롭고, 디버깅과 양자화 도구도 더 성숙합니다. 아키텍처를 고를 때는 제약을 먼저 보고, 그다음 파라미터 숫자를 보세요.