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

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

2017년, Google Brain의 Quoc V. Le 팀이 강화학습으로 신경망 아키텍처를 자동 설계하는 NAS(Neural Architecture Search) 를 발표했다. 같은 해, 같은 팀이 활성화 함수 Swish를 자동 탐색으로 발견했다.
2023년, 이 "AI가 AI를 만든다" 노선의 최신작이 등장했다 — 이번에는 옵티마이저까지 AI가 직접 발견한 것이다.
이름은 Lion — EvoLved Sign Momentum의 약자. 진화적 프로그램 탐색으로 수십만 개의 후보 알고리즘 중에서 선별되었고, 놀랍도록 단순했다. Adam의 복잡한 적응적 메커니즘 대신, 모멘텀의 부호(sign)만 사용한다.

| 연도 | 발견 | 방법 | 저자 |
|---|---|---|---|
| 2017 | NAS (아키텍처 탐색) | 강화학습 | Zoph & Le |
| 2017 | Swish (활성화 함수) | 조합 탐색 + RL | Ramachandran, Zoph & Le |
| 2020 | AutoML-Zero (역전파 재발견) | 진화 알고리즘 | Real, Liang, So & Le |
| 2023 | Lion (옵티마이저) | 프로그램 탐색 | Chen, Liang, Real, ..., Le |
진화로 발견된 Program 8은 clip(), arcsin(), cosh(), 두 개의 추적 변수(m, v) 등 복잡한 구성이었다. 연구팀은 이를 체계적으로 단순화했다:
cosh() 제거: 다음 반복에서 m이 재할당되므로 불필요arcsin(), clip() 제거: 없어도 품질 저하 없음v 변수 제거: 두 interp(~0.9, ~1.1)가 하나의 interp(~0.99)와 동등sign()으로 축약결과: 놀랍도록 단순한 알고리즘.
| 속성 | Adam/AdamW | Lion |
|---|---|---|
| 추적하는 것 | 1차 모멘트(m) + 2차 모멘트(v) | 1차 모멘트(m) 만 |
| 업데이트 계산 | m̂ / (√v̂ + ε) | sign(interpolation) |
| 메모리 | 파라미터의 2배 | 파라미터의 1배 |
| 업데이트 크기 | 파라미터마다 다름 (적응적) | 모든 파라미터에 동일 (±1 × lr) |
| 계산 비용 | 제곱근, 나눗셈 필요 | 부호 판단만 |
Adam은 각 파라미터마다 m과 v를 저장해야 한다 — 가중치의 2배. Lion은 m만 저장 — 가중치의 1배. 70억 파라미터 모델에서:
실제로 ViT-B/16을 배치 4096으로 학습할 때, Lion은 TPU V4 8칩이면 되지만 AdamW는 16칩이 필요했다.
2018년, 번스타인(Bernstein) 등이 ICML에서 signSGD를 발표했다 — 기울기의 부호만 사용하는 방법. 원래 목적은 분산 학습에서 통신 비용을 줄이는 것이었다. 그러나 이미지 분류에서는 성능이 떨어졌다.
Lion은 signSGD와 다르다:
모든 파라미터가 정확히 +1 또는 -1 (× 학습률)로 업데이트된다. 기울기가 0.001이든 1000이든 상관없이. 이것이 의미하는 바:
sign() 연산은 업데이트에 양자화 노이즈를 추가한다. 이 노이즈가 일종의 정규화로 작용해, Lion이 손실 지형의 평평하고 넓은 최솟값에 수렴하게 만든다 — 이는 일반화에 유리하다.
2024년 ICLR에서 Lizhang Chen 등이 이론적으로 증명했다: Lion은 암묵적으로 제약 최적화를 푼다 — min f(x) subject to ||x||_∞ ≤ 1/λ.

Lion으로 학습한 ViT-L/16이 AdamW로 학습한 ViT-H/14 (2배 큰 모델)와 비슷한 성능 — 사전학습 계산을 최대 5배 절약.
| 모델 | Lion | AdamW |
|---|---|---|
| BERT Small (C4 MLM) | 4.18 | 4.25 |
| BERT Medium | 3.42 | 3.54 |
| BERT Large | 3.18 | 3.25 |
Wiki-40B(336M)에서 1.6배, PG-19(731M)에서 2배 속도 향상.
| 옵티마이저 | Zero-shot | Fine-tune |
|---|---|---|
| Adafactor | 85.7% | 90.9% |
| Lion | 88.3% | 91.1% |
기존 최고 대비 제로샷 +2.6%.
Lion은 Google의 검색 광고 CTR(클릭률) 모델에 프로덕션 배치되었다 — 메모리 제약이 큰 환경에서 특히 선호된다.
핵심 원칙: lr × weight_decay 값을 AdamW와 비슷하게 유지하되, lr을 줄이고 weight_decay를 키운다.
github.com/google/automl/tree/master/lion (PyTorch, JAX, TF)pip install lion-pytorch (lucidrains)keras.optimizers.Lion), Timm, Optax, MosaicML Composer저자들이 직접 밝힌 한계:
논문 스스로 인정: 탐색 공간이 1차 알고리즘에 편향되어 있어, "고급 2차 알고리즘을 구성하는 데 필요한 함수가 부족"하다.
Lion의 이야기에서 가장 인상적인 것은 단순함이다.
20만 개의 프로그램이 진화하고, clip(), arcsin(), cosh(), 복잡한 변수 추적이 모두 제거되고 나면, 남는 것은 놀랍도록 간결하다:
기울기와 모멘텀을 섞고, 부호를 취하라.
Adam이 정교한 적응적 메커니즘으로 각 파라미터의 학습률을 개별 조정하는 동안, Lion은 모든 파라미터에 동일한 크기의 업데이트를 적용한다. 그리고 많은 경우 더 잘 작동한다.
이것은 딥러닝 연구에서 반복되는 패턴이다: ReLU가 시그모이드를 대체했을 때(더 단순한 쪽이 이겼다), 트랜스포머가 복잡한 RNN 구조를 대체했을 때(반복을 제거한 쪽이 이겼다), 그리고 이제 Lion이 Adam의 2차 모멘트를 제거했을 때.
진화 알고리즘은 인간의 편견 없이, 순수한 성능 기준으로 프로그램 공간을 탐색한다. 그 결과가 알려주는 것은, 때때로 복잡함은 불필요하다는 것이다.
물론 Lion이 모든 상황에서 최선은 아니다. AdamW는 여전히 LLM 학습의 안정적 표준이고, 작은 배치나 ResNet에서는 차이가 미미하다. 하지만 Lion이 열어젖힌 질문 — 인간이 설계하지 않은 알고리즘이 인간이 설계한 것을 능가할 수 있는가 — 에 대한 답은 명확하다: 그렇다.
그리고 그 답이 단순한 sign() 함수 안에 있었다는 것이, 이 이야기의 가장 아름다운 반전이다.