https://arxiv.org/abs/2112.06905
MoE는 파라미터를 늘리면서도 추론 속도나 전력 사용을 줄였다!
1. 문제 정의
기존 언어 모델, 특히 GPT-3와 같은 대규모 모델들은 뛰어난 성능을 보였으나, 학습과 추론에 막대한 연산 자원과 에너지가 필요합니다. GLaM 모델은 이러한 연산 효율성 문제를 해결하고자 개발되었습니다. 특히, GLaM은 Mixture-of-Experts (MoE) 구조를 활용하여 모델의 전체 파라미터 수는 증가시키면서도 실제로 활성화되는 파라미터 수를 줄여 연산 비용을 줄이려는 목표를 가지고 있습니다.
2. 연구 목표
GLaM 모델의 목표는 GPT-3와 유사한 또는 그 이상의 성능을 달성하면서, 모델 학습과 추론 시의 비용을 줄이는 것입니다. 이를 통해 고성능을 유지하면서도 더 적은 에너지와 연산 비용으로 언어 모델의 대규모 확장을 가능하게 하는 방법을 모색합니다.
3. 방법론 및 모델 구조
GLaM은 Mixture-of-Experts (MoE)라는 희소 활성화 구조를 채택하여, 모델의 레이어에서 일부 전문가 (experts)만 활성화되도록 합니다. 각 MoE 레이어는 여러 개의 독립적인 피드포워드 네트워크 (FFN)로 구성되며, 게이팅(gating) 함수가 특정 입력 토큰에 맞는 두 개의 전문가를 선택하여 활성화시킵니다. 이를 통해, 총 1.2조 개의 파라미터 중 8% 정도만 활성화되며, 이로 인해 연산 비용이 절감됩니다.
또한 GLaM은 TPUs와 모델 병렬화 기법을 활용하여 대규모 모델 학습에 필요한 효율성을 극대화했으며, 학습 데이터로는 웹 페이지, 위키피디아, 대화 데이터 등을 포함해 고품질의 필터링된 텍스트를 사용했습니다.
4. 실험 및 결과
GLaM은 총 29개의 NLP 과제에서 테스트되었으며, 결과적으로 GPT-3보다 높은 평균 성능을 기록했습니다. 특히, zero-shot, one-shot, few-shot 설정 모두에서 GPT-3를 능가하는 성과를 보였으며, 다음과 같은 주요 성과를 달성했습니다:
- Zero-shot 설정에서 GPT-3보다 10% 향상된 성능
- One-shot 및 Few-shot 설정에서도 각각 6.3%, 4.4% 향상된 성능
- 전체적으로 6개 카테고리 중 5개에서 GPT-3보다 우수한 성과를 기록
또한 GLaM은 GPT-3보다 학습 시 1/3의 에너지를 소모하고, 추론 시 플롭(FLOP)은 절반에 불과했습니다.
5. 한계점
GLaM의 한계로는 모델 크기와 희소 활성화로 인해 대규모 하드웨어 리소스가 필요하다는 점입니다. 특히 MoE 구조로 인해 많은 장치에서 병렬 연산이 필요하고, 희소 활성화가 잘못된 전문가를 활성화할 경우 성능 저하가 발생할 수 있습니다. 따라서 게이트의 정확한 학습이 필수적입니다.
이 요약을 통해 GLaM이 기존 GPT-3와 같은 대규모 모델의 연산 효율성 문제를 MoE 구조를 활용하여 극복한 점을 확인할 수 있으며, 희소 모델의 활용 방안 및 한계점 분석이 향후 인공지능 해석 연구에서 중요한 지침이 될 것입니다.
그런데 이게 MoE랑 구조적 차이점은 없는데?
결국 비슷한 파라미터 크기로 GPT보다 좋고, 적은 리소스를 사용하는것이 목표 아니야?
맞습니다, GLaM은 기존 MoE와 구조적 차이점이 없고, 핵심 목표는 동일한 크기 내에서 GPT보다 효율적으로 성능을 향상시키는 것입니다. 즉, GLaM은 MoE의 희소 활성화 방식과 최적화된 파라미터 활용을 통해 비슷한 파라미터 규모에서 더 나은 성능과 적은 연산 비용을 달성하려고 한 모델입니다.
그럼 이 논문이 나오게 된 이유가 뭐야?
다른 특이한 방법이나 특출난 것이 있어?
이 논문이 나오게 된 배경에는 대규모 언어 모델의 성능과 효율성 사이의 균형을 찾고자 하는 필요성이 있습니다. GPT-3와 같은 대규모 언어 모델은 성능은 뛰어나지만, 막대한 연산 자원과 에너지 소비가 문제로 지적되었습니다. 이러한 비효율성을 해결하려는 접근이 GLaM의 핵심 동기입니다.
GLaM은 기존 GPT-3 대비 높은 성능을 유지하면서, 연산 비용과 에너지 사용을 크게 줄이는 것을 목표로 했습니다. 이를 위해 Mixture-of-Experts (MoE) 아키텍처를 적극적으로 활용하고, 학습 데이터의 품질 관리와 같은 요소에 중점을 두었는데, 이는 다음과 같은 몇 가지 특이한 방법을 통해 달성되었습니다.
- 효율적인 희소 활성화 (Sparse Activation) 사용:
- MoE 구조에서 필요한 전문가 집합만 활성화하는 방식으로, 실제로 연산에 참여하는 파라미터 수를 줄였습니다. 이를 통해 모델 크기와 성능 간의 균형을 맞추면서도 연산 비용을 절감할 수 있었습니다.
- 구체적으로는, 각 입력 토큰에 대해 두 개의 전문가만 활성화하는 방식을 채택해, 전체 파라미터의 일부만을 사용해 연산을 수행하는 구조입니다.
- 고품질 학습 데이터 확보:
- 단순히 많은 데이터를 사용하는 대신, 텍스트 품질 필터링을 통해 고품질 데이터만 사용하여 모델의 학습 효과를 높였습니다. 이를 통해 더 적은 데이터로도 GPT-3에 준하는 성능을 달성하려는 노력을 볼 수 있습니다.
- 텍스트 분류기를 통해 웹 데이터의 품질을 사전 평가하고, 높은 품질의 데이터만 선택해 학습에 사용하는 방식을 통해 학습 효율성을 높였습니다.
- 추가적인 최적화 기법 도입:
- 모델 병렬화를 통해 GLaM의 계산 효율성을 강화하고, 2D 분할 방식으로 파라미터를 효율적으로 관리했습니다. 이를 통해 모델 학습 시 연산 비용을 최소화했습니다.
- 또한, GLaM 모델은 TPU-v4와 같은 하드웨어를 최적화하여 연산 속도와 효율성을 향상시키려는 실용적인 접근을 채택했습니다.
결론적으로, GLaM의 특이점은 특정한 혁신적 기술보다, 효율성 개선에 집중한 구조적 최적화와 데이터 품질 관리를 통해 기존 MoE와 GPT 모델의 단점을 해결하고자 했다는 점입니다.
그럼 데이터를 어떻게 선별했는지, 추가적인 최적화 기법이 뭐였는지 알려줘
그리고 여기서도 학습할 땐 모든 전문가 집단이 다 학습에 참여한거지?
GLaM에서 데이터 선별과 최적화 기법, 그리고 전문가 집단의 학습 참여 방식은 다음과 같습니다.
1. 데이터 선별 방법
GLaM은 학습에 사용할 데이터를 품질 기준에 따라 엄선했습니다. 대규모 웹 데이터를 그대로 사용하지 않고, 다음과 같은 과정을 통해 고품질 텍스트만 포함하도록 필터링했습니다:
- 텍스트 품질 필터링 모델: GLaM은 품질이 높은 데이터를 걸러내기 위해, Wikipedia, 책, 뉴스 등 고품질 데이터셋을 참조하여 텍스트 품질을 분류하는 분류기를 사용했습니다. 웹 페이지의 경우, 이 분류기를 통해 저품질의 데이터를 걸러내고, 더 높은 품질의 웹 데이터를 포함시켰습니다.
- 파레토 분포를 적용해 필터링된 데이터에서도 일부 저품질 데이터를 소량 포함시켜, 편향을 방지하고자 했습니다.
- 최종적으로, Wikipedia, 대화 데이터, 포럼, 책, 뉴스 등으로 구성된 1.6조 개의 고품질 토큰 데이터로 학습 데이터셋을 구축했습니다.
2. 추가적인 최적화 기법
GLaM은 대규모 모델 학습의 효율성을 높이기 위해 다양한 최적화 기법을 도입했습니다:
- 2D 파라미터 분할 방식: 대규모 모델을 TPU에서 더 효율적으로 실행하기 위해 파라미터를 2차원으로 분할하여 관리했습니다. 이를 통해 하드웨어 사용을 최적화하고, 병렬 연산을 통해 연산 속도를 높였습니다.
- Adafactor 최적화 알고리즘 사용: 파라미터 업데이트에 Adafactor를 사용하여 메모리 사용량을 줄이고, 대규모 모델에서도 효율적으로 학습을 진행할 수 있었습니다.
- NaN/Inf 검출 및 재시작: 학습 도중 NaN 또는 무한대 값이 발생할 경우 해당 배치를 건너뛰거나 초기 체크포인트로 되돌아가 학습을 재개하여, 학습 과정에서의 불안정성을 최소화했습니다.
3. 전문가 집단의 학습 참여 방식
학습 중 모든 전문가 집단이 데이터에 노출되며, MoE 구조에서 각 토큰에 대해 가장 적합한 두 개의 전문가만 활성화됩니다. 하지만 훈련 과정에서는 전체 전문가 집단이 각기 다른 데이터로 학습에 참여하여, 모든 전문가들이 일정하게 훈련되도록 보장합니다.
그래서 이 논문을 통해 얻은 최종 결론과 중요한 점은?
이 논문의 최종 결론과 중요한 점은 GLaM 모델이 Mixture-of-Experts(MoE) 아키텍처를 통해 효율적으로 성능과 자원 절감을 달성했다는 것입니다. 이를 통해 얻은 핵심 결론과 주요 포인트는 다음과 같습니다:
- 성능과 효율성의 균형 달성:
- GLaM은 GPT-3보다 적은 연산 자원으로도 유사하거나 더 나은 성능을 달성했습니다. 특히 GLaM의 MoE 구조 덕분에 학습 시 에너지 소비를 GPT-3의 1/3 수준으로 줄이고, 추론 시 필요한 FLOP을 절반으로 줄이는 성과를 거두었습니다.
- 희소 활성화의 가능성 확인:
- 모든 파라미터를 활성화하지 않고, 필요한 전문가들만 활성화하여 성능을 유지하면서 자원을 절약할 수 있음을 보여주었습니다. 이 희소 활성화 방식이 앞으로 대규모 모델을 더욱 확장 가능한 방식으로 만들 수 있음을 증명했습니다.
- 고품질 데이터의 중요성:
- 단순히 많은 양의 데이터를 사용하는 대신, 고품질 데이터를 선택하고 이를 바탕으로 학습함으로써 더 적은 양의 데이터로도 높은 성능을 유지할 수 있음을 입증했습니다. 특히 NLP와 같은 언어 생성 및 이해 작업에서는 데이터의 품질이 중요하다는 점을 강조했습니다.
- MoE 모델의 일반화 가능성:
- MoE 모델이 NLP 외에도 다른 AI 응용 분야에서 연산 효율성과 성능을 동시에 추구하는 대규모 모델 확장에 적용될 가능성을 확인했습니다. 이로써 향후 대규모 언어 모델의 성장 경로로서 희소 모델의 가능성을 제시했습니다.
이 논문은 결국 MoE 기반 희소 모델이 대규모 언어 모델의 성능 향상과 효율성 향상을 위해 중요한 접근이라는 결론을 내렸으며, 앞으로 고성능을 유지하면서도 에너지와 자원 절감을 목표로 하는 모델 연구에 큰 방향성을 제시했습니다.
맞아 FLOP가 뭐야??
FLOP은 Floating Point Operation의 약자로, 부동소수점 연산을 의미합니다. 보통 연산량을 측정하는 단위로 사용되며, 머신 러닝과 같은 대규모 계산을 다루는 분야에서 초당 부동소수점 연산 횟수를 나타내는 FLOPS (Floating Point Operations Per Second)로 자주 표기됩니다.
FLOP은 모델의 연산량을 평가하는 기준으로, 모델이 얼마나 많은 계산을 수행해야 하는지를 나타내는 중요한 지표입니다. 따라서 FLOP 수가 높을수록 연산량이 많아지고, 더 많은 자원이 필요하게 됩니다.
GLaM 모델은 GPT-3보다 절반의 FLOP으로 유사한 성능을 보여, FLOP을 줄이면서도 효율적인 학습과 추론이 가능함을 보여준 것이 핵심 성과 중 하나입니다.