SkewAdam은 Mixture-of-Experts(MoE) 학습 메모리를 60% 이상 절감하면서도 정확도를 눈에 띄게 향상시켜, 개발자가 67.8억 개의 파라미터를 가진 MoE 모델을 단일 40GB GPU에 올릴 수 있게 해줍니다.
MoE 학습이 메모리 한계에 부딪히는 이유
Mixture-of-Experts 아키텍처는 밀집된 백본(dense backbone)을 유지하면서 각 입력을 "전문가(expert)" 서브 네트워크의 작은 하위 집합을 통해 전달합니다. 이를 통해 연산량의 비례적인 증가 없이 수십억 개의 파라미터로 확장 가능한 모델을 만들 수 있습니다. 실제로 대부분의 팀이 사용하는 AdamW 변형과 같은 옵티마이저가 GPU RAM의 대부분을 차지합니다. 67.8억 개의 파라미터를 가진 모델의 경우, 옵티마이저의 모멘텀(momentum)과 분산(variance) 텐서만으로도 약 50GB가 필요합니다. 여기에 활성화 함수 값(activations)과 모델 가중치(weights)를 더하면 피크 메모리는 81.4GB에 달하며, 이로 인해 멀티 GPU 설정이나 더 느린 학습 일정이 강제됩니다.
SkewAdam의 차별점
SkewAdam은 새로운 학습 규칙을 발명한 것이 아닙니다. 대신 Adam의 모멘트(moments)가 저장되는 위치를 재구성합니다.
- 밀집 백본(dense backbone)은 풀 프리시전(full-precision) 모멘텀을 유지하여 밀집 레이어에 필요한 부드러운 업데이트를 보존합니다.
- 전문가 뱅크(expert bank)는 분산의 인수분해된 근사치(factored approximation)를 저장하여 각 전문가를 위해 유지되는 데이터를 줄입니다.
- 어떤 전문가를 활성화할지 결정하는 라우터(router)는 정확한 2차 모멘트(second-moment) 추정치를 유지합니다.
이 세 가지 구성 요소를 별도의 "계층(tiers)"으로 취급함으로써, 옵티마이저는 중요도가 낮은 곳에서는 불필요한 정밀도를 제거하고 가장 중요한 곳에서는 정밀도를 유지합니다.
측정 가능한 영향
동일한 67.8억 개의 파라미터를 가진 MoE 모델을 SkewAdam으로 실행했을 때의 결과는 다음과 같습니다.
- 피크 GPU 메모리: 31.3GB (81.4GB에서 감소)
- 옵티마이저 상태 점유 공간(Optimizer-state footprint): 1.29GB (50GB에서 감소)
이렇게 줄어든 상태 값은 단일 40GB 가속기 안에 여유롭게 들어갑니다.
단순한 절감을 넘어선 정확도 향상
메모리 절감은 종종 모델의 품질을 저하시키지만, SkewAdam은 언어 모델의 표준 지표인 퍼플렉서티(perplexity)를 126.8(AdamW)에서 108.4로 개선합니다. 또한 동일한 작업에서 Muon(120.2)과 Lion(393.7)보다 뛰어난 성능을 보입니다. 저자들은 이러한 향상이 세 계층 모두에서 모멘텀을 보존한 덕분이라고 설명합니다. Adafactor와 같이 모멘텀을 완전히 제거하는 방식은 성능이 뒤처집니다.
남겨진 과제
SkewAdam의 결과는 67.8억 개의 파라미터를 가진 모델에서 입증되었습니다. 동일한 메모리 상태 비율이 모델 규모가 10배 더 크거나 언어 모델링 이외의 작업에서도 유지될지는 아직 불분명합니다.
주목해야 할 점
- 더 큰 규모의 MoE 구성(수백억 개의 파라미터)에 대한 벤치마크.
- 오픈 소스 프레임워크의 채택 및 인기 있는 학습 스크립트 포함 여부.
- 다양한 학습률 스케줄(learning-rate schedules) 하에서의 수렴 속도나 안정성과 같은 숨겨진 트레이드오프(trade-offs)에 대한 커뮤니티의 피드백.
출처: 옵티마이저의 설계와 실증적 결과를 상세히 설명한 개발자 포스트.
