LLM 학습의 Optimizer 심층 비교 분석
지난 10년간 딥러닝, 특히 대규모 언어 모델(LLM) 학습의 세계는 'Adam'이라는 이름의 옵티마이저가 지배해왔다. 2014년 Diederik P. Kingma와 Jimmy Ba에 의해 제안된 Adam과 그 변형인 AdamW는 탁월한 성능과 사용 편의성을 바탕으로 사실상 업계 표준으로 자리매김했다.
그러나 인공지능 모델의 규모가 수천억, 나아가 조(Trillion) 단위 파라미터로 기하급수적으로 확장되면서, Adam이 가진 근본적인 한계들이 수면 위로 드러나기 시작했다. 대표적으로 파라미터마다 2개의 상태(1차, 2차 모멘텀)를 저장해야 하는 메모리 비효율성, 그리고 제한된 방향으로만 업데이트가 치우치는 토큰 효율성 저하 문제가 그것이다.
이러한 상황 속에서 2025년 7월, Moonshot AI는 1조 4백억 개의 파라미터를 가진 초거대 모델 'Kimi K2'를 발표하며 LLM 엔지니어링 커뮤니티에 거대한 파장을 일으켰다. 놀라운 성능보다 더 주목받은 것은 바로 학습 과정에 사용된 'MuonClip'이라는 생소한 이름의 옵티마이저였다. Moonshot AI는 Kimi K2 기술 보고서 를 통해 MuonClip이 기존의 AdamW 대비 월등한 토큰 효율성과 학습 안정성을 보였으며, 15.5조 토큰이라는 방대한 데이터를 학습하는 동안 단 한 번의 손실 스파이크(loss spike)도 없이 안정적으로 학습을 완료했다고 밝혔다. 이는 Adam의 시대에 던져진 강력한 도전장이었다.
Kimi K2와 DeepSeek V3/R1의 아키텍처 비교. Kimi K2는 더 적은 어텐션 헤드와 더 많은 전문가(MoE)를 사용하는 구조적 특징을 가짐 (이미지 출처: Sebastian Raschka)
이 글은 LLM 구현 엔지니어의 관점에서, 지난 10년간 '왕좌'를 지켜온 Adam/AdamW와 새 로운 '도전자' MuonClip을 수학적 원리부터 실제 적용까지 철저하게 파헤쳐 비교 분석하는 것을 목표로 한다. 단순히 개념을 나열하는 것을 넘어, "왜 MuonClip이 LLM 학습에 특화 되었는가?"라는 근본적인 질문에 대한 명확한 답을 제시하고, 독자들이 자신의 프로젝트 에 어떤 옵티마이저를 선택해야 할지에 대한 실용적인 가이드를 제공하고자 한다. 이제, 최적화 알고리즘의 새로운 시대를 여는 여정을 함께 시작해보자.
Adam의 혁신을 이해하기 위해서는 먼저 그 이전의 옵티마이저들이 어떤 문제를 해결하기 위해 노력해왔는지, 그 진화의 계보를 따라가 볼 필요가 있다. 모든 것은 가장 단순한 아이디어, '경사 하강법'에서 시작되었다.
경사 하강법은 모델의 손실 함수(Loss Function) 값을 최소화하기 위해 파라미터를 업데이트하는 가장 기본적인 방법이다. 손실 함수는 모델이 얼마나 예측을 못하는지를 나타내는 '성적표'와 같으며, 이 성적표의 점수를 가장 낮추는 것이 목표다.
경사 하강법의 핵심 아이디어는 '현재 위치에서 가장 가파른 내리막길로 한 걸음 내딛는 것'이다. 이 '가장 가파른 내리막길의 방향'이 바로 그래디언트(gradient)이다.
가장 원시적인 형태의 경사 하강법은 전체 데이터셋을 사용하여 그래디언트를 한 번 계산하는 배치 경사 하강법(Batch Gradient Descent)이다.
하지만 데이터가 수백만, 수십억 개에 달하는 현대 딥러닝에서는 계산량이 너무 많아 비현실적이다. 그래서 등장한 것이 확률적 경사 하강법(SGD)이다. SGD는 전체 데이터가 아닌, 무작위로 추출한 일부 데이터(미니배치, mini-batch)에 대해서만 그래디언트를 계산하고 파라미터를 업데이트한다. 이는 마치 눈을 가리고 산을 내려가는 것에 비유할 수 있다. 전체 지형을 보는 대신, 발밑의 경사만 느끼고 한 걸음씩 내딛는 방식이다.
하지만 이 방식은 명백한 한계를 가진다. 학습 과정이 매우 불안정하여 심하게 덜덜 떨며 (진동, oscillation) 나아가고, 운이 나쁘면 넓고 평평한 안장점(saddle point)이나 움푹 파인 지역 최솟값(local minima)에 빠져 더 이상 내려가지 못할 수 있다.
SGD의 불안정한 움직임을 개선하기 위해 등장한 첫 번째 아이디어는 '관성(Momentum)'이다. 이는 물리학에서 영감을 얻은 개념으로, 언덕을 굴러 내려오는 공에 비유할 수 있다. 공은 현재 경사면의 방향뿐만 아니라, 이전에 굴러오던 속도(관성)를 유지하려는 성질이 있다. 이 관성 덕분에 공은 작은 웅덩이(local minima)를 쉽게 뛰어넘고, 전체적인 내리막 방향으로 더 빠르고 부드럽게 굴러갈 수 있다.
수학적으로 모멘텀은 과거 그래디언트들의 지수 이동 평균(exponentially weighted moving average)을 계산하여 현재의 업데이트 방향에 더해주는 방식으로 구현된다. 이는 그래디언트의 방향이 자주 바뀌는 차원에서는 업데이트를 감쇠시키고, 일관된 방향을 유지하는 차원에서는 업데이트를 가속하는 효과를 낳는다.
모멘텀이 '방향'에 관한 개선이었다면, '보폭(학습률, learning rate)'에 관한 개선도 이루어졌다. 모든 파라미터에 동일한 보폭을 적용하는 것은 비효율적이다. 어떤 파라미터는 이미 최적점에 가까워져서 세밀하게 움직여야 하고, 어떤 파라미터는 아직 멀어서 성큼성큼 움직여야 한다. 여기서 '적응형 학습률(Adaptive Learning Rate)'이라는 개념이 등장했다.
AdaGrad (Adaptive Gradient)는 "많이 변한 파라미터는 보폭을 줄이고, 적게 변한 파라미터는 보폭을 늘리자"는 아이디어를 구현했다. 파라미터가 업데이트된 총량(그래디언트 제곱의 합)을 기록하여, 이 값이 큰 파라미터의 학습률은 작게, 작은 파라미터의 학습률은 크게 조절했다. 하지만 치명적인 단점이 있었는데, 학습이 진행될수록 모든 파라미터의 그래디언트 제곱 합이 계속 커져서 결국 학습률이 0에 수렴해 학습이 멈춰버리는 문제가 있었다.
RMSProp (Root Mean Square Propagation)은 AdaGrad의 학습 중단 문제를 해결하기 위해 제안되었다. 제프리 힌튼이 강의 중에 아이디어로 제시한 것으로 유명하다. RMSProp은 거의 모든 그래디언트 제곱을 똑같이 더하는 대신, 최근 그래디언트 정보에 더 큰 가중치를 주는 지수 이동 평균을 사용했다. 이로써 학습률이 0으로 소멸하는 것을 방지하고 안정적인 학습을 가능하게 했다.
Adam 옵티마이저는 앞서 설명한 두 가지 위대한 진화, 즉 '관성'을 다루는 Momentum과 '적응형 보폭'을 다루는 RMSProp의 핵심 아이디어를 하나로 합친, 당시로서는 완전체에 가까운 옵티마이저였다. Adam은 이름 그대로 적응형 모멘트 추정(Adaptive Moment Estimation)을 통해 각 파라미터마다 개별적인 학습률을 계산하여 효율적이고 빠른 학습을 가능하게 했다.
Adam의 작동 방식을 이해하기 위해 핵심 수식을 단계별로 살펴보자. LLM 엔지니어라면 이 수식들이 코드에서 어떻게 구현되는지 상상하며 보는 것이 도움이 될 것이다.
첫 번째 단계는 Momentum과 유사하게 과거 그래디언트들의 평균적인 방향, 즉 '관성'을 계산하는 것이다. 이를 1차 모멘텀(mean)이라고 부른다.
m_t = β₁ * m_{t-1} + (1 - β₁) * g_t
m_t : 현재 스텝(t)의 1차 모멘텀
m_{t-1} : 바로 이전 스텝의 1차 모멘텀
g_t : 현재 스텝의 그래디언트 (현재 위치의 내리막 방향)
β₁ : 1차 모멘텀의 감쇠율(decay rate). 보통 0.9를 사용. 과거의 관성을 얼마나 신뢰할지를 결정하는 값이다.
두 번째 단계는 RMSProp과 유사하게 그래디언트의 변동성, 즉 '보폭'을 얼마나 조심스럽게 내디뎌야 할지를 계산하는 것이다. 이를 위해 그래디언트의 제곱값의 평균을 사용하며, 이를 2차 모멘텀(uncentered variance)이라고 부른다.
v_t = β₂ * v_{t-1} + (1 - β₂) * g_t²
v_t : 현재 스텝(t)의 2차 모멘텀
v_{t-1} : 바로 이전 스텝의 2차 모멘텀
g_t^2 : 현재 그래디언트의 제곱. 변화량의 크기를 나타낸다.
β₂: 2차의 감쇠율. 보통 0.999를 사용. 과거의 '길 험난함'을 얼마나 오래 기억할지를 결정한다.
여기서 t는 현재 스텝의 횟수다. 학습 초반(t가 작을 때)에는 분모가 1보다 작아져서 m_t와 v_t를 키워주는 효과가 있고, 학습이 충분히 진행되면(t가 커지면) 분모가 1에 가까워져 보정 효과가 거의 사라진다.
마지막으로, 보정된 1차, 2차 모멘텀을 사용하여 최종적으로 파라미터를 업데이트한다.
θ : 모델의 파라미터(가중치)
η : 학습률(learning rate). 전체 업데이트 강도를 조절하는 중요한 하이퍼파라미터.
ε : 분모가 0이 되는 것을 방지하기 위한 아주 작은 값(e.g., 1e-8).
이 수식의 직관적인 의미는 다음과 같다:
(다음 위치) = (현재 위치) - (학습 강도) * (평균적인 방향) / (평균적인 변화량).
즉, 일관된 방향(\hat{m}_t가 큼)으로 움직였다면 더 빠르게, 변화가 심하고 불안정했다면((\hat{v}_t)가 큼) 더 조심스럽게 움직이는, 매우 지능적인 업데이트 방식이다.
Adam은 대부분의 경우에 잘 작동하는 강력한 옵티마이저였지만, 대규모 모델 학습에서 일반화(generalization) 성능, 즉 학습 데이터뿐만 아니라 새로운 데이터에서도 좋은 성능을 내는 능력이 부족하다는 지적이 있었다. 이 문제의 핵심에는 '가중치 감소(Weight Decay)'를 처리하는 방식이 있었다.
가중치 감소는 모델이 학습 데이터에 너무 과하게 맞춰지는 과적합(overfitting)을 방지하기 위한 대표적인 정규화(regularization) 기법이다. 손실 함수에 파라미터의 크기에 비례하는 벌칙(penalty) 항을 추가하여, 모델이 가능한 한 작은 가중치 값을 갖도록 유도한다. 이는 더 단순하고 부드러운 결정 경계를 만들어 일반화 성능을 높이는 효과가 있다. 일반적으로 L2 정규화와 동일한 효과를 내도록 구현된다.
기존의 많은 딥러닝 프레임워크에서 Adam에 가중치 감소를 적용할 때, L2 정규화 항을 손실 함수에 더하는 방식으로 구현했다. 이는 그래디언트를 계산할 때 g_t ← g_t + λθ_{t-1} 와 같이 원래 그래디언트에 가중치 감소 항((\lambda \theta_{t-1}))이 더해지는 결과를 낳는다. 문제는 이 더해진 그래디언트가 Adam의 1차, 2차 모멘텀((m_t), (v_t)) 계산에 그대로 포함된다는 점이다.
특히 2차 모멘텀 (v_t)는 그래디언트의 제곱에 비례하므로, 가중치가 큰 파라미터는 가중치 감소 항 때문에 (v_t) 값이 커지게 된다. Adam의 업데이트 규칙에 따라 (v_t)가 커지면 해당 파라미터의 유효 학습률(effective learning rate)은 작아진다. 결과적으로, 정규화가 많이 필요한(가중치가 큰) 파라미터일수록 오히려 정규화 효과가 약해지는 역설적인 상황이 발생한다. 학습률과 가중치 감소가 서로의 발목을 잡는 셈이다.
Ilya Loshchilov와 Frank Hutter는 2017년 논문 "Decoupled Weight Decay Regularization"에서 이 문제를 해결할 간단하면서도 강력한 아이디어를 제시했다. 바로 가중치 감소를 그래디언트 업데이트 단계에서 완전히 분리(decouple)하는 것이다.
AdamW의 업데이트 방식은 다음과 같다:
먼저, 순수한 그래디언트(가중치 감소 항이 없는)만을 사용하여 Adam의 업데이트 값(Adam_update)을 계산한다.
계산된 Adam 업데이트를 적용하여 파라미터를 1차로 업데이트한다.
그 후, 가중치 감소를 별도의 단계로 파라미터에 직접 적용한다.
이 간단한 분리를 통해 가중치 감소는 더 이상 Adam의 적응형 학습률 메커니즘에 영향을 주지 않고, 독립적으로 자신의 역할을 수행하게 된다. 이는 학습률과 가중치 감소 하이퍼파라미터를 더 쉽게 튜닝할 수 있게 하고, 특히 Transformer와 같은 대규모 모델에서 훨씬 더 나은 일반화 성능과 안정적인 학습을 가져왔다. 이러한 이유로 AdamW는 현재 대부분의 LLM 연구 및 개발에서 사실상의 표준(de facto standard) 옵티마이저로 사용되고 있다.
AdamW가 LLM 학습의 왕좌를 굳건히 지키고 있는 동안, 모델의 규모는 상상을 초월하는 속도로 커져갔다. 조 단위 파라미터 모델이 등장하면서 AdamW가 가진 근본적인 한계, 즉 메모리와 계산 효율성 문제가 다시금 중요한 과제로 떠올랐다. 이러한 배경 속에서 완전히 다른 철학을 가진 옵티마이저, Muon이 등장했다.
Muon을 이해하기 전에 AdamW가 대규모 모델에서 어떤 비효율을 보이는지 다시 한번 짚어볼 필요가 있다.
메모리 비효율성:
AdamW는 각 파라미터에 대해 1차 모멘텀(m_t)과 2차 모멘텀(v_t)이라는 두 개의 상태 값을 저장해야 한다.
파라미터가 32비트 부동소수점(FP32)이라면, 파라미터 하나당 4바이트 * 3 = 12바이트의 메모리가 필요하다. Google의 5400억 파라미터 PaLM 모델의 경우, AdamW의 상태 값을 저장하는 데에만 50개 이상의 GPU가 필요할 정도로 메모리 부담이 크다.
저차원 업데이트 (Low-Rank Updates):
더 근본적인 문제는 AdamW의 업데이트 방식에 있다. AdamW는 그래디언트의 크기가 큰, 소수의 '지배적인 방향'으로만 주로 업데이트를 수행한다.
이는 마치 1000x1000 크기의 거대한 행렬 파라미터가 있어도, 실제로는 매 스텝마다 10~50개 정도의 차원만 의미 있게 바뀌는 것과 같다.
모델의 잠재력을 완전히 활용하지 못하는 '파라미터 낭비'가 발생하는 것이다.
Muon은 이러한 문제에 대해 완전히 다른 해법을 제시한다. "그래디언트 업데이트가 특정 방향으로 치우치지 않고, 모든 방향으로 균일하게 퍼져나가게 만들면 어떨까?" 이것이 바로 Muon의 핵심 철학이다. 이를 위해 Muon은 '직교화(Orthogonalization)'라는 기하학적 개념을 도입했다.
직교화란 행렬의 행 벡터들(또는 열 벡터들)이 서로 수직(orthogonal)이 되도록 변환하는 것을 의미한다. 업데이트에 사용될 그래디언트 행렬을 직교화하면, 업데이트가 모든 차원에 걸쳐 편향 없이 고르게 영향을 미치게 된다. 이는 파라미터 공간을 훨씬 더 넓고 효율적으로 탐색하게 하여, 모델의 모든 파라미터가 잠재력을 최대한 발휘하도록 돕는다.
Muon은 MomentUm Orthogonalized by Newton-Schulz의 약자로, 이름에 그 작동 방식이 모두 담겨 있다. Muon은 다음과 같은 3단계 하이브리드 전략을 사용한다.
모멘텀 계산 : 먼저 Nesterov Momentum과 같은 방식으로 그래디언트의 이동 평균을 계산하여 기본적인 업데이트 방향과 크기를 정한다.
뉴턴-슐츠 반복 (Newton-Schulz Iteration) : Muon의 핵심 단계다. 1단계에서 계산된 모멘텀 행렬을 '직교화'한다. 직교화를 위한 가장 정확한 방법은 SVD(특이값 분해)지만 계산 비용이 너무 크다. 뉴턴-슐츠 반복은 오직 행렬 곱셈만으로 구성되어 GPU에서 매우 효율적으로 실행되면서도 SVD와 유사한 직교화 효과를 내는 알고리즘이다. 이 과정을 통해 행렬의 특이값(singular values) 분포가 균일하게 펴진다.
파라미터 업데이트 : 직교화된 행렬을 사용하여 최종적으로 파라미터를 업데이트한다.
뉴턴-슐츠 직교화의 효과. 직교화 전(파란색)에는 소수의 큰 특이값에 정보가 집중되지만, 직교화 후 (주황색)에는 특이값들이 전반적으로 균일한 크기를 유지하여 업데이트가 모든 차원에 걸쳐 이루어짐을 보여준다. 출처: Going Beyond AdamW: A Practical Guide to the Muon Optimizer
여기서 매우 중요한 실용적 포인트는 Muon이 모든 파라미터에 적용되지 않는다는 점이다. Muon은 Linear layer의 가중치와 같이 행렬(2D) 형태로 표현되는 파라미터에만 적용된다. 임베딩, 편향(bias), LayerNorm의 gain/bias와 같은 1D 벡터 파라미터에는 기존의 AdamW를 그대로 사용하는 하이브리드(hybrid) 방식을 취한다. 이는 직교화가 행렬 구조에 의미가 있기 때문이며, Muon을 실용적으로 만드는 핵심 설계다.
모든 방향으로 균일하게 업데이트를 퍼뜨리는 Muon의 고차원(full-rank) 업데이트 방식은 이론적으로 매우 효율적이지만, 현실의 대규모 모델 학습에서는 예기치 않은 부작용을 낳았다. 바로 '학습 불안정성'이다.
문제의 근원은 Transformer 아키텍처의 심장부인 어텐션 메커니즘에 있었다. Muon의 강력한 업데이트는 파라미터 가중치를 빠르게 성장시켰고, 이는 어텐션 계산 과정에서 Query와 Key 벡터의 내적(dot product) 값, 즉 '어텐션 스코어'를 비정상적으로 폭발시키는 현상으로 이어졌다. 이를 '어텐션 스코어 폭발(exploding attention logits)'이라고 부른다.
어텐션 스코어가 폭발하면 소프트맥스(softmax) 함수가 포화(saturation) 상태에 빠져 그래디언트가 거의 0이 되어버리거나(vanishing gradient), 특정 토큰에만 거의 모든 어텐션 가중치가 쏠리는 등 모델이 비정상적으로 작동하게 된다. 결국 학습 손실(loss)이 무한대로 치솟으며 학습이 완전히 실패(divergence)하는 재앙적인 결과로 이어진다.
최고 성능을 내기 위해 자동차의 모든 바퀴에 동시에 최대 출력을 가하는 상황을 상상해보자. 이론적으로는 가장 빠른 속도를 낼 수 있지만, 실제로는 차가 균형을 잃고 스핀하다가 결국 전복되고 말 것이다. Muon의 고차원 업데이트가 바로 이와 같은 위험을 내포하고 있었다.
Moonshot AI의 연구(Moonlight 논문)에서도 이 문제는 명확히 관찰되었다. AdamW로 학습할 때는 잘 나타나지 않던 이 불안정성 때문에, Muon의 뛰어난 효율성에도 불구하고 조 단위 파라미터 모델에 그대로 적용하기는 어려웠다.
MuonClip의 핵심은 'QK-Clip'이라는 새로운 메커니즘이다. 이는 어텐션 스코어 폭발 문제에 대한 기존 해결책들의 한계를 극복하기 위해 설계되었다.
기존 해결책의 한계:
Logit Soft-capping: 단순히 어텐션 스코어의 최댓값을 강제로 제한하는 방식이다. 이는 증상만 완화할 뿐, 스코어가 폭발하는 근본 원인인 Query와 Key 벡터 자체의 성장은 막지 못한다.
Query-Key Normalization (QK-Norm): Query와 Key 벡터를 정규화하는 방식이지만, Kimi K2가 사용하는 MLA(Multi-head Latent Attention)와 같은 특정 아키텍처에는 적용하기 어렵다는 문제가 있었다.
QK-Clip은 이러한 문제들을 해결하기 위해 '네거티브 피드백 제어(Negative Feedback Control)'라는 영리한 접근법을 사용한다. 그 작동 원리는 다음과 같다.
모니터링 (Monitoring): 매 학습 스텝마다, 각 어텐션 헤드에서 계산된 어텐션 스코어의 최댓값(max logit)을 감시한다.
조건부 개입 (Conditional Intervention): 만약 이 최댓값이 미리 설정된 임계값(threshold, Kimi K2의 경우 100으로 설정)을 초과하는 헤드가 발견되면, 해당 헤드에 대해서만 개입을 시작한다.
원인 제거 (Root Cause Elimination): 개입 방식은 스코어 자체를 깎는 것이 아니라, 스코어를 만드는 '원인'인 Query(Q)와 Key(K) 투영 가중치 행렬(projection weight matrices)의 크기를 직접 줄여버리는(rescaling) 것이다.
QK-Clip의 가장 큰 장점은 문제가 발생한 헤드에만, 필요한 만큼만 개입하는 정밀함에 있다. 모든 헤드에 일괄적으로 적용하는 것이 아니라, 스코어가 임계값을 초과한 헤드만 선별하여 가중치를 재조정한다. 이 덕분에 모델 학습에 대한 방해를 최소화하면서 안정성을 확보할 수 있다.
실제로 Kimi K2 학습 과정에서, 초기 단계를 지나자 대부분의 헤드가 안정화되어 QK-Clip이 거의 작동하지 않았다고 한다. 이는 QK-Clip이 비상시에만 작동하는 완벽한 '안전장치'로서의 역할을 수행했음을 의미한다.
최종적으로 MuonClip 옵티마이저는 다음과 같은 요소들을 통합한 완전체로 탄생했다.
MuonClip = Muon + Weight Decay + Consistent Update RMS + QK-Clip
이는 Moonshot AI의 이전 연구(Moonlight)에서 제안된 대규모 학습 안정화 기법(Weight Decay, Consistent Update RMS scaling)에 QK-Clip이라는 화룡점정을 더한 것이다.
이 강력한 조합 덕분에 Moonshot AI는 1조 파라미터 모델을 단 한 번의 실패 없이 안정적으로 학습시키는 위업을 달성할 수 있었다.
이론적 배경을 이해했다면, 이제 LLM 구현 엔지니어의 입장에서 가장 중요한 질문에 답할 차례다:
"그래서, 실제 성능은 어떤가? 내 프로젝트에는 무엇을 써야 하는가?" 이 장에서는 실제 벤치마크 데이터를 통해 각 옵티마이저의 성능을 비교하고, 실용적인 선택 가이 드라인을 제시한다.
옵티마이저의 성능은 크게 '토큰 효율성', '학습 속도(Wall-clock Time)', '학습 안정성'이라는 세 가지 축으로 평가할 수 있다.
토큰 효율성은 "동일한 성능에 도달하기 위해 얼마나 많은 데이터를 학습해야 하는가?"를 나타내는 지표다. 이는 LLM 학습 비용과 직결되는 가장 중요한 요소 중 하나다. NanoGPT speedrun과 같은 경쟁적인 벤치마크에서 Muon의 압도적인 토큰 효율성이 입증되었다.
위 그래프는 동일한 검증 손실(예: 3.4)에 도달하기 위해 Adam이 약 25억 개의 토큰을 필요로 하는 반면, Muon은 약 20억 개의 토큰만으로 목표를 달성함을 보여준다.
학습 속도는 실제 시간 기준으로 얼마나 빨리 학습이 완료되는지를 나타낸다. Muon은 뉴턴-슐츠 반복 계산 때문에 한 스텝(step)당 소요되는 시간은 AdamW보다 약간 더 길다. 하지만 압도적인 토큰 효율성 덕분에 전체 학습 시간은 오히려 단축되는 결과를 낳는다.
위 그래프에서 볼 수 있듯이, Muon은 AdamW보다 더 가파르게 손실 값을 떨어뜨리며, 더 짧은 시간 안에 목표 성능에 도달한다. 1.5B 파라미터 모델 학습에서는 동일 성능 달성에 AdamW가 13.3시간 걸린 반면, Muon은 10시간 만에 완료하여 약 25%의 시간을 절약했다.
대규모 모델 학습에서 안정성은 무엇보다 중요하다. 한 번의 학습 실패(divergence)는 수억, 수십억 원의 컴퓨팅 비용 낭비로 이어질 수 있기 때문이다.
AdamW: 매우 안정적이다. 이것이 지난 10년간 표준으로 사용된 가장 큰 이유 중 하나다.
Muon (vanilla): 대규모 모델에서 어텐션 스코어 폭발로 인한 불안정성 문제가 보고되었다.
MuonClip: Kimi K2(1T) 학습에서 15.5조 토큰을 학습하는 동안 단 한 번의 손실 스파이크 없이 안정적인 학습 곡선을 보여주며 압도적인 안정성을 입증했다. QK-Clip 메커니즘이 완벽하게 작동했음을 의미한다.
세 가지 옵티마이저의 특징을 한눈에 비교할 수 있도록 테이블로 정리했다.
AdamW는 여전히 다양한 상황에서 신뢰할 수 있는 성능을 제공하는 강력한 '만능 세단'과 같다. 특히 파인튜닝이나 안정성이 무엇보다 중요한 프로젝트에서는 여전히 최고의 선택지일 수 있다.
하지만 대규모 LLM을 처음부터 학습시키는 'F1 그랑프리'와 같은 극한의 환경에서는, MuonClip이라는 '특수 제작된 레이싱 머신'이 압도적인 토큰 효율성과 속도, 그리고 놀라운 안정성을 보여준다.
따라서, 프로젝트의 목표(사전학습 vs. 파인튜닝), 모델의 규모, 가용한 컴퓨팅 자원과 예산을 종합적으로 고려하여 옵티마이저를 '전략적으로' 선택해야 하는 시대가 왔다. MuonClip의 등장은 단순히 새로운 알고리즘의 추가를 넘어, LLM 학습 비용을 획기적으로 절감하고 더 많은 팀에게 거대 모델 개발의 기회를 열어주는 중요한 기술적 변곡점이 될 것이다.
SGD에서 Adam으로, 그리고 이제 MuonClip과 그 이후의 옵티마이저들로 이어지는 이 진화의 역사는 '어떻게 하면 기계가 더 빠르고, 더 깊고, 더 현명하게 학습할 수 있을까?'에 대한 인류의 끊임없는 탐구 과정 그 자체다. 이 여정은 아직 끝나지 않았으며, 지금 이 글을 읽는 당신의 다음 프로젝트가 그 역사의 새로운 한 페이지를 장식할 수 있기를 기대한다.