μP: 폭이 달라져도 같은 학습률로

자주 하는 실수와 요약

자주 하는 실수

실수 나온 문제 바로잡는 법
폭을 넓혀도 같은 학습률이면 같은 스텝이라고 봄 2 스텝이 출력을 바꾸는 정도는 −η(ŷ − y)n 으로 폭에 비례한다. 폭 n 층 하나에서 안전한 범위는 η < 2/n
같은 쪽으로 미는 n 개의 합도 √n 으로 나누면 된다고 봄 1 부호가 제각각일 때만 √n 이다. 그래디언트 스텝은 입력과 같은 쪽으로 줄을 서서 n 에 비례한다
학습률 하나를 폭에 반비례로 줄이면 모든 층이 맞는다고 봄 3 입력 개수가 폭인 층과 아닌 층은 배율이 다르다. 층마다 학습률을 따로 붙인다
Adam 은 그래디언트 크기를 지우니 폭을 타지 않는다고 봄 8 부호 행렬도 한 방향으로 줄을 서면 스펙트럼 노름이 n 이다. Adam 의 은닉층 학습률은 1/fan_in
학습 손실이 낮으면 특징도 잘 배웠다고 봄 6 넓은 망의 게으른 학습은 무작위 특징을 섞기만 해서 손실을 낮춘다. 특징의 변화를 따로 잰다
신경 탄젠트 커널이 입력 사이의 거리만 잰다고 봄 5 커널은 두 점의 그래디언트 벡터의 내적이라 각 점의 민감도까지 곱해진다. 배운 점보다 이웃이 더 움직일 수 있다
업데이트의 성분이 1/n 로 작으면 업데이트도 작다고 봄 7 랭크 1 업데이트는 성분 n² 개가 한 방향으로 줄을 서서 스펙트럼 노름이 폭과 상관없다
μTransfer 는 학습률 숫자를 그대로 옮기는 것이라고 봄 9, 10 옮기는 것은 기준 폭에서의 학습률이고, 층마다 실제 값은 μP 가 폭에 맞춰 줄인다. 기준 폭을 함께 적는다
작은 모델에서 조율하면 공짜라고 봄 11 옮긴 값이 맞는지는 μP 에 기댄다. 폭 몇 개에서 곡선이 한 줄에 서는지 먼저 확인한다
계산이 늘면 모델만 키우면 된다고 봄 12, 14 계산량이 정해지면 모델과 데이터를 함께 키운다. 친칠라 이후의 답은 거의 같은 비율
손실 차이가 작으니 배분이 틀려도 괜찮다고 봄 14 같은 손실을 내는 데 드는 계산으로 바꿔 읽는다. GPT-3 의 손실은 식이 고르는 배분이면 계산 0.61배로 낼 수 있었다
작은 실험에서 맞춘 지수를 멀리 늘여도 믿을 만하다고 봄 13 지수의 작은 차이가 수천 배 끝에서 두 배 넘는 차이가 된다. 맞춘 값 자체도 다시 확인한다

요약

이 장에서 한 일을 정리해 보자. 표준 파라미터화는 학습을 시작할 때의 출력 크기는 폭과 상관없이 맞춰 주지만, 한 스텝의 크기는 맞춰 주지 않는다. 폭 n 층 하나에서 경사하강 한 스텝은 출력을 −η(ŷ − y)n 만큼 바꾼다. 가중치 n 칸의 변화가 모두 입력과 같은 쪽으로 줄을 서서, 부호가 제각각인 합의 √n 이 아니라 n 에 비례하는 것이다. Adam 의 스텝도 같다. 그래서 넓은 망일수록 학습률을 작게 잡아야 하고, 가장 좋은 학습률이 폭을 따라 밀린다.

학습률을 폭에 반비례로 줄이면 출력은 얌전해지지만, 폭이 넓을수록 은닉 특징이 처음 값에 얼어붙는다. 폭이 무한하면 망은 처음 자리의 그래디언트 벡터를 고정된 특징으로 삼아 선형 회귀를 하는 것과 같고, 그 학습을 정하는 것이 두 점의 그래디언트 벡터의 내적인 신경 탄젠트 커널이다(자코·가브리엘·옹글레르, 2018). 이런 게으른 학습은 학습 오차를 0 까지 낮추지만 특징을 배우지 않아, 프리트레인한 특징을 옮겨 쓰는 실제 신경망의 모델로는 모자란다.

μP(최대 업데이트 파라미터화)는 층마다 초기화와 학습률을 폭의 거듭제곱으로 붙여, 폭이 무한해도 각 층의 특징이 한 스텝에 폭과 상관없는 크기만큼 움직이게 한다(양·휴, 2021). 은닉층의 SGD 업데이트는 랭크 1 이라 성분은 1/n 로 작아도 스펙트럼 노름은 1 이고, Adam 의 부호 스텝은 스펙트럼 노름이 n 이라 학습률을 1/fan_in 으로 줄인다. 이 규칙들은 「가중치와 업데이트의 스펙트럼 노름을 √(fan_out/fan_in) 로」라는 조건 하나로 묶인다.

μP 에서는 가장 좋은 학습률이 폭과 상관없이 거의 같은 값에 머무므로, 좁은 망에서 고른 기준 학습률을 넓은 망에 옮겨 쓸 수 있다(μTransfer). 4,000만 개 모델에서 옮긴 설정으로 67억 개 GPT-3 를 조율하는 데 프리트레인의 7% 가 들었다. 스텝마다 업데이트의 특잇값을 1 로 맞추는 Muon 은 같은 물음, 곧 「공정한 한 스텝을 어떤 노름으로 재는가」에 대한 다른 답이다.

모델 크기를 정하는 물음에는 스케일링 법칙이 답한다. 손실은 파라미터 수와 토큰 수에 대해 거듭제곱으로 줄고, 계산량 C ≈ 6ND 가 정해지면 둘을 함께 키우는 배분이 있다. 캐플런 외(2020)는 모델을 데이터보다 훨씬 빨리 키우라고 했지만, 학습률 스케줄을 토큰 수에 맞추지 않은 것이 그 결론을 기울였다. 호프만 외(2022)는 둘을 같은 비율로 키우라고 했고, 700억 개 친칠라를 토큰 1.4조 개로 학습해 같은 계산의 2,800억 개 고퍼를 앞섰다. 작은 계산량의 실험 몇 개로 지수를 맞춰 수천 배 큰 계산량을 겨눌 수 있지만, 지수와 상수의 작은 오차는 멀리 갈수록 커진다.

막힌 곳

이 장의 μP 는 폭을 넓힐 때의 이야기였지만, 실제 모델은 폭과 함께 층 수도 늘린다. 층을 쌓을수록 잔차 줄기에 더해지는 고침이 늘어나는데, 깊이를 키울 때도 가장 좋은 학습률이 같은 값에 머물게 하려면 층마다 무엇을 더 맞춰야 할까? 학습률 말고 미니배치 크기나 학습률 스케줄의 길이도 모델 크기를 따라 옮겨 갈까?

스케일링 법칙도 물음을 남긴다. 손실이 왜 하필 거듭제곱 꼴로 줄어드는지는 이 장에서 설명하지 않았고, 손실 식은 「같은 데이터를 한 번만 본다」고 놓았다. 쓸 수 있는 글이 바닥나 같은 데이터를 여러 번 되풀이해 학습해야 한다면, 토큰 하나의 값어치는 얼마나 떨어지고 배분은 어떻게 바뀔까? 그리고 무엇보다, 손실이 낮아지면 왜 처음 보는 데이터에서도 그만큼 잘하게 될까?