coredot.today
Lion 옵티마이저 특집: AI가 스스로 발견한 최적화 알고리즘
블로그로 돌아가기
Lion옵티마이저AutoML프로그램 탐색딥러닝 최적화

Lion 옵티마이저 특집: AI가 스스로 발견한 최적화 알고리즘

2023년, Google Brain의 AI가 수십만 개의 프로그램을 진화시켜 옵티마이저를 '발견'했다. 그 이름은 Lion — Adam보다 메모리를 절반만 쓰고, 확산 모델에서 2.3배 빠르며, Google 검색 광고에 배치된 최초의 'AI가 만든 AI 구성 요소'. 발견 과정, 알고리즘, 성능, 한계까지 깊이 파헤친다.

코어닷투데이2025-09-0924

들어가며: AI가 AI를 만드는 시대

코드의 DNA 나선 앞에서 알고리즘 논문 무덤 위에 선 황금 사자

2017년, Google Brain의 Quoc V. Le 팀이 강화학습으로 신경망 아키텍처를 자동 설계하는 NAS(Neural Architecture Search) 를 발표했다. 같은 해, 같은 팀이 활성화 함수 Swish를 자동 탐색으로 발견했다.

2023년, 이 "AI가 AI를 만든다" 노선의 최신작이 등장했다 — 이번에는 옵티마이저까지 AI가 직접 발견한 것이다.

이름은 LionEvoLved Sign Momentum의 약자. 진화적 프로그램 탐색으로 수십만 개의 후보 알고리즘 중에서 선별되었고, 놀랍도록 단순했다. Adam의 복잡한 적응적 메커니즘 대신, 모멘텀의 부호(sign)만 사용한다.


1부: 탄생 — 20만 개의 프로그램에서 하나를 골라내다

AI 연구소에서 거대 AI가 작은 로봇들을 테스트하고, 황금 사자 로봇이 최종 선택되는 장면

논문과 저자

핵심 논문
"Symbolic Discovery of Optimization Algorithms"
arXiv: 2302.06675 (2023년 2월 13일) / NeurIPS 2023

12명의 저자: Xiangning Chen (UCLA/Google Brain), Chen Liang, Da Huang, Esteban Real, Kaiyuan Wang, Yao Liu, Hieu Pham, Xuanyi Dong, Thang Luong, Cho-Jui Hsieh (UCLA), Yifeng Lu, Quoc V. Le

Quoc V. Le는 NAS(2017), Swish(2017), AutoML-Zero(2020), Lion(2023)까지 — "AI가 AI를 설계한다" 연구 라인의 핵심 인물

"AI가 AI를 설계한다" 계보

연도발견방법저자
2017NAS (아키텍처 탐색)강화학습Zoph & Le
2017Swish (활성화 함수)조합 탐색 + RLRamachandran, Zoph & Le
2020AutoML-Zero (역전파 재발견)진화 알고리즘Real, Liang, So & Le
2023Lion (옵티마이저)프로그램 탐색Chen, Liang, Real, ..., Le

탐색 공간

  • 45개 수학 함수: add, mul, sign, clip, interp, sqrt, arcsin, cosh 등
  • 입력: 가중치(w), 기울기(g), 학습률(lr)
  • 출력: 가중치 업데이트
  • 조건문과 루프도 시도했으나 "개선된 결과를 내지 못함"

진화 과정

인구 1,000개 알고리즘, AdamW로 웜스타트
토너먼트 선택 → 최고 개체의 돌연변이(문장 추가/삭제/수정)
20~30만 프로그램 생성, 캐싱으로 ~2~3만만 실제 평가
깔때기: 프록시 A → 10배 큰 B → 100배 큰 C
TPU V2 칩 1개에서 20분 만에 완료

Program 8 → Program 4 → Lion (Program 1)

진화로 발견된 Program 8clip(), arcsin(), cosh(), 두 개의 추적 변수(m, v) 등 복잡한 구성이었다. 연구팀은 이를 체계적으로 단순화했다:

단순화 과정
Program 8 (원본) 진화로 발견 clip, arcsin, cosh, m, v, 복잡한 구조
Program 4 자동 정리 중복 문장 제거, 변수명 정리
Program 1 = Lion 수동 분석 cosh/arcsin/clip 제거, v 제거, sign으로 통합
  • cosh() 제거: 다음 반복에서 m이 재할당되므로 불필요
  • arcsin(), clip() 제거: 없어도 품질 저하 없음
  • v 변수 제거: 두 interp(~0.9, ~1.1)가 하나의 interp(~0.99)와 동등
  • 세 개의 연산이 하나의 sign()으로 축약

결과: 놀랍도록 단순한 알고리즘.


2부: 알고리즘 — 부호만으로 충분하다

Lion의 전체 알고리즘

Lion (EvoLved Sign Momentum)
초기화: m₀ = 0

매 스텝 t:
  1. 기울기 계산: g_t = ∇f(θ_t)
  2. 업데이트 방향: u_t = sign(β₁ · m_{t-1} + (1-β₁) · g_t)
  3. 가중치 감쇠 + 업데이트: θ_t = θ_{t-1} - lr · (u_t + λ · θ_{t-1})
  4. 모멘텀 갱신: m_t = β₂ · m_{t-1} + (1-β₂) · g_t

핵심: 2단계에서 β₁=0.9 (최근 기울기 가중), 4단계에서 β₂=0.99 (긴 이력 추적)
업데이트와 모멘텀에 서로 다른 β를 사용하는 것이 Lion의 고유한 특징

Adam vs. Lion: 무엇이 다른가

속성Adam/AdamWLion
추적하는 것1차 모멘트(m) + 2차 모멘트(v)1차 모멘트(m)
업데이트 계산m̂ / (√v̂ + ε)sign(interpolation)
메모리파라미터의 2배파라미터의 1배
업데이트 크기파라미터마다 다름 (적응적)모든 파라미터에 동일 (±1 × lr)
계산 비용제곱근, 나눗셈 필요부호 판단만

메모리 절약의 실제 영향

Adam은 각 파라미터마다 m과 v를 저장해야 한다 — 가중치의 2배. Lion은 m만 저장 — 가중치의 1배. 70억 파라미터 모델에서:

  • AdamW 옵티마이저 상태: ~56 GB (FP32 기준)
  • Lion 옵티마이저 상태: ~28 GB

실제로 ViT-B/16을 배치 4096으로 학습할 때, Lion은 TPU V4 8칩이면 되지만 AdamW는 16칩이 필요했다.


3부: 왜 "부호"가 작동하는가

signSGD와의 연결

2018년, 번스타인(Bernstein) 등이 ICML에서 signSGD를 발표했다 — 기울기의 부호만 사용하는 방법. 원래 목적은 분산 학습에서 통신 비용을 줄이는 것이었다. 그러나 이미지 분류에서는 성능이 떨어졌다.

Lion은 signSGD와 다르다:

  • 기울기가 아니라 기울기와 모멘텀의 보간(interpolation) 에 부호를 적용
  • 업데이트와 모멘텀에 서로 다른 β를 사용

균일한 업데이트 크기의 의미

모든 파라미터가 정확히 +1 또는 -1 (× 학습률)로 업데이트된다. 기울기가 0.001이든 1000이든 상관없이. 이것이 의미하는 바:

  • Adam은 큰 기울기의 파라미터를 작게 업데이트하고, 작은 기울기를 크게 업데이트 (적응적)
  • Lion은 모든 파라미터를 동일하게 업데이트 (균일)

암묵적 정규화: 평평한 곳을 선호한다

sign() 연산은 업데이트에 양자화 노이즈를 추가한다. 이 노이즈가 일종의 정규화로 작용해, Lion이 손실 지형의 평평하고 넓은 최솟값에 수렴하게 만든다 — 이는 일반화에 유리하다.

2024년 ICLR에서 Lizhang Chen 등이 이론적으로 증명했다: Lion은 암묵적으로 제약 최적화를 푼다min f(x) subject to ||x||_∞ ≤ 1/λ.


4부: 실전 성능 — 어디서 빛나는가

옵티마이저 레이스: 무거운 탱크(Adam), 가벼운 러너(Lion), 불안정한 SGD

이미지 분류 (ImageNet)

ViT ImageNet Top-1 정확도 (Lion vs AdamW)
ViT-B/16 기본
Lion 77.44% vs AdamW 75.48% (+1.96%)
ViT-B/16 증강
Lion 80.77% vs AdamW 80.12% (+0.65%)
ViT-L/16 21K
Lion 85.59% vs AdamW 85.07% (+0.52%)
ViT-H/14 JFT
Lion 89.09% vs AdamW 88.55% (+0.54%)

Lion으로 학습한 ViT-L/16이 AdamW로 학습한 ViT-H/14 (2배 큰 모델)와 비슷한 성능 — 사전학습 계산을 최대 5배 절약.

확산 모델 (가장 큰 승리)

확산 모델 결과 (256×256 ImageNet)
Lion FID: 4.1 vs AdamW FID: 4.7 (낮을수록 좋음)
Lion이 AdamW의 최종 성능에 440K 스텝에 도달 — 2.3배 반복 절감
(참고: ADM 기준선 FID = 10.94)

언어 모델링

모델LionAdamW
BERT Small (C4 MLM)4.184.25
BERT Medium3.423.54
BERT Large3.183.25

Wiki-40B(336M)에서 1.6배, PG-19(731M)에서 2배 속도 향상.

비전-언어 (BASIC-L)

옵티마이저Zero-shotFine-tune
Adafactor85.7%90.9%
Lion88.3%91.1%

기존 최고 대비 제로샷 +2.6%.

프로덕션 배치: Google 검색 광고

Lion은 Google의 검색 광고 CTR(클릭률) 모델에 프로덕션 배치되었다 — 메모리 제약이 큰 환경에서 특히 선호된다.


5부: 실전 가이드 — AdamW에서 Lion으로 전환하기

AdamW → Lion 전환 레시피
학습률 3~10배 작게 AdamW 3e-4 → Lion 3e-5~1e-4
가중치 감쇠 3~10배 크게 AdamW 0.1 → Lion 0.3~1.0
β₁, β₂ 기본값 사용 비전: 0.9/0.99, 언어: 0.95/0.98
배치 크기 큰 배치 선호 최적 4096+, 64 미만 비추천

핵심 원칙: lr × weight_decay 값을 AdamW와 비슷하게 유지하되, lr을 줄이고 weight_decay를 키운다.

프레임워크 지원

  • 공식: github.com/google/automl/tree/master/lion (PyTorch, JAX, TF)
  • PyPI: pip install lion-pytorch (lucidrains)
  • 내장: Keras (keras.optimizers.Lion), Timm, Optax, MosaicML Composer
  • 런타임: AdamW/Adafactor 대비 2~15% 빠른 스텝 속도

6부: 한계와 비판 — Lion이 못하는 것

논문 자체의 한계 인정

저자들이 직접 밝힌 한계:

  • "ResNet에서의 차이는 꽤 작다"
  • "강한 데이터 증강 사용 시 성능 향상이 줄어든다"
  • "배치 크기가 64 미만이면 성능 저하"
  • Imagen 텍스트-투-이미지 기본 모델에서는 "명확한 개선 없음"

독립적 벤치마크 (2024~2025)

  • Liu et al. (2024): 355M 모델, SuperGLUE에서 AdamW가 Lion보다 약간 우세
  • "Deconstructing What Makes a Good Optimizer" (2024): 최적 튜닝 시 SGD를 제외한 모든 옵티마이저(Adam, Adafactor, Lion, Signum)가 비슷한 성능
  • 2025년 엄격한 벤치마크 (arXiv: 2509.01440): 124M 규모 + 작은 배치에서 Lion과 Signum이 기울기 노이즈에 민감. 720M 규모에서도 확장성 부족

탐색 공간의 한계

논문 스스로 인정: 탐색 공간이 1차 알고리즘에 편향되어 있어, "고급 2차 알고리즘을 구성하는 데 필요한 함수가 부족"하다.


7부: 경쟁자들 — Lion 이후의 세계

2023~2026 옵티마이저 비교
AdamW (2017) 메모리 2x, 범용 표준 여전히 LLM의 기본
Lion (2023) 메모리 1x, 부호 기반 비전+확산 모델에 강점
Sophia (2023) 2차 근사, LLM 2배↑ 장시간 학습 시 불안정 보고
Muon (2024) 모멘텀 직교화 130M에서 1.4배↑, 스케일링 시 감소
Schedule-Free (2024) 스케줄 제거 MLCommons 2024 우승
Adafactor (2018) 행/열 분해, 메모리↓ T5 등 초대규모 학습 필수

맺으며: 단순함의 진화

Lion의 이야기에서 가장 인상적인 것은 단순함이다.

20만 개의 프로그램이 진화하고, clip(), arcsin(), cosh(), 복잡한 변수 추적이 모두 제거되고 나면, 남는 것은 놀랍도록 간결하다:

기울기와 모멘텀을 섞고, 부호를 취하라.

Adam이 정교한 적응적 메커니즘으로 각 파라미터의 학습률을 개별 조정하는 동안, Lion은 모든 파라미터에 동일한 크기의 업데이트를 적용한다. 그리고 많은 경우 더 잘 작동한다.

이것은 딥러닝 연구에서 반복되는 패턴이다: ReLU가 시그모이드를 대체했을 때(더 단순한 쪽이 이겼다), 트랜스포머가 복잡한 RNN 구조를 대체했을 때(반복을 제거한 쪽이 이겼다), 그리고 이제 Lion이 Adam의 2차 모멘트를 제거했을 때.

진화 알고리즘은 인간의 편견 없이, 순수한 성능 기준으로 프로그램 공간을 탐색한다. 그 결과가 알려주는 것은, 때때로 복잡함은 불필요하다는 것이다.

물론 Lion이 모든 상황에서 최선은 아니다. AdamW는 여전히 LLM 학습의 안정적 표준이고, 작은 배치나 ResNet에서는 차이가 미미하다. 하지만 Lion이 열어젖힌 질문 — 인간이 설계하지 않은 알고리즘이 인간이 설계한 것을 능가할 수 있는가 — 에 대한 답은 명확하다: 그렇다.

그리고 그 답이 단순한 sign() 함수 안에 있었다는 것이, 이 이야기의 가장 아름다운 반전이다.