본문 바로가기
딥러닝 with Python

[딥러닝 with Python] MoE란?(Mixture of Experts란?)

by CodeCrafter 2025. 2. 24.
반응형

 

 

 

1. Mixture of Experts(MoE)란?

 

- Mixture of Experts(MoE)란, 대규모 모델을 효율적으로 확장하는 기법 중 하나로, 기존 Dense 모델 대비 더 적은 연산량으로도 뛰어난 성능을 달성할 수 있는 기법을 말합니다.

 

1) 모델 크기와 성능의 관계

 - Transformer의 등장을 통해서 Scalability에 대한 가능성이 입증되어 점차 모델들은 더 커지고 더 많은 데이터를 학습하게되었습니다. 즉, 더 큰 모델이 더 나은 성능을 보인다는게 정설이 되었습니다.

 

- 하지만, 고정된 컴퓨팅 예산 내에서 모델을 키운다는 것은 쉬운일이 아닙니다. 

- 특히, Dense 모델을 훈련할 때 모델이 클수록

 * 더 많은 연산량 (FLOPs)가 필요하게되고

 * 훈련 시간 및 비용이 기하급수적으로 증가하게되며

 * 메모리 요구사항이 증가하는 문제가 발생하게 됩니다.

[개념정리] FLOPS란? FLOPS(Floating Pont Operations Per Second)

 

[개념정리] FLOPS란? FLOPS(Floating Pont Operations Per Second)

이번에는 인공지능 모델의 연산 성능 평가 시 중요한 기준으로 사용되는 FLOPS(Floaintg Point Operations Per Second)에 대해서 알아보겠습니다.  1. FLOPS란? FLOPS(Floating Point Operations Per Second)?- FLOPS(Floating Po

jaylala.tistory.com

 

 

2) MoE를 통해 해결할 수 있는 문제

 - MoE는 위와 같은 계산 비용과 메모리 요구사항 등의 문제를 해결하면서도, 모델의 크기를 효과적으로 확장할 수 있는 방법을 제시합니다.

 - 이때, MoE의 핵심 아이디어는 

  * 일부 레이어(Feed Forward Network, FFN을)를 여러 개의 전문가(Experts)로 대체하는 것입니다.

  * 이를 통해 각 입력 토큰을 적절한 전문가에게 Routing하여 연산량을 줄이는 것입니다.

 - 결과적으로, MoE 모델은 동일한 계산 자원 내에서 더 큰 모델이나 데이터셋을 활용할 수 있게되는 것이며, Dense 모델보다 빠르게 동일한 성능을 달성할 수 있게되는 것입니다.

 

 

3) MoE의 구성 요소 및 동작 방식

 

- MoE 구성요소는 크게 두 가지 핵심 요소인, 전문가 네트워크(Experts Network) 와 게이트 네트워크(Gating Network)입니다. 

 

출처 : https://huggingface.co/blog/moe

 

3-1) 전문가 네트워크(Experts Network 또는 Experts)

 - MoE에서 FFN 레이어 대신 여러개의 Experts 네트워크를 사용하는데요

 - 각 Experts는 독립적인 신경망(보통 FFN)이며, 입력 토큰을 처리하는 역할을 합니다.

 - 보통 8~16개의 Experts로 구성하여 특정 입력에 맞게 활성화하도록 합니다.

각 레이어 별 Experts들이 중점적으로 처리하는 단어들

               출처 : https://developer.nvidia.com/ko-kr/blog/applying-mixture-of-experts-in-llm-architectures/

 

LLM 아키텍처에 Mixture of Experts(MoE)를 활용하기

Mixture of Experts(MoE) 거대 언어 모델(LLM) 아키텍처는 최근 GPT-4와 같은 독점 LLM은 물론 Mixtral 8x7B의 오픈 소스 출시와 함께 커뮤니티 모델에서도 등장하고 있습니다. Mixtral 모델의 강력한 상대적 성

developer.nvidia.com

 

3-2) 게이트 네트워크(Gating Network)

- 이 Gating Network(또는 Routing Network)는 어떤 입력이 어떤 Experts에게 할당될지를 결정하는 역할을 해줍니다. 

- 아래 그림 처럼 More 토큰은 FFN2라는 Experts에게, Parameters라는 토큰은 FFN1에게 Routing되어 지게 됩니다.

논문 "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity" 중

 

- 이때 Routing 방식은, Hard하게 특정 FFN에게만 할당될 수도 있지만 Soft하게 여러 FFN에 비율을 통해 할당될 수도 있습니다.

 

 

4) MoE의 장점과 단점

 

- Moe의 장점은 아래와 같습니다.

 

1) 계산량 절감 : Dense 모델 대비 더 적은 FLOPs로 동일한 성능 달성

2) 빠른 추론(Inference) 속도 : 일부 전문가만 활성화되므로 연산량이 줄어듦

3) Scaling 용이 : 파라미터 수를 쉽게 늘릴 수 있어 LLM에 적합

 

- 이에 반해, MoE의 단점은 아래와 같습니다.

 

1) Fine tuning 시 과적합 위험 : MoE는 Pretraing 단계에서는 효율적일 수 있으나, Finetuning 시 일반화 성능이 낮아지는 문제가 발생할 수 있음

2) 추론 시 메모리 사용량 증가 : Inference 시 일부 전문가만을 사용하기에 속도가 빠를 수 있으나 결국 모든 전문가들을 VRAM에 할당해야하기에 결국 전체 모델의 크기만큼이 메모리 사용량이 필요함

3) Routing 불균형 문제 : 일부 Experts들에게만 집중적으로 할당이 되는 문제가 발생할 수 있음.

 

 

5) 대표적인 MoE 모델

 

 

반응형

댓글