MoE란?
MoE란 Mixture of Experts의 약자로, Expert라고 이름 붙인 FFN(feed-forward network) 여러 개를 사용하는 방법이다. 각 Expert는 특정 데이터나 패턴을 담당한다. 학습/서빙 비용은 유지하면서 모델 사이즈를 키울 수 있는 효율적인 방법으로, GPT-4 학습에 사용되었다고 알려져 있다.
MoE 기법에는 아래와 같은 개념이 사용된다.
1.
Experts (전문가 모델): 각 Expert는 여러 개의 FC 레이어로 구성된 FFN이며, 특정 유형의 데이터나 패턴을 잘 처리하도록 학습된다. 학습을 통해 각 전문가는 특정 토큰을 담당하여 처리하게 된다.
2.
Gating Network (게이트 네트워크): Gating Network는 입력 토큰을 받아 어떤 Expert가 해당 토큰을 처리할지 결정한다(이를 라우팅 알고리즘이라고도 한다). Gating Network는 일반적으로 softmax 함수를 사용하여 확률 분포를 생성하고, 이 분포에 따라 각 Expert의 출력을 가중 평균하여 최종 결과를 얻는다.
3.
Sparse Activation (희소 활성화): MoE 모델은 모든 Expert가 동시에 활성화되지 않고, 주어진 입력 토큰에 대해 일부 Expert만 활성화된다. MoE는 모델의 성능을 크게 향상시켜주지만 모든 Expert를 활성화할 경우 연산량이 너무 많아지기 때문에, Sparse Activation을 통해 일부 Expert만 활성화하는 방법을 사용한다. 이를 통해 연산량을 줄일 수 있다. * Sparse MoE, Dense MoE로 구분하기도 한다. 전체적인 아키텍처는 다음과 같다.
Vision 분야에서 MoE를 적용한 사례
MoE-LLaVA, DeepSeek-VL2 같은 대규모 시각 언어 모델(LVLM, Large Vision-Language Model)에서 MoE 기법으로 계산 효율성을 높이고 정확도를 향상시켰다.
두 방법 모두 이미지 입력은 임베딩 혹은 토큰화하여 텍스트 입력과 함께 넣어주고, 그 뒤 MoE 적용 방식은 LLM과 거의 같다.
•
ViT 구조에 MoE Block을 추가
•
ViT Block과 MoE Block이 서로 교차로 적층되며, MoE Block은 ViT Block의 FFN 부분을 MoE로 교체
•
가장 유용하지 않은 patch들을 포기하는 라우팅 알고리즘을 제안
•
기존 Dense 모델과 성능은 동일하지만 연산량을 절반으로 줄임
확실히 최근 연구 트렌드는 LLM 혹은 LVLM인 듯하다.
Transformer 구조는 이제는 새로운 것이 아닌 클래식이 된 듯
트렌드를 놓치지 않고 있다가 실무에서 적재적소에 적용할 수 있는 능력이 중요한 것 같다.