- 강의 출처: https://youtu.be/RcJ1YXHLv5o?feature=shared
- MoE 개념(from GPT)주요 특징
- 전문가 모델들
- MoE는 여러 하위 모델(전문가)로 구성됩니다. 각 모델은 특정한 문제나 데이터 패턴에 전문화되어 있습니다.
- 예를 들어, 하나의 전문가 모델은 언어 데이터를 잘 처리하고, 다른 모델은 이미지 데이터를 더 잘 처리할 수 있습니다.
- 게이팅 네트워크(Gating Network)
- MoE의 핵심은 게이팅 메커니즘입니다. 게이팅 네트워크는 입력 데이터를 분석하여 어떤 전문가 모델이 해당 입력을 가장 잘 처리할 수 있는지 판단합니다.
- 게이팅 네트워크는 "어떤 전문가가 활성화되어야 하는지"를 결정하는 역할을 합니다.
- 효율성
- MoE는 모든 전문가를 동시에 사용하는 대신, 특정 입력에 맞는 소수의 전문가만 활성화하기 때문에 계산 효율성을 높일 수 있습니다.
- 이는 대규모 모델을 더 적은 자원으로 효율적으로 실행하는 데 유리합니다.
예시- 검색 엔진: 검색어에 따라 특정 전문가가 활성화되어 결과를 제공합니다. 예를 들어, 스포츠 관련 검색어는 스포츠 데이터를 다루는 전문가가 처리합니다.
- 번역 모델: 문장 구조나 언어에 따라 특정 전문가를 활성화하여 더 정확한 번역을 제공합니다.
MoE의 장점- 확장성: 대규모 데이터와 모델에도 적용 가능하며, 필요한 전문가만 사용하므로 계산 비용이 절감됩니다.
- 성능 개선: 전문가가 특정 작업에 특화되어 있어 더 정교한 결과를 도출할 수 있습니다.
- MoE의 단점
- 복잡성: 게이팅 네트워크 설계와 전문가의 분배가 까다로울 수 있습니다.
- 통신 비용: 여러 전문가가 활성화되면 GPU 간 통신 비용이 늘어날 수 있습니다.
- 전문가 모델들
- 인공지능, 특히 기계 학습과 딥러닝에서 사용되는 개념으로, 여러 전문가 모델(expert models)을 조합하여 주어진 문제를 해결하는 접근 방식입니다.
Dense transformers
vs. Sparse Mixture of Experts(SMoE)
Mistral 7B
- Dense Transformer: 모든 토큰이 모델의 모든 파라미터를 거쳐 연산하는 방식으로, 높은 메모리와 연산 자원을 요구
- Multi-Query Attention 사용: 1K, 1V에 여러 개의 Q 있음(↔ multi head attention에서는 Q, K, V 값 같음).
- Sliding Window Attention 사용:
- 낮은 레이어에서는 짧은 범위의 이전 토큰에 집중, 깊은 레이어로 갈수록 더 많은 정보를 통합
- 각 토큰 위치에서 비교적 짧은 시간 안에 이전 토큰을 처리
- 나중 토큰은 earlier token position으로부터 정보를 얻음
-

- 새로운 방식은 아님
- transformer를 어떻게 만들었는가?
- basic configuration of mistral 7B(표)
- single transformer layer in Pytorch
- Mistral 8x7B : Mistral 7B보다 높은 성능과 효율을 제공하며, LLaMA 2 13B 수준의 성능을 5배 빠른 속도로 구현
-

Sparse Mixture of Experts(SMoE)
- 개념
- SMoE: 특정 토큰이 활성화된 일부 전문가만 통과하도록 설계
- 효율성 극대화, 대규모 모델 비용 문제 해결
- ex. Google의 Switch Transformer
- Switch Transformers: Scaling to Trillion Parameter Models with...
- 주요 아키텍쳐
- Mixture of Experts Layer
- 라우터로 입력 전송 → Gating Layer (which to route를 알려줌) → 특정 전문가가 process → individual이 결과를 통합하여 output으로 반환
- input = x, router = Wg, Gating wieghts = put the TopK out of soft m ax
- SMoE의 이점
- 성능 향상: 전문가 레이어(MLP)의 용량 확장으로 지식 저장 능력 향상
- 추론 효율성: 활성화된 파라미터 수가 적어 대규모 추론 시 비용 절감
- 다양한 언어 및 작업에서 뛰어난 성능: 특히 지식 기반 작업에서 두드러진 성과
- 도전 과제
- 로드 밸런싱: 추론 시 전문가들 간 작업 부하를 균등하게 분배하는 것이 중요.
- 해석 가능성: 각 전문가가 어떤 특징을 학습하는지 해석하기 어려움.
- 압축 및 최적화: 모델 크기를 줄이고 효율성을 극대화하는 연구가 필요.
- 이상적으로는 전문가 간 부하를 균등하게 분배하여 최적의 성능 달성

-

- Mixture of Experts Layer
- What does MoEfying MLPs(Multi-layer Perception) give you?
- Moefying = MLP(Multi-Layer Perceptron) 레이어를 Mixture of Experts (MoE) 구조로 변환하는 것을 의미
- 기존 MLP: Dense 모델에서 MLP는 입력 데이터 전체를 모든 파라미터로 처리하는 방식으로 작동. 모든 토큰이 동일한 계산 경로를 거침.
- MLP는 지식을 저장하고 attention이 알고리즘과 추론을 한다는게 일반적
- MoE-fying MLP: MLP 레이어를 여러 전문가로 구성된 구조로 변환하여, 입력 토큰이 게이팅 네트워크를 통해 가장 적합한 몇 개의 전문가에만 전달
- 효과
- 지식 용량 확장
- MLP 레이어를 기존 대비 더 넓게(wider) 확장할 수 있음. 예를 들어, 기존 MLP 대신 8개의 전문가를 추가하면, 각 전문가가 독립적으로 지식을 저장하므로 모델의 지식 저장 용량이 증가.
- 효율성
- 모든 파라미터를 활성화하지 않고 필요한 일부 전문가만 활성화하므로 연산 비용이 절감.
- 활성화된 파라미터 수는 모델 크기와 독립적으로 유지됨.
- 성능 향상
- MLP 레이어가 특정 데이터 패턴이나 도메인에 특화될 수 있어 지식 기반 작업에서 성능이 향상됨.
- 지식 용량 확장
- 결과
- Mixtral 8x7B 모델은 Mistral보다 좋은 성과를 보임
- Vertical access = performance, 가로축 = 파라미터
-

- MoE-fying Attention?
- 기존 Attention 구조: Q, K, V는 각각 고정된 Dense 매트릭스(W_q, W_k, W_v)를 사용하여 계산됨. 모든 토큰이 동일한 파라미터로 처리
- MoE-fying Attention:Q, K, V 매트리스를 switch layer로 바꾸어 입력 토큰에 따라 가장 적합한 전문가를 선택하고 계산에 활용함
- 게이팅 네트워크를 통한 라우팅
- MoE 구조에서 각 입력 토큰은 게이팅 네트워크를 통해 라우팅
- ex. Q, K, V 중 각 매트릭스가 활성화된 전문가를 거쳐 계산됨
- Sparse 구조
- 기존 Attention 레이어는 모든 매트릭스를 사용하지만, MoE 구조에서는 선택된 일부 전문가만 활성화되어 연산을 수행
- 이는 계산 효율성을 증가시키고 모델의 확장 가능성을 높임
- 추가적인 이슈: 안정성
- FP16(Floating Point 16) 정밀도로 MoE-fying Attention을 훈련할 경우, 수렴 문제(divergence)가 발생할 수 있음
- FP32(32-bit Floating Point)를 사용하면 안정성이 개선되지만, 계산 비용이 증가
Sparse Mixture of Experts(SMoE)
- Myth 1: Mixtral 8x7B에는 전문가 8명이 있다.
- 사실: 각 레이어에 8명의 전문가가 있지만, 이들은 순열적으로 동등(permutationally equivalent)
- 레이어마다 전문가들의 순서를 바꿔도 동일한 결과를 제공
- 실제로는 32개의 레이어 × 8명의 전문가로, 총 256명의 전문가가 있으며, 레이어 간에는 비교적 독립적
- Myth 2: Mixtral 8x7B는 56B(560억)개의 파라미터를 가진다.
- 활성화된 파라미터는 12.9B(129억)개에 불과
- Myth 3: 활성화된 파라미터의 수와 비용은 비례한다(cost~active parameters).
- Mixtral 8x7B는 LLaMA 2 13B보다 활성화된 파라미터가 적지만, 전문가 라우팅으로 인해 통신 비용 증가
- 활성화된 파라미터의 수가 비용에 정확히 비례하지는 않으며, 동일한 파라미터 수의 dense model Mixtral이 약간 더 높은 절대 비용 발생
- Research question: 추론 중 로드 밸런스를 어떻게 맞출 것인가? how to balance loads at inference time?
- 이상: 모든 전문가가 균등하게 부하를 처리하여 특정 전문가가 느려지거나 포화되지 않도록 해야 함
- 현실: 포화 상태가 아닌 이웃 전문가에게 작업을 분산시키고, 점차 부하를 채우는 방식
- Research Question: SMoE를 어떻게 압축(compress)할 것인가?
- Mixtral 8x7B를 4GB 이하로 압축할 수 있을까?
- MoE의 압축은 Dense Transformer와 다름
- Dense Transformer는 희소화(Sparsify)가 어렵지만, MoE는 더 효율적인 방법으로 희소화 가능
- ex. 비효율적인 파라미터를 제거하여 모델 크기 감소
- Tim Dettmers: MoE 모델을 효과적으로 압축하는 가능성 제안
Interpreting SMoEs
- Discrete gating signals in SMoEs
- Deep neural networks are traditionally very hard to interpret since weights and activations live in high-dimensional spaces.
- deep NN은 해석하기 어려움
- 게이팅 신호(Gating Signals)의 해석
- 기존 신경망의 어려움: 딥러닝 모델은 가중치와 활성화가 고차원 공간에서 작동하므로 해석하기 어려움
- Attention 해석 기회: Attention은 특정 토큰에 가중치가 어떻게 할당되는지 시각화 가능
- 그러나 Attention Head가 많아지면 해석이 복잡해지고 혼란스러움(messy)
- SMoE의 게이팅 레이어는 어떤 전문가가 어떤 토큰을 처리했는지를 명확히 알려줌
- Deep neural networks are traditionally very hard to interpret since weights and activations live in high-dimensional spaces.
- 전문가의 도메인 특화(domain specialization)
- Layer 0: 가장 얕은 레이어로, 원시 토큰(raw tokens)에 가까움
- 도메인 특화가 거의 없음
- Layer 31: DM Mathematics와 같은 특정 도메인 데이터에 주로 사용
- 특정 전문가들이 더 높은 도메인 특화 패턴을 보임
- Layer 0: 가장 얕은 레이어로, 원시 토큰(raw tokens)에 가까움
-

- 연속적인 토큰 처리 23:00
- 질문: 한 토큰이 특정 전문가로 라우팅되었다면, 다음 토큰도 동일한 전문가로 라우팅되는가?
- 분석 결과:
- Layer 15(중간 레이어): 동일한 전문가로 라우팅될 확률이 높음
- Layer 0과 Layer 31(얕은/깊은 레이어): 확률이 상대적으로 낮음
-

- Myth 4: 전문가가 도메인에 특화되어야 한다.
- 실제로는 모든 전문가가 fully engaged 되어야 효율이 극대화됨
- 언어도 매우 복잡하므로 특정 도메인에만 할당하는 것은 단순화된 접근
Treasure Hunt: 전문가 제거 실험
- 모든 레이어에서 특정 전문가를 제거하며 MMLU 점수(MMLU score) 변화를 관찰
- 세 번째 전문가를 제거하면 성능이 급격히 하락(collapse)
- 이는 특정 전문가가 특정 작업에서 중요한 역할을 할 수 있음을 시사
- Research question: 전문가들이 어떤 특징을 학습하고 있는지 어떻게 해석할 것인가?
- 전문가가 인간이 이해할 수 없는 매우 다른 개념을 학습할 가능성 존재
- 특징 공간(Subspace)을 어떻게 복구하고, 이해할 수 있을까?
결론
- SMoE는 희소성(sparsity)을 활용하여 더 많은 지식을 저장하고 추론 효율성을 높임
- 잘 훈련된 MoE는 효율적인 추론과 성능 향상이 가능
- 전문가 특화(expert specialization)는 생각만큼 단순하지 않으며, 더 많은 연구가 필요
- 아키텍처 설계와 해석 가능성에 대한 연구 기회가 무궁무진함
Q&A
Q. 왜 SMoE를 사용하는가 Dense 모델 대신 SMoE를 사용하는 이유는? (intensive models that have more knowledges in a confined scope)?
- Dense 모델
- 엣지 디바이스에서는 모든 매개변수를 활성화하지 않아도 되어 잠재력을 발휘
- 그러나 자원이 제한된 환경에서는 SMoE보다 부담이 적음
- SMoE
- 대규모 데이터 센터와 같이 고성능 환경에서는 추론 비용 대비 효율성이 더 뛰어남
- 특정 입력에 필요한 일부 전문가만 활성화하여 계산 자원을 효율적으로 활용
Q. 이미지 및 텍스트를 포함한 multimodal(visual) tasks fine-tuning 문제
- OpenAI의 ChatGPT, Google의 Gemini 등은 모델 가중치에 접근 권한이 없어 fine-tuning이 제한됨
- 그 결과 폐쇄형 모델에서는 Google이나 OpenAI에 의존해야 하므로 사용자 제어력이 낮음
- Open Source 모델은 가중치에 접근 가능하여 fine-tuning에 유리
Q. MoE는 성능 향상을 위해 feedforward 레이어를 어떻게 활용하는가?
- 계산 측면에서 performance가 가장 중요
- MoE는 MLP 레이어를 확장(ex. 8배)하여 각 레이어에 더 많은 지식을 저장 가능
- 게이팅 네트워크를 통해 선택적으로 일부 전문가만 활성화
- 불필요한 파라미터를 비활성화하여 계산 효율성을 증가
- Switch Transformer 논문 참고
- 추론 비용 감소와 성능 향상에 중점을 둠
Q. 전문가 수가 증가함에 따라 라우팅 및 통신 비용은 어떻게 증가(scale)하는가?
- 요인-전문가의 수, 각 전문가의 규모-에 따라서 병렬처리 방식이 달라짐
- 하나의 노드에 모두 들어가기 어려울 만큼의 전문가가 있다면
- 노드 간 통신 비용 증가
- GPU 간 토큰 라우팅에 따른 비용 발생
- 전문가 수와 크기가 커질수록 통신 비용이 비례적으로 증가
Q. 효율성의 관계는
- Dense 모델
- 엣지 디바이스에서 메모리 제약이 큰 경우 적합
- 상대적으로 단순한 아키텍처로 안정적인 성능 제공
- SMoE
- 대규모 데이터 처리 시 성능 대비 비용 효율성이 뛰어남
- 사용 사례에 따라 적합한 선택 필요
Q. MoE 모델이 특정 작업 전문가(domain-specific expert)보다 더 좋은 성과를 낼 수 있는가?
- 결론: 어려움
- 특정 작업에 특화된 전문가 모델은 지속적인 fine-tuning을 통해 성능을 최적화
- MoE는 일반적인 작업에서 성능이 좋지만 특정 도메인 작업에서 전문가 모델보다 뛰어나지 않을 가능성이 높음
Q. MLU가 early layer와 deep layer 모두에 있어야 하나? late fusion tends to work better
- 무작위 순서로 layer를 배치하는 경우에도 꽤 좋은 성과를 냄
- 이유는 정확히 알 수 없음
- 성능이 뛰어난 모델을 하고 싶다면 모든 계층에 동일한 아키텍처를 사용하는 게 ‘safe’한 방법 / optimizer architecture 찾는 방법도 있긴 함.
(이후 Q&A 생략)