learning/Lectures

[강의] CS25 Transformers United V4 4강: Demystifying Mixtral of Experts(Albert Jiang)

silhumin9 2025. 1. 22. 17:00
  • 강의 출처: https://youtu.be/RcJ1YXHLv5o?feature=shared
  • MoE 개념(from GPT)주요 특징
    1. 전문가 모델들
      • MoE는 여러 하위 모델(전문가)로 구성됩니다. 각 모델은 특정한 문제나 데이터 패턴에 전문화되어 있습니다.
      • 예를 들어, 하나의 전문가 모델은 언어 데이터를 잘 처리하고, 다른 모델은 이미지 데이터를 더 잘 처리할 수 있습니다.
    2. 게이팅 네트워크(Gating Network)
      • MoE의 핵심은 게이팅 메커니즘입니다. 게이팅 네트워크는 입력 데이터를 분석하여 어떤 전문가 모델이 해당 입력을 가장 잘 처리할 수 있는지 판단합니다.
      • 게이팅 네트워크는 "어떤 전문가가 활성화되어야 하는지"를 결정하는 역할을 합니다.
    3. 효율성
      • MoE는 모든 전문가를 동시에 사용하는 대신, 특정 입력에 맞는 소수의 전문가만 활성화하기 때문에 계산 효율성을 높일 수 있습니다.
      • 이는 대규모 모델을 더 적은 자원으로 효율적으로 실행하는 데 유리합니다.

    예시
    • 검색 엔진: 검색어에 따라 특정 전문가가 활성화되어 결과를 제공합니다. 예를 들어, 스포츠 관련 검색어는 스포츠 데이터를 다루는 전문가가 처리합니다.
    • 번역 모델: 문장 구조나 언어에 따라 특정 전문가를 활성화하여 더 정확한 번역을 제공합니다.

    MoE의 장점
    • 확장성: 대규모 데이터와 모델에도 적용 가능하며, 필요한 전문가만 사용하므로 계산 비용이 절감됩니다.
    • 성능 개선: 전문가가 특정 작업에 특화되어 있어 더 정교한 결과를 도출할 수 있습니다.
    • MoE의 단점
    • 복잡성: 게이팅 네트워크 설계와 전문가의 분배가 까다로울 수 있습니다.
    • 통신 비용: 여러 전문가가 활성화되면 GPU 간 통신 비용이 늘어날 수 있습니다.
    •  
  • 인공지능, 특히 기계 학습과 딥러닝에서 사용되는 개념으로, 여러 전문가 모델(expert models)을 조합하여 주어진 문제를 해결하는 접근 방식입니다.

 

Dense transformers

vs. Sparse Mixture of Experts(SMoE)

Mixtral of Experts

Mistral 7B

  • Dense Transformer: 모든 토큰이 모델의 모든 파라미터를 거쳐 연산하는 방식으로, 높은 메모리와 연산 자원을 요구
  • Multi-Query Attention 사용: 1K, 1V에 여러 개의 Q 있음(↔ multi head attention에서는 Q, K, V 값 같음).
  • Sliding Window Attention 사용:
    • 낮은 레이어에서는 짧은 범위의 이전 토큰에 집중, 깊은 레이어로 갈수록 더 많은 정보를 통합
    • 각 토큰 위치에서 비교적 짧은 시간 안에 이전 토큰을 처리
    • 나중 토큰은 earlier token position으로부터 정보를 얻음
    • 스크린샷 2025-01-21 오후 4.29.41.png
  • 새로운 방식은 아님
  • transformer를 어떻게 만들었는가?
    • basic configuration of mistral 7B(표)
    • single transformer layer in Pytorch
    • Mistral 8x7B : Mistral 7B보다 높은 성능과 효율을 제공하며, LLaMA 2 13B 수준의 성능을 5배 빠른 속도로 구현
    • 스크린샷 2025-01-21 오후 4.44.50.png

Sparse Mixture of Experts(SMoE)

  • 개념
  • 주요 아키텍쳐
    • 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)의 용량 확장으로 지식 저장 능력 향상
      • 추론 효율성: 활성화된 파라미터 수가 적어 대규모 추론 시 비용 절감
      • 다양한 언어 및 작업에서 뛰어난 성능: 특히 지식 기반 작업에서 두드러진 성과
    • 도전 과제
      • 로드 밸런싱: 추론 시 전문가들 간 작업 부하를 균등하게 분배하는 것이 중요.
      • 해석 가능성: 각 전문가가 어떤 특징을 학습하는지 해석하기 어려움.
      • 압축 및 최적화: 모델 크기를 줄이고 효율성을 극대화하는 연구가 필요.
      • 이상적으로는 전문가 간 부하를 균등하게 분배하여 최적의 성능 달성
      Outrageously Large Neural Networks: The Sparsely-Gated...
      스크린샷 2025-01-21 오후 4.50.36.png
    • 스크린샷 2025-01-21 오후 4.49.47.png
  • 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, 가로축 = 파라미터
      • 스크린샷 2025-01-21 오후 4.52.19.png
  • 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의 게이팅 레이어는 어떤 전문가가 어떤 토큰을 처리했는지를 명확히 알려줌
  • 전문가의 도메인 특화(domain specialization)
    • Layer 0: 가장 얕은 레이어로, 원시 토큰(raw tokens)에 가까움
      • 도메인 특화가 거의 없음
    • Layer 31: DM Mathematics와 같은 특정 도메인 데이터에 주로 사용
      • 특정 전문가들이 더 높은 도메인 특화 패턴을 보임
  • 스크린샷 2025-01-21 오후 5.20.45.png
  • 연속적인 토큰 처리 23:00
    • 질문: 한 토큰이 특정 전문가로 라우팅되었다면, 다음 토큰도 동일한 전문가로 라우팅되는가?
    • 분석 결과:
      • Layer 15(중간 레이어): 동일한 전문가로 라우팅될 확률이 높음
      • Layer 0과 Layer 31(얕은/깊은 레이어): 확률이 상대적으로 낮음
      • 스크린샷 2025-01-21 오후 5.23.14.png
  • Myth 4: 전문가가 도메인에 특화되어야 한다.
    • 실제로는 모든 전문가가 fully engaged 되어야 효율이 극대화됨
    • 언어도 매우 복잡하므로 특정 도메인에만 할당하는 것은 단순화된 접근

Treasure Hunt: 전문가 제거 실험

  • 모든 레이어에서 특정 전문가를 제거하며 MMLU 점수(MMLU score) 변화를 관찰
    • 세 번째 전문가를 제거하면 성능이 급격히 하락(collapse)
    • 이는 특정 전문가가 특정 작업에서 중요한 역할을 할 수 있음을 시사
  • Research question: 전문가들이 어떤 특징을 학습하고 있는지 어떻게 해석할 것인가?
    • 전문가가 인간이 이해할 수 없는 매우 다른 개념을 학습할 가능성 존재
    • 특징 공간(Subspace)을 어떻게 복구하고, 이해할 수 있을까?

결론

  1. SMoE는 희소성(sparsity)을 활용하여 더 많은 지식을 저장하고 추론 효율성을 높임
  2. 잘 훈련된 MoE는 효율적인 추론과 성능 향상이 가능
  3. 전문가 특화(expert specialization)는 생각만큼 단순하지 않으며, 더 많은 연구가 필요
  4. 아키텍처 설계와 해석 가능성에 대한 연구 기회가 무궁무진함

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 생략)