AI VIDEO BRIEFING
MoE 구조 정리: LLM 전문가 혼합의 라우팅·공유 전문가·로드 밸런싱 손실까지
전문가 혼합(MoE)은 전체 파라미터를 키우면서 실제 연산량은 묶어두는 구조다. 라우팅 방식이 top-k로 수렴한 이유, 딥시크가 퍼뜨린 세분화·공유 전문가, 전문가 붕괴를 막는 로드 밸런싱 손실까지 강의 내용을 정리했다.

핵심 메시지
쉽게 이해하기
이 회차는 라마 계열 아키텍처 선택지를 훑은 지난 강의에 이어진다. 정규화를 블록 앞에 두는 프리 노름, 레이어 노름 대신 계산이 단순한 RMS 노름, 게이팅 활성화 함수로서의 SwiGLU, 상대 거리를 회전 변환으로 넣는 RoPE, 그리고 KV 캐시를 줄이려 MHA에서 MQA, GQA, 잠재 공간으로 압축하는 방식까지 이어진 흐름 위에 전문가 혼합(MoE)이 놓인다. 미스트랄이 채택해 주목받았고 딥시크가 크게 성공시킨 뒤로는 대부분의 모델이 이 구조를 쓴다는 것이 강의의 출발점이다.
구조 자체는 단순하다. 덴스 모델은 토큰마다 커다란 FFN 하나를 그대로 통과시키지만, 스파스 모델은 FFN을 여러 개 두고 그중 하나 또는 몇 개만 활성화해 결과를 종합한 뒤 다음 층으로 넘긴다. 따라서 전문가와 라우터라는 두 구성요소가 필요하다. 강사가 특히 강조한 것은 오해 방지다. 전문가라는 이름 때문에 코딩 전문가, 수학 전문가처럼 나뉘리라 생각하기 쉽지만 실제로는 그렇게 동작하지 않는다. 어텐션에도 같은 개념을 넣을 수 있지만 복잡해서 대부분 FFN에만 적용한다.
왜 쓰는지는 실험이 답한다. 같은 연산량에서 테스트 손실이 더 낮게 떨어지고, 전문가 수를 늘릴수록 좋아지며, 같은 손실이나 정확도에 도달하는 데 필요한 학습 스텝도 덴스보다 적다. 즉 성능만이 아니라 수렴 속도에서도 유리하다. 딥시크 V2 논문 결과에서도 활성 파라미터를 가로축에 두고 보면 덴스 모델보다 뚜렷이 앞선다. 라우팅 방식으로는 토큰이 전문가를 고르는 방식, 전문가가 토큰을 고르는 방식, 모든 조합을 전역 최적화하는 방식이 있는데, 두 번째는 확률을 계산하려면 시퀀스 전체를 봐야 해서 자기회귀 생성에 맞지 않고 세 번째는 연산 부담이 지나치다. 그래서 토큰이 고르고 상위 k개만 쓰는 방식이 표준이 됐다. 세부적으로는 소프트맥스를 top-k 앞에 두는 방식이 상위 k개만 남기면 가중치 합이 1에 못 미치는 문제가 있어, 딥시크 V3처럼 로짓에서 먼저 top-k를 고르고 살아남은 것들끼리 소프트맥스를 취하는 방식이 쓰인다.
강사가 더 중요하다고 본 것은 세분화 라우팅과 공유 전문가다. 믹스트랄의 8x7B라는 표기는 7B 덴스 모델이 쓰던 FFN을 여덟 개 병렬로 두고 그중 둘을 고른다는 뜻인데, 딥시크 MoE는 여기서 두 가지를 바꾼다. 하나는 FFN 자체를 더 잘게 쪼개 전문가 수를 늘리고 top-k도 그만큼 늘리는 것이고, 다른 하나는 라우팅 대상에서 빼고 항상 활성화되는 공유 전문가를 한두 개 두는 것이다. 아블레이션을 보면 공유 없이 16개 중 2개를 쓰는 기준선에서 시작해 공유 전문가를 넣고, 다시 전문가를 두 배로 쪼개고, 최종적으로 라우팅 전문가 64개 중 7개에 공유 1개를 더한 구성까지 성능이 계단식으로 올라간다. 다만 다른 MoE 논문에서는 공유 전문가가 성능에 도움이 된다는 증거가 없다고 보고했고, 세분화가 유리하다는 결론만 일관되게 재현된다.
학습에는 별도의 장치가 필요하다. top-k는 미분이 흐르지 않는 연산이라 라우터까지 함께 학습하려면 복잡해지고, 그대로 두면 초기에 운 좋게 신호를 많이 받은 전문가만 계속 선택되는 전문가 붕괴가 일어난다. 로드 밸런싱을 적용하지 않은 실험에서는 전문가를 여덟 개 두고도 두 개만 살아남았다. 그래서 스위치 트랜스포머 계열의 로드 밸런싱 손실을 전체 손실에 더한다. 정작 균등하게 만들고 싶은 값은 전문가별 토큰 배분 비율인데 이 값이 미분 가능하지 않으므로, 미분 가능한 라우터 확률의 평균을 끌어와 두 항을 곱하는 형태로 설계한다. 확률만 균등화하면 두 전문가의 확률이 거의 같아도 미세한 차이 때문에 선택이 한쪽으로 쏠릴 수 있기 때문이다. 남은 과제도 분명하다. 같은 설정에서도 손실이 발산할 만큼 불안정할 수 있어 소프트맥스 분모를 억제하는 z-loss를 함께 쓰고, 작은 데이터로 파인튜닝하면 덴스는 되는데 MoE는 과적합하는 경향이 있어 MoE가 아닌 부분만 튜닝하거나 전문가를 드롭하는 정규화, 데이터 확대가 해법으로 거론된다. 처음부터 무작위 초기화하는 대신 덴스 모델의 FFN을 복사해 전문가를 만드는 업사이클링도 자주 등장하는 개념이다.
주요 인사이트
- MoE의 이득은 결국 파라미터는 늘리되 활성 파라미터와 연산량은 묶어두는 교환에서 나온다. 같은 연산량에서 더 좋고, 같은 성능까지 더 적은 스텝이 걸린다.
- 라우팅 설계는 강화학습이나 전역 최적화 같은 화려한 대안이 아니라 가장 단순한 top-k로 수렴했다. 자기회귀 생성이라는 제약이 선택지를 미리 좁혔기 때문이다.
- 로드 밸런싱 손실은 미분 불가능한 목표를 미분 가능한 대리 지표로 바꾸되, 대리 지표만 최적화하면 속는 사례가 있어 두 항을 곱하도록 설계된 전형적인 사례다.
- 공유 전문가의 효과는 논문마다 엇갈리지만 세분화의 이득은 일관적이다. 최근 모델들이 라우팅 전문가 수와 활성 개수는 조금씩 달라도 세분화만은 공통으로 채택한다.
- MoE 채택 흐름을 실제로 관찰할 수 있는 대상이 대부분 중국 오픈소스 모델이라는 점은, 아키텍처 논의의 근거가 공개된 쪽에 치우쳐 있음을 보여준다.
자주 묻는 질문
MoE의 전문가는 코딩 전문가, 수학 전문가처럼 나뉘나요?
그렇지 않다. 강의는 전문가라는 이름이 주는 직관과 달리 그런 분업으로 동작하지 않으며 라우팅은 토큰 단위로 이뤄진다는 점을 특히 주의하라고 짚었다.
로드 밸런싱 손실은 왜 필요한가요?
학습 초기에 우연히 좋은 신호를 받은 전문가만 계속 선택되고 나머지는 버려지는 전문가 붕괴가 일어나기 때문이다. 로드 밸런싱을 적용하지 않은 실험에서는 전문가를 여덟 개 뒀는데도 두 개만 사용됐고, 적용하면 초기의 쏠림이 손실로 벌점을 받아 점차 균등하게 배분된다.
세분화 전문가와 공유 전문가는 무엇인가요?
세분화는 FFN을 더 잘게 쪼개 전문가 수를 늘리고 top-k도 함께 늘리는 방식이고, 공유 전문가는 라우팅 대상에서 빼고 항상 활성화되는 전문가를 한두 개 두는 방식이다. 딥시크 MoE에서 제시된 뒤 여러 오픈소스 모델이 함께 채택했다.
MoE의 단점은 무엇인가요?
학습이 불안정해 같은 설정에서도 손실이 발산할 수 있는데 z-loss를 적용하면 훨씬 부드럽게 수렴한다. 또 작은 데이터로 파인튜닝할 때 덴스 모델은 잘 되는데 MoE는 과적합하는 경향이 관찰된다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗