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

un

khách
1 / ?
trở lại bài học

Hai Vấn Đề Ở Hai Đầu Quá Trình Huấn Luyện

Vấn Đề Giai Đoạn Đầu: Trọng Số Mới Không Thể Thực Hiện Bước Lớn

Tại bước 0, mọi trọng số bắt đầu như một số ngẫu nhiên nhỏ được lấy mẫu từ phân phối gần 0. Các kích hoạt vẫn gần 0. Gradient mang rất ít thông tin về giải pháp cuối cùng. Áp dụng tốc độ học đỉnh cho các gradient này & mô hình nhảy xa khỏi điểm khởi tạo theo các hướng không mã hóa cấu trúc có ý nghĩa.


ANDREA-120M v1 đã mắc sai lầm này. Không có warmup. Bước 1 sử dụng lr = 0.0003 trên trọng số được khởi tạo mới. Kết quả: mô hình rơi vào một vùng tham số xấu chỉ trong vài trăm bước. Các giá trị loss trông hợp lý; các mẫu sinh ra vòng lặp lặp lại ở bước 80K & không bao giờ phục hồi.


Vấn đề ở giai đoạn muộn: Các bước lớn không thể tinh chỉnh giải pháp

Đến bước 100K, mô hình đã học được cấu trúc thô. Gradient lúc này mang tín hiệu chi tiết: token nào cần điều chỉnh trọng số nhỏ, head attention nào cần cân bằng nhẹ. Áp dụng tốc độ học cao nhất ở giai đoạn này sẽ làm vượt quá mọi điều chỉnh tinh vi, gây dao động quanh điểm tối ưu mà không thể ổn định.


Hai vấn đề, hai đầu mút của quá trình huấn luyện. Một lịch trình, hai vùng: tăng dần nhẹ nhàng, sau đó giảm mượt mà.

Linear Warmup: 2000 bước đầu tiên

Công thức

ANDREA-120M v2 sử dụng linear warmup trong 2000 bước:


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


trong đó t là số bước (đánh số từ 0), warmup_steps = 2000, và lr_scheduled(t) là giá trị mà lịch biểu cosine sẽ đưa ra nếu bỏ qua giai đoạn warmup.


Đọc công thức:


- Tại t = 0: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. Bước đầu tiên rất nhỏ.

- Tại t = 1000: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. Nửa cường độ.

- Tại t = 2000: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. Cường độ đầy đủ.

- Khi t > 2000: hàm clamp giữ hệ số nhân ở mức 1, giai đoạn warmup không còn ảnh hưởng, chỉ còn cosine decay hoạt động.


Đường ramp tuyến tính từ 0 cho mô hình 2000 bước để hình thành các biểu diễn thô trước khi AdamW & gradient clipping nhận các cập nhật cường độ đầy đủ. Đến bước 2000, trọng số đã dịch chuyển đủ để lr đỉnh không đẩy chúng vào vùng xấu.

Tính LR Trong Giai Đoạn Warmup

ANDREA-120M v2 dùng `lr_scheduled = 0.0003` (đỉnh) & `warmup_steps = 2000`. Bỏ qua cosine decay trong warmup (giả sử `lr_scheduled` giữ nguyên). Tính learning rate thực tế tại: (a) bước 0, (b) bước 500, (c) bước 2000, (d) bước 5000. Trình bày phép tính.

Giảm Cosine Sau Warmup

Đường cong

Sau khi warmup kết thúc ở bước 2000, learning rate theo đường cong cosine từ giá trị đỉnh giảm về 0 trong các bước còn lại:


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


where progress = (t - warmup_steps) / (total_steps - warmup_steps). Tại progress = 0 (vừa qua giai đoạn warmup), cos(0) = 1, lr = peak. Tại progress = 1 (bước cuối cùng), cos(pi) = -1, lr = lr_min (thường là 0 hoặc một giá trị sàn rất nhỏ).


Tại sao dùng Cosine thay vì Linear hoặc Exponential?

Cosine decay bắt đầu chậm (đường cong gần như phẳng gần đỉnh), tăng tốc ở giữa, rồi chậm lại khi gần zero. Có ba lợi ích:


1. Đoạn plateau gần peak. Các bước ngay sau warmup vẫn nhận gần như toàn bộ lr, giúp mô hình có một khoảng dài với learning rate cao để xây dựng biểu diễn.

2. Chuyển tiếp mượt mà qua giai đoạn giữa. Không có sự thay đổi đột ngột mà AdamW phải xử lý.

3. Đạt plateau gần zero. Các bước cuối cùng nhận lr rất nhỏ để tinh chỉnh chi tiết, tương tự simulated annealing.


ANDREA-120M huấn luyện tổng cộng 200K bước; 198K trong số đó nằm trong vùng cosine decay sau 2000 bước warmup.


LR Warmup & Cosine Decay

Warm Restart của ANDREA-12M tại Bước 25K

Điểm Plateau

ANDREA-12M được huấn luyện 60K bước với cosine decay từ lr = 0.0004 đỉnh. Khoảng bước 22K, loss đạt plateau với EMA ~2.4. Cosine decay đã giảm lr xuống ~0.00015. Bandit tiếp tục cung cấp dữ liệu đa dạng; mô hình ngừng cải thiện.


Chẩn đoán: lr đã giảm quá sâu khiến mô hình không thể thoát khỏi vùng cực tiểu hiện tại. Dữ liệu Hermes sắp được đưa vào chương trình học (bước 25K), mang theo 590K cuộc hội thoại mới. Mô hình cần năng lượng để hấp thụ cú sốc dữ liệu đó.


Khởi động lại

Tại bước 25K, lịch trình thực hiện một khởi động lại ấm: tăng đột biến lr từ 0.00015 (đã suy giảm) trở lại 0.0004 (đỉnh ban đầu), sau đó tiếp tục suy giảm cosine trong các bước còn lại.


Loshchilov & Hutter (2017) gọi kỹ thuật này là “SGDR” (stochastic gradient descent with warm restarts). Ý tưởng: lr cao cung cấp đủ năng lượng động học để thoát khỏi vùng cực tiểu cục bộ và khám phá các vùng lân cận; sau đó suy giảm cosine sẽ làm nguội dần để ổn định vào vùng cực tiểu tốt hơn.


Kết quả. Loss EMA giảm từ 2.40 xuống 2.10 trong 10K bước sau khi khởi động lại. Mô hình được xuất tại bước 43.6K với SMMA loss 2.0, thể hiện cấu trúc lượt Q&A mạch lạc.


ANDREA-120M v2 chọn KHÔNG sử dụng warm restart: với 200K bước huấn luyện và số lượng tham số lớn hơn nhiều, quá trình suy giảm mượt mà theo hàm số đơn điệu mang lại sự hội tụ ổn định hơn. Warm restart hiệu quả nhất khi quá trình huấn luyện ngắn và khi plateau xảy ra trùng với sự thay đổi dữ liệu đã biết.

Chẩn đoán lỗi của v1

ANDREA-120M v1 sử dụng `lr = 0.0003` ngay từ bước 1, không có warmup. Đến bước 80K, mẫu sinh ra `region region region region`. Hãy giải thích cơ chế: lần lượt mô tả điều gì xảy ra với ma trận trọng số vừa khởi tạo trong các bước 1 đến 100 khi dùng `lr = 0.0003` so với khi dùng warmup 2000 bước. Tại sao đường không warmup lại rơi vào một basin xấu?

Lựa chọn Lịch trình trong Thực hành

Nếu bạn đang huấn luyện một mô hình 120M trên tập dữ liệu nhiễu trong TỔNG CỘNG chỉ 50K bước, bạn sẽ sử dụng giai đoạn warmup dài hơn hay ngắn hơn so với 2000 bước của ANDREA-120M v2? Hãy biện minh bằng một lập luận cơ chế.

Các Hoạt động Liên quan

Ba anh em liên kết với Lịch trình Tốc độ Học:


- Hoạt động 10: AdamW. Giai đoạn warmup giúp AdamW có thời gian ổn định bias correction. Nếu không có warmup, hệ số nhân 10x ở bước 1 sẽ khuếch đại nhiễu trong gradient; khi có warmup, hệ số nhân sẽ tác động lên tín hiệu thực.

- Hoạt động 12: Gradient clipping. Việc clipping giới hạn L2 norm của gradient ở mức 1.0 TRƯỚC AdamW. Warmup làm giảm lr; clipping làm giảm g. Cùng nhau, chúng giữ các bước đầu an toàn ngay cả với các chương trình học dễ gây sốc.

- Hoạt động 22: Checkpointing. Một warm restart đòi hỏi nạp trạng thái optimizer (m, v, step counter) từ checkpoint, sau đó thay đổi lịch huấn luyện giữa chừng. ANDREA-12M minh họa việc restart tại bước 25K; phải mất hai lần thử mới hoàn thiện logic nạp trạng thái.


Lịch huấn luyện, optimizer và clipping tạo thành tam giác ổn định. Mất một đỉnh, ANDREA sẽ lặp lại sự sụp đổ ở phiên bản v1.