전문가 혼합 (MoE)
MoE · sparse model
한 줄로
전문가 혼합은 신경망 일부를 여러 개의 병렬 하위 신경망으로 나누고, 라우터가 토큰마다 그중 몇 개만 거치게 하는 구조다. 전체 파라미터 수는 크게 유지하면서 토큰당 연산량은 작게 유지한다. 여러 초대형 모델이 크기에 비해 싸게 서빙되는 이유다.
덴스(dense) 모델에서는 모든 파라미터가 모든 토큰 처리에 참여한다. 전문가 혼합 모델에서는 특정 층이 여러 개의 병렬 전문가로 대체되고, 작은 라우터 신경망이 토큰마다 그중 둘셋을 고른다.
핵심은 경제성이다. 전체로는 수천억 파라미터를 가지면서 토큰당으로는 수백억만 켤 수 있다. 용량은 전체를 따라 커지고, 연산 청구서는 활성 부분을 따라간다.
대가는 메모리다. 모든 전문가가 상주해 있고 접근 가능해야 하므로, 산술은 활성 파라미터를 따라도 하드웨어 요구는 전체 파라미터를 따른다. 대규모 운영자에게는 매력적이고, 가속기 한 장에 모델을 올리려는 쪽에는 곤란한 이유다.
학습에도 고유한 어려움이 있다. 라우터가 토큰 대부분을 몇몇 «인기» 전문가에게 몰아주면 나머지는 아무것도 배우지 못한다. 이를 막기 위한 부하 분산 목적함수가 있고, 덴스 모델에는 없는 튜닝 문제가 하나 더 생긴다.
자주 묻는 질문
- MoE 모델은 왜 파라미터 수를 둘로 표기하나?
- 전체 파라미터는 모델 전부를, 활성 파라미터는 토큰당 실제로 쓰이는 양을 가리킨다. 연산 비용은 활성 파라미터를, 메모리 요구는 전체 파라미터를 따라간다.
- MoE 가 덴스 모델보다 나쁜가?
- 본질적으로 그렇지는 않다. 연산 대비 용량을 더 준다. 대신 메모리 요구가 크고 학습이 복잡하다 — 라우터가 작업을 고르게 나누도록 학습해야 하기 때문이다.