welclaiAI·TREND·DIGEST
모델

전문가 혼합(Mixture-of-experts) 모델, 쉽게 풀어보기

전문가 혼합은 입력마다 모델의 일부만 써서, 거대하면서도 운영이 저렴한 모델을 가능하게 합니다. 그 아이디어와 중요한 이유를 쉽게 풀어봅니다.

models2026-04-11 13:35 KST·편집장·7

어떤 모델이 어마어마한 파라미터 수를 가졌다면서도 운영이 비교적 저렴하고 빠르다고 묘사되는 것을 본 적 있을 것입니다. 언뜻 모순처럼 보입니다. 파라미터가 더 많다는 것은 보통 연산이 더 많다는 뜻이니까요. 이 모순을 푸는 것이 전문가 혼합(mixture-of-experts), 줄여서 MoE라는 아키텍처이며, 이는 대규모 모델을 짓는 방식에서 가장 중요한 아이디어 중 하나가 되었습니다. 개념은 이름이 풍기는 것보다 단순하고, 그것을 이해하면 진짜 수수께끼 하나가 풀립니다. 모델이 어떻게 동시에 "거대"하면서 "효율적"일 수 있는가 하는 것이죠. 이 글은 그것을 쉬운 말로 설명합니다.

MoE가 푸는 문제

기본적인 긴장에서 출발해 봅시다. 모델을 더 유능하게 만든다는 것은 보통 더 크게 만든다는 뜻입니다. 파라미터가 더 많고, 학습할 수용력이 더 크게요. 하지만 모델이 쓰는 파라미터 하나하나는 모델을 돌릴 때마다 연산과 메모리 비용을 발생시킵니다. 보통의 모델에서는 모든 입력에 대해 모든 파라미터가 동원됩니다. 그래서 능력을 키우면 그에 발맞춰 매 요청의 비용도 함께 커집니다. 어느 지점을 넘어서면 이는 감당하기 어려울 만큼 비싸집니다.

MoE가 던지는 질문은 이렇습니다. 정말로 모든 입력에 대해 모델 전체가 활성화될 필요가 있을까? 대부분의 입력은 모델이 아는 것의 일부만 불러냅니다. 시(詩)에 관한 질문과 화학에 관한 질문이 똑같은 기계 장치를 필요로 한다고 보기는 어렵습니다. 만약 모델이 전체적으로는 거대해서 방대한 전문화된 수용력을 담고 있되, 각 입력에 관련된 부분만 켤 수 있다면 어떨까요?

그것이 아이디어의 전부입니다. MoE는 모델의 전체 크기를 요청당 사용되는 양으로부터 떼어냅니다.

핵심 아이디어: 많은 전문가, 한 번에 몇 개만

전문가 혼합 모델에서는 특정 층(layer)이 **전문가(experts)**라 불리는 여러 개의 병렬 하위 네트워크로 나뉩니다. 모든 입력을 처리하는 하나의 큰 덩어리 대신, 나란히 놓인 더 작은 덩어리들의 집합을 갖는 것이죠. 주어진 입력 조각에 대해 이 전문가들 중 몇 개만 활성화되고, 나머지는 그 입력에 대해 잠들어 있습니다.

그래서 모델은 가령 전체적으로 많은 수의 전문가를 담고 있고, 거기서 큰 전체 파라미터 수가 나옵니다. 하지만 특정 토큰에 대해서는 그중 소수만 일을 합니다. 전체 수용력은 거대하고, 입력당 활성 수용력은 수수합니다. 바로 이것이 그런 모델이 매우 큰 파라미터 수를 내세우면서도 훨씬 더 작은 밀집(dense) 모델에 가까운 비용으로 동작할 수 있는 이유입니다.

"전문가"라는 단어에 대한 메모 하나. 각각을 깔끔한 전문가로, 이건 수학 담당, 저건 프랑스어 담당 식으로 상상하기 쉽습니다. 현실은 더 지저분합니다. 전문가들은 학습에서 떠오르는 방식으로 전문화되며, 깔끔한 인간의 범주에 들어맞는 일은 드뭅니다. 라벨 붙은 부서라기보다, 모델이 거쳐 갈 수 있는 서로 다른 학습된 경로로 생각하는 편이 낫습니다.

라우터: 누가 무엇을 맡을지 결정하기

입력당 전문가가 몇 개만 돌아간다면, 무언가는 어느 소수가 돌아갈지 정해야 합니다. 그 무언가가 보통 라우터(router) 또는 게이팅 네트워크(gating network)라 불리는 작은 구성요소입니다. 각 입력 조각에 대해 라우터는 그것을 살펴보고 처리하기에 가장 적합한 전문가를 골라, 입력을 그쪽으로 보내고 나머지는 건너뜁니다.

라우터 자체도 다른 모든 것과 함께 학습 중에 학습됩니다. 누구도 입력을 전문가에 손으로 배정하지 않습니다. 모델은 학습 과정에 걸쳐, 일을 나누는 유용한 방식, 즉 어떤 전문가가 어떤 종류의 입력을 맡아야 하는지를 스스로 발견하고, 라우터는 그 학습된 라우팅 결정을 부호화합니다. 당신이 요청을 보내면, 라우터는 토큰 하나하나에 대해 조용히 이 선택을 내리며, 각 토큰을 선택된 전문가들로 흘려보냅니다.

이 라우팅이 설계의 핵심이자, 제대로 해내기 가장 까다로운 부분이기도 합니다. 그래서 아래의 절충들로 이어집니다.

이 수고를 들일 가치가 있는 이유

MoE의 보상은 모델 제작의 중심 절충, 즉 능력 대 비용에서 더 나은 거래를 얻는 것입니다.

전체 수용력과 입력당 연산이 떼어져 있기 때문에, MoE 모델은 비슷한 운영 비용의 밀집 모델보다 훨씬 더 많은 지식과 기술을 담을 수 있습니다. 매우 큰 모델의 능력에 가까운 것을, 훨씬 더 작은 모델의 운영 비용에 가까운 비용으로 얻는 것이죠. 모델을 대규모로 운영하는 비용이 실질적 제약인 세상에서, 이는 강력한 지렛대입니다. 유능하고 효율적인 모델에 MoE 설계가 흔해진 데는 이 점이 큰 몫을 합니다. 매 요청의 비용을 그에 맞춰 키우지 않으면서도 수용력을 계속 확장하는 길을 제공하니까요.

절충과 어려움

MoE는 공짜 효율이 아닙니다. 그 나름의 복잡함을 들여오며, 그것을 이해해야 사고 모델을 정직하게 유지할 수 있습니다.

  • 라우팅이 균형 잡혀야 합니다. 라우터가 인기 있는 몇몇 전문가를 과도하게 편애하도록 학습하면, 나머지는 덜 쓰여 수용력이 낭비되고, 바쁜 전문가들은 병목이 됩니다. 학습은 전문가들 사이에 일이 건강하게 퍼지도록 능동적으로 유도해야 하며, 이 균형을 제대로 잡는 것은 정말로 어렵습니다.
  • 연산이 줄어도 메모리 비용은 높게 유지됩니다. 입력당 전문가 몇 개만 돌아가므로 요청당 연산은 수수합니다. 하지만 그 모든 전문가가 여전히 적재되어 사용 가능해야 하므로, 메모리 발자국은 전체의 큰 모델을 반영합니다. MoE는 모델을 호스팅하는 데 필요한 자원보다 연산에서 더 많이 절약합니다.
  • 학습이 더 복잡합니다. 많은 전문가와 라우터를 조율하고, 라우팅을 균형 있게 유지하며, 부품들이 매끄럽게 함께 작동하게 만드는 일은 단일 밀집 모델을 학습하는 것보다 어렵습니다. 실행 시점의 효율은 제작 시점의 추가된 복잡함으로 사는 것입니다.

그러니 MoE는 정교한 거래이지, 무조건적인 업그레이드가 아닙니다. 더 까다로운 학습과 큰 메모리 요구라는 대가를 치르고, 더 저렴한 추론과 더 큰 수용력을 사는 것입니다.

사용자인 당신에게 미치는 영향

실제로 모델을 쓸 때 이 대부분은 보이지 않습니다. 당신은 텍스트를 보내고 텍스트를 돌려받으며, 라우팅은 그 아래에서 조용히 일어납니다. 하지만 이 아키텍처는 알아둘 만한 몇 가지를 설명해 줍니다. 모델이 눈이 휘둥그레지는 전체 파라미터 수를 내세우면서도 운영이 놀랍도록 저렴할 수 있는 이유가 그것이며, 이는 모델을 크기와 비용으로 비교할 때 중요합니다. 같은 모델에 대해 인용된 "전체 파라미터" 수치와 "입력당 활성 파라미터" 수치가 크게 다를 수 있는 이유, 그리고 운영 비용에 대해서는 활성 수치가 종종 더 정직한 길잡이인 이유도 그것입니다. 또 머리기사 크기 숫자에는 맥락이 필요하다는 점을 일깨워 줍니다. MoE가 그림에 들어오면, 전체 파라미터 수가 같은 두 모델이 현실 세계에서 매우 다른 경제성을 가질 수 있으니까요.

정리

전문가 혼합은 단순한 질문에 대한 답입니다. 모든 입력에 대해 모델 전체가 돌아가야 할까? 모델의 일부를 여러 병렬 전문가로 나누고 학습된 라우터를 써서 입력당 소수만 활성화함으로써, MoE는 모델의 전체 크기를 그것을 쓰는 비용으로부터 떼어냅니다. 그 덕에 모델은 수용력에서 거대하면서도 운영은 비교적 저렴할 수 있고, 그래서 유능하고 효율적인 모델 상당수가 이렇게 지어집니다. 함정은, 전문가들이 고르게 쓰여야 하고, 전체 모델이 여전히 메모리에 들어가야 하며, 학습이 더 복잡하다는 점입니다. 이 중 어느 것과도 직접 상호작용할 일은 드물겠지만, 그것은 "거대함"과 "저렴함"이라는 그러지 않으면 어리둥절했을 조합을 설명해 주며, 전체 파라미터 수만으로는 오해를 부를 수 있는 이유이기도 합니다.

#mixture-of-experts#architecture#efficiency#scaling