English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

게스트
1 / ?
수업 목록으로

Two Problems at Either End of Training [BLOCK_TYPE SECTION/STEP]

Early-Step Problem: Fresh Weights Cannot Take Big Steps
[BLOCK_TYPE SECTION/STEP]

스텝 0에서 모든 가중치는 0에 가까운 분포에서 샘플링된 작은 무작위 값으로 시작합니다. 활성화 값은 0 근처에 머무릅니다. 그래디언트는 최종 솔루션에 대한 정보를 거의 포함하지 않습니다. 이러한 그래디언트에 최대 학습률을 적용하면 모델은 의미 있는 구조를 담지 않은 방향으로 초기화 지점에서 크게 벗어나게 됩니다. [BLOCK_TYPE SECTION/STEP]

[BLOCK_TYPE SECTION/STEP]

ANDREA-120M v1이 이 실수를 저질렀습니다. 워밍업이 없었습니다. 스텝 1에서 새로 초기화된 가중치에 lr = 0.0003을 적용했습니다. 결과: 모델은 수백 스텝 만에 나쁜 파라미터 분지(basin)에 빠졌습니다. 손실 수치는 합리적으로 보였지만, 스텝 80K에서 반복 루프를 생성했고 회복하지 못했습니다.


Late-Step Problem: 큰 스텝은 솔루션을 다듬을 수 없다

스텝 100K에 이르면 모델은 대략적인 구조를 학습한 상태입니다. 이제 그래디언트는 미세한 신호를 전달합니다: 어떤 토큰 가중치에 작은 조정이 필요한지, 어떤 어텐션 헤드에 약간의 재조정이 필요한지. 이 단계에서 최고 학습률을 적용하면 모든 미세 조정을 지나치게 크게 만들어 최적점 주변에서 진동만 일으키고 안정적으로 수렴하지 못합니다.


훈련의 양 끝에서 발생하는 두 가지 문제. 하나의 스케줄로 두 영역을 모두 해결합니다: 부드럽게 상승하고, 매끄럽게 감소합니다.

Linear Warmup: 처음 2000 스텝

공식

ANDREA-120M v2는 2000 스텝 동안 선형 워밍업을 사용합니다:


lr(t) = lr_scheduled(t) * min(1, (t + 1) / warmup_steps)


여기서 t는 스텝 번호(0부터 시작)이며, warmup_steps = 2000이고, lr_scheduled(t)는 웜업을 무시했을 때 코사인 스케줄이 지정하는 학습률입니다.


공식 해석:


- t = 0일 때: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. 첫 스텝은 매우 작습니다.

- t = 1000일 때: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. 절반 강도.

- t = 2000일 때: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. 전체 강도.

- t > 2000일 때: clamp가 승수를 1로 유지하므로 warmup은 더 이상 영향을 주지 않고, cosine decay만 작동합니다.


0에서 선형적으로 증가하는 ramp는 모델이 2000 스텝 동안 거친 표현을 형성할 시간을 줍니다. 그 후 AdamW와 gradient clipping이 full-strength 업데이트를 적용합니다. 2000 스텝까지 가중치가 충분히 이동했기 때문에 peak lr이 나쁜 basin으로 밀어내지 않습니다.

Warmup 중 LR 계산

ANDREA-120M v2는 `lr_scheduled = 0.0003` (peak)와 `warmup_steps = 2000`을 사용합니다. Warmup 동안 cosine decay는 무시합니다 (`lr_scheduled`는 일정하다고 가정). 다음 단계에서의 실제 학습률을 계산하세요: (a) step 0, (b) step 500, (c) step 2000, (d) step 5000. 산술 과정을 보여주세요.

워밍업 이후 코사인 감쇠

곡선

워밍업이 2000 스텝에서 끝난 후, 학습률은 남은 스텝 동안 피크에서 0까지 코사인 곡선을 따릅니다:


lr(t) = lr_min + (lr_peak - lr_min) 0.5 (1 + cos(pi * progress))


progress = (t - warmup_steps) / (total_steps - warmup_steps)로 정의합니다. progress = 0 (warmup 직후)일 때 cos(0) = 1이므로 lr = peak입니다. progress = 1 (마지막 스텝)일 때 cos(pi) = -1이므로 lr = lr_min (보통 0 또는 아주 작은 값)입니다.


왜 코사인인가? 선형이나 지수 감쇠가 아닌 이유는?

코사인 감쇠는 peak 근처에서는 천천히 시작(곡선이 거의 평평), 중간 구간에서 가속, 마지막으로 다시 느려집니다. 세 가지 장점:


1. Peak 근처에서 plateau. Warmup 직후에도 거의 최대 lr를 유지하므로, 모델이 긴 고학습률 구간을 활용해 표현을 충분히 학습할 수 있습니다.

2. 중간 구간에서 부드러운 전환. AdamW가 흡수해야 할 급격한 변화가 없습니다.

3. 0 근처 평탄화. 마지막 단계에서는 미세 조정을 위해 lr이 매우 작아지며, 이는 simulated annealing과 유사합니다.


ANDREA-120M은 총 200K 스텝 동안 학습하며, 그 중 198K 스텝은 2000-step warmup 이후 cosine decay 구간입니다.


LR Warmup & Cosine Decay

ANDREA-12M의 25K 스텝 Warm Restart

평탄화 구간

ANDREA-12M은 lr = 0.0004 피크에서 cosine decay를 적용하여 60K 스텝 동안 학습했습니다. 약 22K 스텝에서 손실이 EMA ~2.4로 평탄화되었습니다. Cosine decay로 인해 lr이 ~0.00015까지 감소했습니다. bandit은 다양한 데이터를 계속 공급했지만, 모델은 더 이상 개선되지 않았습니다.


진단: lr이 너무 많이 감쇠하여 모델이 현재 basin에서 벗어나지 못했습니다. Hermes 데이터가 커리큘럼에 들어올 예정이었고(step 25K), 590K개의 새로운 대화를 가져올 것이었습니다. 모델은 그 데이터 충격을 흡수할 에너지가 필요했습니다.


재시작

step 25K에서 스케줄은 warm restart를 실행했습니다: lr을 감쇠된 0.00015에서 원래 피크인 0.0004로 급상승시킨 후, 남은 단계에 대해 코사인 감쇠를 재개했습니다.


Loshchilov & Hutter (2017)는 이 기법을 "SGDR"(stochastic gradient descent with warm restarts)이라고 명명했습니다. 직관: 높은 lr은 충분한 운동 에너지를 더해 지역 basin에서 벗어나 인접한 basin들을 탐색하게 하고, 이후 코사인 감쇠는 더 나은 basin으로 재어닐링합니다.


Outcome. Loss EMA dropped from 2.40 to 2.10 over the next 10K steps after the restart. Model shipped at step 43.6K with SMMA loss 2.0, demonstrating coherent Q&A turn structure.


ANDREA-120M v2는 warm restart를 사용하지 않기로 결정했습니다. 200K 스텝을 사용할 수 있고 파라미터 수가 훨씬 더 많기 때문에, 부드러운 단조 감소가 더 안정적인 수렴을 가져왔습니다. Restart는 학습이 짧고 plateau가 알려진 데이터 변화와 일치할 때 가장 효과적입니다.

v1의 실패 진단

ANDREA-120M v1은 step 1부터 `lr = 0.0003`을 사용했으며 warmup이 없었습니다. step 80K에서 샘플들은 `region region region region`을 생성했습니다. 메커니즘적으로 이유를 설명하세요: `lr = 0.0003`과 2000-step warmup 하에서 step 1부터 100까지 새로 초기화된 가중치 행렬에 어떤 일이 일어나는지 단계별로 설명하세요. warmup이 없는 경로가 왜 나쁜 basin에 빠지게 되는가?

Schedule Choices in Practice

120M 모델을 노이즈가 많은 데이터셋으로 총 50K 스텝만 학습한다면, ANDREA-120M v2의 2000 스텝보다 warmup을 더 길게 할지, 더 짧게 할지 선택하세요. 하나의 메커니즘적 근거로 정당화하세요.

Adjacent Activities

LR schedule과 연결되는 세 가지 sibling:


- Activity 10: AdamW. Warmup은 AdamW의 bias correction이 안정화될 시간을 제공합니다. Warmup이 없으면 step 1에서 10배 증폭이 gradients의 노이즈를 그대로 증폭시키지만, warmup이 있으면 multiplier가 실제 신호에 적용됩니다.

- Activity 12: Gradient clipping. Clipping은 AdamW 이전에 gradient L2 norm을 1.0으로 제한합니다. Warmup은 lr을 감쇠시키고, clipping은 g를 감쇠시킵니다. 이 둘은 충격이 큰 curriculum에서도 초기 단계를 안전하게 유지합니다.

- Activity 22: Checkpointing. Warm restart는 checkpoint에서 optimizer state (m, v, step counter)를 불러온 다음, 실행 중에 schedule을 변경해야 합니다. ANDREA-12M의 step 25K에서의 restart는 이를 보여주며, state-loading 로직을 올바르게 구현하기 위해 두 번의 시도가 필요했습니다.


Schedule, optimizer, & clipping은 안정성 삼각형을 형성합니다. 한 꼭짓점을 제거하면 ANDREA는 v1 붕괴를 반복하게 됩니다.