인공지능/논문 리뷰 or 진행

Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer - 논문 리뷰

이게될까 2024. 11. 10. 02:07
728x90
728x90

https://arxiv.org/abs/1701.06538

 

Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer

The capacity of a neural network to absorb information is limited by its number of parameters. Conditional computation, where parts of the network are active on a per-example basis, has been proposed in theory as a way of dramatically increasing model capa

arxiv.org

 

여기서는 모든 전문가를 다 연산하는 것이 아닌 특정 전문가만 선택해서 연산합니다.

그렇게 해서 모델의 크기가 크더라도 연산량을 줄이고, 성능을 향상하였습니다.

장점만 있는 것은 아니고 VRAM은 엄청 많이 먹고, fine-tuning이 힘들다는 것에 있습니다.

Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer - 논문 리뷰

 

ㅗㄷ

 

 

 

규모 언어 모델을 위한 스파스하게 게이트된 전문가 집합(Mixture-of-Experts, MoE) 레이어를 제안하여 계산 비용을 최소화하면서 모델 용량을 크게 확장하는 방법을 다룹니다. 

1. 문제 정의

기존 딥러닝 모델은 전체 네트워크가 모든 입력에 대해 작동하므로 모델 크기와 계산 비용이 함께 증가하게 됩니다. 이로 인해 데이터가 충분히 커도 모델 용량을 확대하는 데 한계가 있었습니다. 이를 해결하기 위해 선택적인 계산(conditional computation)을 통해 모델의 일부만 작동하게 하여 용량을 확장하는 방법이 제안되었지만, 성능과 구현상의 어려움이 존재했습니다.

2. 연구 목표

이 논문은 계산 비용을 낮추면서 모델의 용량을 대폭 확장하는 방법을 탐구합니다. 특히, 언어 모델링 및 기계 번역과 같은 대규모 데이터에 적합한 아키텍처로, 게이트 네트워크가 입력에 따라 일부 전문가(서브네트워크)를 선택하여 작동하게 하는 Sparsely-Gated Mixture-of-Experts (MoE) 레이어를 제안했습니다.

3. 제안한 방법

MoE 레이어는 여러 피드포워드 전문가 네트워크로 구성되며, 각각은 별도의 학습 가능한 가중치를 가집니다. MoE 레이어는 "노이즈가 추가된 상위-k 게이트(Noisy Top-K Gating)" 방식을 통해 특정 입력에 대해 일부 전문가만 작동하게 합니다. 이 방식은 게이트 네트워크가 활성화할 전문가 수를 제한하여 모델의 계산 효율을 높입니다.

  • 구조: MoE 레이어는 여러 전문가로 구성되며, 각 전문가는 별도의 가중치를 가진 피드포워드 네트워크로 설계됩니다.
  • 게이트 네트워크: 게이트 네트워크는 노이즈를 더해 각 입력에 대해 상위 k개의 전문가만 활성화합니다. 이 방식으로 각 입력마다 최적의 전문가 조합을 선택하게 됩니다.

4. 실험 및 결과

MoE 레이어를 기존의 LSTM 모델에 삽입하여 언어 모델링과 기계 번역 작업에서 성능을 평가했습니다.

  • 언어 모델링: 1억 단어 규모의 데이터셋을 사용한 언어 모델링에서, MoE 레이어를 포함한 모델은 기존 모델보다 낮은 복잡도를 보여 성능을 크게 향상시켰습니다. 예를 들어, MoE 레이어를 추가한 모델은 기존 최첨단 모델보다 약 24% 낮은 perplexity를 기록했습니다.
  • 기계 번역: WMT '14 영어-프랑스어 및 영어-독일어 데이터셋에서 BLEU 점수를 통해 MoE 모델의 성능을 평가했습니다. MoE를 적용한 모델은 BLEU 점수가 기존 Google Neural Machine Translation (GNMT)보다 1.34 및 1.12 높게 나타났습니다.

5. 한계점 및 개선 가능성

이 연구는 스파스하게 활성화된 전문가 시스템을 통해 모델 용량을 크게 확장할 수 있음을 입증했으나, 일부 한계가 존재합니다.

  • 과도한 전문가 수의 영향: 전문가 수가 너무 많아지면 과도한 스파시티로 인해 성능 저하가 발생할 수 있습니다.
  • 네트워크 대역폭 문제: 전문가 네트워크가 분산된 환경에서 병렬 처리할 때 네트워크 대역폭이 병목으로 작용할 수 있습니다.
  • 로드 균형 문제: 특정 전문가에 작업이 집중되는 경향이 있어, 이에 대한 균형을 맞추기 위한 추가 손실 함수가 필요했습니다.

이 논문의 접근 방식은 언어 모델링 및 번역과 같은 대규모 데이터가 필요한 작업에 매우 유망하며, 향후 조건부 계산을 이용한 다양한 응용 가능성을 열어주었습니다.

 

그럼 이 논문에서 사용한 Noisy Top-K Gating에서 자세하게 논문을 기반으로 설명해줘

논문에서 제안된 Noisy Top-K Gating 메커니즘은 MoE 레이어에서 효율적인 전문가 선택을 위해 설계되었습니다. 이 메커니즘은 입력 샘플마다 활성화할 상위 k개의 전문가만 선택하여 계산을 줄이고 성능을 높이는 데 기여합니다. 구체적으로 다음과 같은 단계로 구성됩니다:

1. 게이트 네트워크와 소프트맥스 함수의 기본 개념

기본적으로 MoE 레이어의 게이트 네트워크는 입력에 따라 전문가들의 가중치를 산출하며, 각 입력이 특정 전문가들만을 통과하게 합니다. 이를 위해 일반적으로 입력에 가중치 행렬 Wg를 곱하고 소프트맥스 함수를 적용해 활성화될 전문가들의 확률 분포를 얻습니다.

그러나 소프트맥스 기반 게이트는 모든 전문가를 일정하게 활성화하는 경향이 있어, 모델의 계산 비용이 증가하고, 특정 전문가에 작업이 집중되는 현상이 발생할 수 있습니다. 이를 개선하기 위해 Noisy Top-K Gating 방식을 도입했습니다.

2. 노이즈 추가와 Top-K 선택

Noisy Top-K Gating은 두 가지 주요 요소, 노이즈 추가 상위 k개 선택으로 이루어져 있습니다.

  1. 노이즈 추가: 입력 xx에 따라 계산된 H(x에 가우시안 노이즈를 추가하여, 게이트 네트워크의 각 전문가 활성화 값을 랜덤화합니다. 이 과정에서 추가되는 노이즈의 크기는 Wnoise 가중치 행렬에 따라 조절됩니다
    여기서, StandardNormal()은 평균 0, 분산 1의 정규 분포를 따르는 노이즈입니다. Softplus 함수는 소프트맥스와 유사하게 양수 범위로 값을 제한하면서도 연속성을 유지합니다.
  2. Top-K 선택: 위 과정에서 얻어진 H(x)의 각 요소 중 상위 k개만 남기고, 나머지는 -∞으로 설정하여 해당 값이 0으로 출력되도록 합니다. 이렇게 하면 선택된 상위 k개의 전문가만 활성화되며, 나머지 전문가들은 계산에서 제외됩니다.

이 과정에서 노이즈 추가는 각 전문가가 동일한 확률로 선택되도록 유도하며, 불균형한 부하 분배를 개선하는 데 기여합니다. 노이즈로 인해 일부 전문가에 대한 게이트 값이 확산되면서 균형이 유지되도록 하고, 모델 학습 중 각 전문가의 역할이 다양해질 수 있도록 돕습니다.

3. 학습 과정에서의 특성

Noisy Top-K Gating 방식은 부하 균형과 계산 절감을 동시에 목표로 하며, 손실 함수의 최적화 과정에서 게이트 네트워크 역시 역전파를 통해 학습됩니다. 상위 k 전문가에 대해 활성화 값이 결정되므로 이 값들은 게이트 네트워크의 가중치와 연관된 파라미터들에 대해 미분 가능합니다.

4. 장점 및 한계

  • 장점: 선택적인 전문가 활성화로 인해 전체 모델의 계산 효율성이 증가하며, 각 전문가의 활성화가 분산되므로 특정 전문가에 작업이 집중되는 현상을 방지합니다. 특히, 언어 모델링과 같이 대규모 데이터가 필요한 작업에서도 더 큰 모델 용량을 효율적으로 활용할 수 있습니다.
  • 한계: 게이트 네트워크의 출력이 불연속적이라서 이론적으로는 일부 불안정성이 발생할 가능성이 있지만, 실험에서는 문제를 거의 발견하지 않았습니다.

Noisy Top-K Gating은 MoE 레이어 내에서 계산량과 성능 균형을 맞추기 위한 핵심 메커니즘으로, 특히 대규모 모델에서의 계산 효율성을 획기적으로 높여줍니다.

 

그럼 많은 전문가를 만들어서 특정 조건에만 특정 전문가가 활성화되어 그 전문가가 특정 분야만 잘 하면 된다는 것인데 그럼 그 판단을 하는 게이트가 잘 못 학습되면 어찌 되는 거야?
gate와 export 동시에 학습하면 뭔가 문제가 생길 것 같은데

맞습니다. MoE 모델에서 게이트와 전문가가 동시에 학습되면, 게이트가 잘못된 결정을 내릴 경우 전체 모델의 성능에 영향을 미칠 수 있습니다. 특히 다음과 같은 문제가 발생할 가능성이 있습니다.

1. 게이트 네트워크의 잘못된 학습

게이트가 특정 전문가들을 부적절하게 선택하게 되면, 해당 입력이 최적의 전문가에게 전달되지 않아 성능이 떨어질 수 있습니다. 특히 게이트가 초기에 잘못된 선택을 반복하게 되면 특정 전문가에 학습 데이터가 지나치게 몰려 전문가 간 불균형이 심해지고, 이로 인해 일부 전문가만 과도하게 학습되어 과적합이 발생할 수 있습니다.

2. 전문가의 지나친 편향 또는 미학습

게이트가 특정 전문가를 지속적으로 활성화하지 않으면, 그 전문가들은 학습 데이터에서 충분한 피드백을 받지 못하고 미학습 상태로 남게 됩니다. 이는 결과적으로 모델이 다양한 입력에 대해 제대로 대응하지 못하게 만들어, 일부 전문가가 제대로 학습되지 않는 문제를 초래할 수 있습니다.

3. 전문가와 게이트의 상호 의존성

게이트와 전문가가 서로의 출력에 의존하여 학습을 진행하기 때문에, 동시에 학습될 때의 상호 의존성 문제가 발생할 수 있습니다. 즉, 게이트가 전문가의 출력에 적응하려 하고, 전문가가 게이트의 선택에 맞추려 하다 보니, 안정적인 학습이 어려울 수 있습니다. 이로 인해 최적화 과정에서 진동이 생기거나 로컬 미니마에 빠질 가능성이 높아집니다.

해결 방안

이러한 문제를 완화하기 위해 논문에서도 일부 균형 손실 함수를 추가해 각 전문가의 선택 확률이 일정 수준으로 유지되도록 유도하고, 초기에는 게이트의 출력을 균등하게 하여 학습 데이터가 전문가들에게 골고루 분배되도록 설정했습니다. 또한, 학습 초기에 게이트 네트워크를 고정하고 전문가들만 학습하거나, 이후 게이트 네트워크를 점진적으로 학습하는 점진적 학습 전략도 사용해볼 수 있습니다.

이런 방안들은 게이트 네트워크가 신뢰할 수 있는 초기 상태에서부터 전문가를 적절히 선택하도록 유도하여, 동시 학습의 부작용을 줄일 수 있습니다.

 

그럼 그 일부 균형 손실 함수에 대해 논문을 기반으로 자세하게 설명해줘

 

논문에서 제안된 균형 손실 함수는 각 전문가의 활성화가 균등하게 이루어지도록 하여 부하 균형을 맞추기 위해 고안되었습니다. 이를 통해 특정 전문가에 학습이 편중되지 않도록 조절하며, MoE 모델의 학습 효율성을 높이고 성능을 안정화하는 데 도움이 됩니다. 논문에서는 Importance Loss Load Loss라는 두 가지 주요 균형 손실 함수를 정의합니다.

1. Importance Loss

Importance Loss는 각 전문가가 전체 배치에서 얼마나 중요한 역할을 하는지 평가하여, 전문가들의 중요도가 균형을 이루도록 유도하는 손실 함수입니다.

  • 중요도 계산: Importance는 각 전문가가 배치 내에서 선택된 비율을 나타내며, 배치에서 각 전문가에 할당된 게이트 값의 합으로 정의됩니다.
    여기서 X는 배치 내의 입력들, G(x)는 입력 x에 대해 게이트 네트워크가 산출한 값입니다.
  • 손실 정의: Importance Loss는 중요도의 변동성(coefficient of variation)을 최소화하도록 설계됩니다. 즉, 각 전문가의 중요도가 비슷하도록 하는 손실 항으로 작동하며, 이를 통해 일부 전문가가 지나치게 많이 선택되는 상황을 방지합니다.
    여기서 wimportance는 손실 가중치, CV는 변동 계수(coefficient of variation)로, 중요도의 분산을 평균에 대한 비율로 측정하여 전문가들의 중요도가 일정하게 유지되도록 합니다.

2. Load Loss

Load Loss는 각 전문가에게 분배되는 입력 데이터의 수를 균형 있게 맞추기 위해 설계되었습니다. Importance Loss가 전문가들의 중요도를 조정했다면, Load Loss는 각 전문가가 실제로 처리하는 샘플의 수를 균등하게 만드는 데 초점을 맞춥니다.

  • 부하 계산: Load는 각 전문가에 대해 해당 배치의 입력 중 해당 전문가가 선택될 확률로 정의됩니다. 이 확률은 노이즈가 있는 게이트 값의 Top-K 선택에 의해 결정되며, 각 전문가가 선택될 확률을 정규 분포의 누적 분포 함수(CDF) Φ를 사용해 근사합니다.
    여기서 P(x,i)는 입력 x가 전문가 i를 활성화할 확률입니다. P(x,i)는 게이트 값 H(x)가 Top-K 안에 들어올 확률을 의미합니다.
  • 손실 정의: Load Loss는 전문가별 부하의 변동성을 줄이기 위해 설계되었으며, 변동 계수의 제곱을 사용해 특정 전문가에 입력이 몰리는 현상을 방지합니다.
    여기서 wload는 Load Loss의 가중치입니다. 이 항은 전문가가 불균형하게 부하를 받지 않도록 조정하여, 효율적인 분산 처리가 가능하도록 합니다.

3. 초기화와 균형 손실 적용 방법

논문에서는 모델 초기화 단계에서 Wg Wnoise를 0으로 설정하여 초기 게이트 출력이 모든 전문가에 대해 균등하게 분포되도록 합니다. 이렇게 하면 초기부터 부하가 균등하게 분배되어 전문가 간 불균형을 피할 수 있으며, 균형 손실 함수가 작동하면서 전문가 간 부하와 중요도를 점차 안정화합니다.

이와 같은 Importance Loss와 Load Loss는 전문가들이 고르게 선택될 수 있도록 하여 전체 모델이 다양한 입력에 대해 적절히 학습할 수 있게 돕습니다. 이를 통해 게이트 네트워크가 특정 전문가에만 편향되는 것을 방지하고, 전문가들이 다양한 역할을 수행할 수 있도록 유도합니다.

728x90