글을 시작하며

Turing Post Korea는 AI 개발자 뿐 아니라 AI 제품이나 서비스 기획자, AI에 대한 이해를 해야 하는 기업의 리더, AI에 관심있는 일반 대중들에게 다양한 관점의 AI 기사, 인터뷰 등을 제공하고 있는데요. AI 기술 개발 동향에 대한 최신 정보를 제공하는 섹션으로 ‘AI 101’ 시리즈를 시작합니다.

AI 영역의 새로운 연구 주제라든가 기술이 명확한 설명 없이 유행어가 되고 많은 사람들에게 회자되는 경우가 많이 있죠. 이런 복잡한 기술적 토픽에 대해, 기술자가 아니라 하더라도 큰 무리없이 이해할 수 있도록 간단한 인사이트를 드리는 것이 이 시리즈의 목표입니다.

이번 편에서는, 확장 가능한 AI 시스템을 구축하고 이해하는 방식을 새롭게 재편하고 있는, 흥미로운 프레임웍인 MoE (Mixture of Experts) 모델을 소개해 보려고 합니다. Mistral, Databricks의 DBRX, AI21 Labs의 Jamba, xAI의 Grok-1, Snowflake의 Arctic 등 업계를 선도하는 여러 모델에서 MoE를 활용하고 있습니다.

‘MoE’ 에피소드에서 다뤄보고자 하는 내용은 아래와 같습니다:

MoE의 출발점과 초기 아키텍처

MoE (Mixture-of-Experts)의 개념은 1988년 피츠버그에서 열린 ‘연결주의 여름학교 (Connectionist Summer School)’에서 Robert Jacobs와 Geoffrey Hinton이 ‘Expert’라고 당시 불렀던 모델 여러 개를 트레이닝 데이터의 하위 집합을 사용해서 각각 훈련하는 아이디어를 소개한 것으로 거슬러 올라갑니다. 이 하위 집합들은 원본 데이터셋을 하위 태스크 종류에 따라 나누어서 만들고, 따라서 각 모델은 전용의 하위 태스크에 특화된 모델이 됩니다. 추론 단계에서 ‘Gating’이라고 부르는 네트워크가 각 트레이닝 케이스에 어떤 모델 - 즉 전문가 - 를 사용할지 결정하게 되구요.

“The Meta-Pi Network: Building Distributed Knowledge Representations for Robust Multisource Pattern Recognition” 논문에 수록된 SID (The Source Identification) 네트워크 아키텍처. 각 모듈이 ‘전문가’이고 모듈의 출력이 ‘Gated Network’인 “SID Combinational Superstructure”에 의해서 합쳐지게 됨

두 사람의 아이디어는 이와 관련된 첫 번째 논문에서 자세히 연구되었지만, Jacobs와 Hinton이 구상했던 만큼의 효율성을 보여주진 못했습니다. 이후 1991년에 Jacobs와 Hinton은 MIT의 Michael Jordan (농구의 황제 마이클 조단 아닙니다ㅎㅎ), Toronto 대학교의 Steven Nowlan과 함께 “Adaptive Mixtures of Local Experts”라는 논문에서 원래 아이디어의 개선방안을 제시하는데, 이 논문이 바로 현대적인 MoE 아키텍처의 원조라고 일컬어지고 있습니다.

이 논문에서는 Expert (전문가 모델) 간의 경쟁을 촉진해서 제대로 각자의 역할이 전문화될 수 있도록 하는 오차 함수 (Error Function)을 제안했는데요. 바로 밑의 그림에서 “Stochastic One-out-of-n Selector”라고 표시된 이 함수는 각 전문가 모델의 결과물을 선형 조합 (전문가 모델이 내놓은 출력의 가중치 합)하는 대신, 각각의 특정 입력 케이스에 대해 하나의 전문가 모델을 선택하여 활성화합니다. 이 방식으로 여러 전문가 모델의 응답이 직접적으로 연결되는 것을 막고 각 전문가 모델이 고유한 하위 작업을 말 그대로 ‘전문적으로’ 수행하도록 합니다. 그래서 각 ‘전문가 모델’이 ‘Local’하다고 표현하는 것이구요.

“Adaptive Mixtures of Local Experts” 논문에서 제안된 MoE 아키텍처의 개념도. 그림에서 보는 바와 같이, 각각의 케이스에 어떤 전문가 모델이 사용될지를 Stochastic Selector가 최종 결정하게 되는데, 이 점이 ‘전문가 모델의 가중치 합’을 제안했던 이전 논문과의 핵심적 차이점임

MoE의 ‘모듈형 아키텍처’가 단일 신경망을 사용하는 것보다 나은 이유

1991년, Jacobs, Jordan, Barto 세 연구자는 모듈형 아키텍처의 장점을 다음과 같이 이야기했습니다:

  • Function Decomposition (기능의 전문화): 모듈형 시스템은 복잡한 태스크를 간단한 부분들로 나누고, 각 부분은 전문화된 하위 네트워크에서 처리하기 때문에 더 빠르고 집중적인 학습이 가능합니다.

  • Generalization (보다 나은 일반화): 수행해야 하는 작업에 잘 맞도록 네트워크를 설계할 수 있어서, 트레이닝 데이터를 벗어나는 새로운 시나리오에도 잘 대응할 수 있습니다.

  • Interpretability (해석 가능성 제고): 모듈형 아키텍처는 태스크별로 이해와 분석이 비교적 용이한 Representation을 만들어냅니다.

  • Efficiency (효율성 개선): 네트워크 전반에 걸쳐 계산 작업을 분산하기 때문에, 복잡하고 고차원적인 공간을 효율적으로 다룰 수 있습니다.

  • Localized Processing (지역화된 처리): 모듈형 시스템은 계산의 효율성을 최적화하고 생물학적 프로세싱 (Biological Processing)의 장점을 잘 모방할 수 있습니다.

MoE와 딥러닝 (MoE + 조건부 계산/Conditional Computation) - 핵심적인 아이디어는 무엇인가?

2017년, Noam Shazeer, Quoc Le, Geoffrey Hinton, Jeff Dean 등을 포함한 "Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer” 논문 저자들은 MoE 개념을 NLP 영역에 적용했는데, 계산 효율성은 아주 약간만 떨어지는데도 불구하고 모델의 용량 (Model Capacity)1을 1,000배 이상 개선하는 결과를 보여주었습니다.

“When datasets are sufficiently large, increasing the capacity (number of parameters) of neural networks can give much better prediction accuracy.

“Outrageously Large Neural Networks” 논문의 MoE 계층 이미지

이 논문에서 보여준 핵심적인 아이디어는 ‘Sparsely-Gated Mixture-of-Experts (MoE) Layer’입니다. ‘Sparse’라는 말은 ‘조건부 계산 (Conditional Computation)’이란 말과 맥락이 닿아 있습니다. 일반적으로 딥러닝 모델에서는 모든 파라미터가 모든 입력에 대해 사용되지만, ‘조건부 계산’방법을 통해서 전체 시스템의 일부분만 실행하게 되고, 이런 방식으로 계산 비용을 증가시키지 않고도 모델의 용량, 크기를 확장할 수 있어서 각 MoE 계층에서 수많은 전문가 네트워크를 사용할 수 있습니다. 이런 방법은 2013년 두 편의 논문에서 제안되었는데요:

그렇지만, ‘조건부 계산’의 잠재력을 실현하기 위해 MoE를 사용한 "Outrageously Large Neural Networks 논문이 발표되기 전까지, 이 개념은 이론적인 수준에 머물러 있었다고 할 수 있습니다.

이 개념들에 대해서 더 깊은 기술적인 내용을 알고 싶으시다면, Hugging Face의 엔지니어들이 작성한 글을 한 번 읽어보시기를 추천드립니다. 아래에 원래 MoE와 비교했을 때 이 새로운 논문의 새로운 아이디어를 정리해 보았습니다.

  • Sparsity in gating (조건부 계산): Sparsely-gated MoE는 전문가 네트워크들 중 일부만을 활성화하는 게이팅 메커니즘을 사용하고, 따라서 입력 당 소수의 전문가들만 평가하면 되기 때문에 훨씬 계산 효율성이 높은 모델을 만들 수 있습니다.

  • Scale of experts (전문가 네트워크의 규모): 기존 MoE는 상대적으로 적은 수의 전문가 네트워크만 가능했지만, Sparsely-gated MoE는 이 개념을 수천, 수만의 전문가 네트워크로 확장해서 계산 비용이 선형적으로 증가하지 않고서도 엄청난 규모의 모델 용량을 구현할 수 있습니다.

  • 딥러닝 아키텍처와의 통합: Sparsely-gated MoE는 최신의 딥러닝 아키텍처와 통합할 수 있도록 특별히 설계되었습니다. 예를 들어, Deep LSTM 네트워크의 계층들 사이와 같이 더 큰 신경망 안에 내장되는 경우가 많습니다.

  • 효율성과 확장성: Sparsely-gated MoE는 대규모 네트워크 처리에 중요한 배치 사이즈 관리, 다중 GPU에 대한 연산작업 분배 등 효율성과 확장성 문제를 해결하는 방향으로 설계되어 있습니다.

MoE + Transformer, 그리고 갑작스러운 폭발적 관심

“Outrageously Large Neural Networks” 논문은 Sparsity (희소성) 개념을 통해서 ‘모델 용량을 확장하는 MoE 계층의 효과’를 입증하는데 중추적인 역할을 했습니다. 그리고, MoE를 사용하여 Transformer를 확장한 Google의 실험들 - 이 실험들 모두에 Noam Shazeer가 참여했습니다 - 은 그 한계를 더욱 넓혔다고 볼 수 있습니다:

  • 2020년 GShard: 600억 개의 매개변수 이상으로 모델을 확장했습니다

  • 2021년 Switch Transformer: 1조 6천억 개의 파라미터를 달성해서 초대형 작업을 처리할 수 있는 잠재력을 보여주었습니다

  • 2022년 GLaM: GPT-3보다 약 7배 큰 1조 2천억 개의 파라미터를 가진 GLaM을 대표로 하는 새로운 언어모델 제품군을 만들었는데, GPT-3 대비 트레이닝에 필요한 에너지는 3분의 1, 추론에 필요한 연산 FLOPS는 절반 수준이면서도 29개의 NLP 작업에서 Zero-shot, One-shot, Few-shot 성능 모두 전반적으로 나은 성능을 보여주는 것으로 보고됩니다.

위 Switch Transformer의 인코더 블록 다이어그램에서 보는 바와 같이, MoE는 Transformer
아키텍처의 FFL (Feed Forward 계층)에 통합될 수 있다

한동안, MoE에 대한 관심은 생성AI 분야의 다른 엄청난 발전들에 가려져 있었는데요. 그렇지만 항상 그렇듯이 대중들이 더 반짝이는 다른 장식품에 매료되어 있는 동안, 연구자들은 MoE에 대해 지속적으로 관심을 가지고 있었죠.

그러다가 2023년 6월, 보안 전문가이자 기업가인 George Hotz가 ‘GPT-4는 하나의 단일 모델이 아니라 7개의 전문가 네트워크가 각각 220억 개의 파라미터를 가진 혼합형 모델’이라는 사실을 유출했고, PyTorch의 공동개발자 Soumith Chintala, Microsoft Bing AI 리더 Mikhail Parakhin도 이에 대해 Twitter에 글을 포스팅했습니다.

이것이 Mistral AI에 대한 힌트였는지 아니면 단순한 우연의 일치였는지는 알 수 없지만, 반년 후 이들은 MoE 아키텍처에 대한 관심을 다시금 불러일으키면서 과감하게 Mixtral 8X7B 모델을 출시했습니다. 2023년 말에는 이 모델을 마그넷 링크를 통해서 공개했구요.

이어서 다른 회사들도 아래와 같이 자체적으로 MoE를 지원하는 모델을 도입하는 트렌드가 촉발되었습니다:

  • Databricks의 DBRX: 새로운 SOTA 개방형 LLM

  • AI21 Labs의 Jamba: 하이브리드 Transformer-Mamba 언어모델

  • xAI의 Grok-1

  • Snowflake의 Arctic

주목할 것은, 이 모델들 모두가 ‘개방형 (Open)’이라는 점인데, 영리를 추구하는 사기업들에서도 생성 AI 전략과 관련하여 나타나는 새로운 경향을 반영한다고 생각합니다.

맺으며

MoE (Mixture-of-Experts) 개념을 통해서 흥미로운 모델이 많이 등장했고, 앞으로도 더 많은 모델들이 이 개념에 기반하여 나오리라고 생각합니다. 기술적인 세부 사항, 또 아직 MoE 영역에서 개선해야 할 영역 등에 대해 궁금하시면 아래에 정리된 추가 리소스 목록을 한 번 살펴보시기 바랍니다.

읽어주셔서 감사합니다. 친구와 동료 분들에게도 뉴스레터 추천해 주세요!

보너스: MoE 관련 추가 리소스

꼭 읽어보시면 좋은 글:

튜토리얼:

연구 논문:

1 머신 러닝에서, 모델의 용량 (Model Capacity)은 ‘데이터로부터 다양한 패턴과 복잡성을 더 세밀하게 파악해 내는 능력’을 뜻합니다. 결국 트레이닝 데이터로부터 모델이 얼마나 많은 정보를 얻어낼 수 있느냐 하는 뜻입니다.

Reply

Avatar

or to participate

Keep Reading