혼동하기 쉬운 점과 요약
토론 1. 장난감에서 AdamW 가 이겼으니 Dimuon 은 쓸모없는가
장난감 LoRA 에서 가장 낮은 손실은 AdamW 의 것이었다(랭크 32 에서 0.0004, Dimuon 은 0.0050). 그렇다면 Dimuon 은 AdamW 보다 나쁜 옵티마이저인가?

장난감에서 AdamW 가 가장 낮은 손실을 냈어요. Dimuon 은 AdamW 보다 나쁜 옵티마이저일까요?

숫자로는 그래 보여요. 랭크 32 에서 열 배 넘게 차이 나잖아요.

근데 이 장난감은 정답이 랭크 8 인 선형 문제 하나야. 층도 하나고, 손실이 2차식이고. 큰 언어 모델의 파인튜닝이랑은 거리가 멀지.

그러면 무엇이 다를 때 결론이 바뀔 수 있을까요?

음… 2차식 손실이면 그래디언트가 매끄럽게 줄어드니까, AdamW 처럼 그래디언트 크기에 맞춰 스텝이 줄어드는 게 유리할 것 같아요. Dimuon 은 노름이 고정이니까 끝에서 정답 둘레를 맴돌고요.

학습률 스케줄이 없어서 그런 것도 있겠다. 부호 하강처럼 노름이 고정이면 학습률을 줄여 가야 손실의 바닥에 닿는데, 여기선 300스텝 내내 같은 학습률이었으니까.

그래요. 그리고 이 장난감이 보여 준 것 중에 실제 문서와 맞는 건 무엇이었죠?

가장 좋은 학습률이 랭크와 상관없이 한 자리였던 것, 학습률이 AdamW 보다 몇 배 컸던 것이요. 원래 Muon 보다 나았던 것도요. 그리고 장난감은 메모리를 안 쟀어요. 큰 모델에서 잰 벤치마크도 품질은 설정마다 엇갈렸는데, 옵티마이저 상태가 4분의 1인 건 어느 설정에서나 같았고요.

그러니까 장난감은 각 단계가 무엇을 바꾸는지를 보는 실험이고, 어느 옵티마이저가 나은지는 실제 크기의 모델과 학습률 스케줄로 재야 하는 거네요. 팅커 문서도 자기 평가로 직접 확인하라고 했고요.
혼동하기 쉬운 점
| 혼동하기 쉬운 생각 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| Dimuon 의 장점은 AdamW 보다 손실을 빨리 낮추는 것이라고 봄 | 2, 토론 1 | 회사는 SFT 의 스텝 수를 말했지만 독립 벤치마크의 품질은 설정마다 엇갈렸다. 늘 같은 차이는 옵티마이저 상태가 AdamW 의 4분의 1이라는 점이다 |
| Dimuon 의 식은 회사가 공개한 것이라고 봄 | 「LoRA 의 가는 두 행렬」 | 회사는 조절값과 사용법만 밝혔다. 식은 커뮤니티가 스텝을 재어 거꾸로 알아낸 것이고 비트 단위로 같지 않다 |
| LoRA 에서 Muon 의 덤 계산이 프리트레인보다 크다고 봄 | 1 | 직교화는 가는 인자에 하므로 덤이 수만 분의 1로 준다. 층을 지나는 원래 계산은 그대로다 |
| 반복마다 1에 가까워지는 다항식이 좋은 다항식이라고 봄 | 3 | Polar Express 는 다섯 번 뒤를 겨냥해 중간에 크게 출렁인다. 중간에 멈추면 Muon 보다 나쁘다 |
| 조건화는 이번 그래디언트로 계산한다고 봄 | 「지난 모멘텀으로 행과 열 고르기」 | 지난 스텝의 모멘텀으로 계산한다. 첫 스텝에서는 꺼진다 |
| 조건화의 감쇠 10⁻⁴ 는 없어도 되는 작은 수라고 봄 | 4 | 에너지가 0 인 행·열의 배율을 한쪽 10 배로 막는다. 없으면 스텝 방향이 그 한 줄로 쏠린다 |
| 노름을 고정하면 튀는 그래디언트를 모두 막는다고 봄 | 5 | 크기는 막지만 모멘텀에 들어간 튄 값이 몇 스텝 동안 방향을 끌고 간다. 클리핑은 모멘텀 앞에서 자른다 |
| 학습률 10~100 배는 Dimuon 이 더 과감하다는 뜻이라고 봄 | 「스텝 크기를 랭크로만 정하기」 | AdamW 의 스텝 노름은 √(칸 수)에 비례하고 Dimuon 은 √r 에 비례한다. 배수는 대부분 이 차이다 |
| ε 는 늘 작아야 한다고 봄 | 6 | 관측기에서는 ε 와 학습률을 함께 크게 두어 스텝이 그래디언트를 옮겨 적게 한다 |
| 장난감에서 진 옵티마이저는 나쁜 옵티마이저라고 봄 | 토론 1 | 장난감은 각 단계의 효과를 보는 실험이다. 어느 쪽이 나은지는 실제 규모에서 잰다 |
요약
LoRA 는 고칠 양을 가는 두 인자로 나눠 학습하는 숫자를 수십 분의 1로 줄인다. 싱킹 머신스 랩의 Dimuon 은 이 두 인자를 따로 직교화하는 Muon 계열 옵티마이저이고, 회사는 식을 밝히지 않았다. 바깥에서 재어 보면 가장 분명한 특징은 옵티마이저 상태다. AdamW 가 파라미터마다 32비트 이동 평균 둘(8바이트)을 들고 다니는 데 비해 Dimuon 은 bfloat16 모멘텀 하나(2바이트)만 들고 다녀, Qwen2.5-32B 에 단 랭크 32 LoRA 에서 1.61 GB 가 0.40 GB 로 준다. 같은 벤치마크에서 품질은 설정마다 엇갈렸다. Adam 의 v 가 하던 일은 직교화와, 저장한 모멘텀에서 스텝마다 새로 계산하는 행·열 조건화가 대신한다. 2026년 10월 커뮤니티 재현 결과가 알아낸 한 스텝은 네 단계다. 모멘텀은 보통 이동 평균(β = 0.9)이고, 직교화 앞뒤로 지난 모멘텀의 행·열 에너지의 −1/4 제곱을 곱해 입력이 큰 몇 칸에 스텝이 몰리는 것을 막는다. 직교화는 Muon 의 같은 다항식 다섯 번 대신 반복마다 가장 나쁜 경우를 줄이도록 고른 Polar Express 다항식 다섯 개(암셀 팀 2025)를 쓴다. 마지막으로 스텝의 노름을 η·√r·(r/32)0.175 로 못 박아, 방향은 그래디언트가, 크기는 학습률과 랭크가 정하게 한다.
이 노름 규칙에서 학습률이 AdamW 의 10~100 배여야 하는 이유가 나온다. 폭 4096, 랭크 32 인 인자에서 AdamW 의 스텝 노름은 η·ρ·362, Dimuon 은 η·5.66 이라 배수는 64ρ 다. 장난감 LoRA 에서는 Dimuon 의 가장 좋은 학습률이 랭크 2, 8, 32 모두 같았고 원래 Muon 보다 손실이 낮았지만, 가장 낮은 손실은 AdamW 의 것이었다. 식을 알아낸 방법도 배울 거리다. 이동 평균을 끄고 학습률과 ε 를 모두 10⁴ 로 둔 Adam 은 그래디언트를 옮겨 적는 관측기가 되고, 첫 스텝을 그래디언트의 특이 방향에 비추면 직교화 다항식의 응답이 드러난다.
막힌 곳
재현 결과는 식을 알려 주지만 이유는 알려 주지 않는다. 0.175 라는 지수, 양쪽에 똑같이 나눈 −1/4, 10⁻⁴ 의 감쇠는 모두 서버의 스텝에 맞춘 숫자다. 노름을 랭크의 함수로 못 박는 규칙이 폭이 다른 층과 다른 모델에서도 같은 학습률을 쓰게 해 줄지, 그 규칙을 μP 처럼 원리에서 끌어낼 수 있을지는 아직 답이 없다. 그리고 랭크 128 을 넘는 LoRA, 20스텝을 넘는 학습, 전문가 혼합 모델의 큰 오차처럼 재현 결과가 시험하지 못한 곳에서는 지금의 식이 맞는지도 모른다.