Mô hình Nên Ngạc nhiên Đến Mức Nào?
Từ Logits Đến Xác suất
Sau 12 khối transformer, ANDREA-120M tạo ra một vector gồm vocab_size số cho mỗi vị trí token: các logits. Đối với ANDREA-120M, vocab_size = 8449, vì vậy mỗi vị trí xuất ra 8449 logits. Logits là các điểm số chưa chuẩn hóa; một số dương, một số âm, không có ràng buộc tổng bằng 1.
Softmax chuyển đổi logits thành phân phối xác suất:
p_i = exp(logit_i) / sum_j exp(logit_j)
Sau softmax, tất cả 8449 số nằm giữa 0 & 1, tổng bằng 1. Mô hình gán xác suất cho mọi token tiếp theo có thể.
Hàm Mất Mát Cross-Entropy
Việc huấn luyện yêu cầu một hàm mất mát: một con số đo lường mức độ sai lệch của dự đoán mô hình so với câu trả lời đúng đã cho. Cross-entropy hoạt động cho mô hình ngôn ngữ:
loss_t = -log(p_correct_token_t)
Lấy xác suất dự đoán của mô hình cho token tiếp theo thực tế (token trong dữ liệu huấn luyện). Lấy log âm của xác suất đó. Đó là loss cho một vị trí.
Tại sao dùng Log Âm
Ba tính chất làm cho -log(p) trở thành hàm loss tự nhiên:
- -log(1) = 0: Khi mô hình dự đoán đúng token với độ tin cậy 100%, loss bằng không.
- -log(0) = ∞: Khi mô hình gán xác suất bằng không cho token đúng, loss là vô hạn. (Trên thực tế, softmax không bao giờ xuất ra chính xác 0; loss vẫn hữu hạn nhưng lớn.)
- Đơn điệu: Khi xác suất dự đoán cho token đúng tăng lên, loss giảm mượt mà.
Độ tin cậy cao hơn vào câu trả lời đúng = mất mát thấp hơn. Mục tiêu huấn luyện rất đơn giản: tối đa hóa xác suất dự đoán cho token tiếp theo thực tế.
Mất mát Theo Chuỗi
ANDREA huấn luyện trên các chuỗi có độ dài 1024 (cửa sổ ngữ cảnh). Mỗi chuỗi tạo ra 1024 dự đoán token tiếp theo. Mất mát chuỗi là trung bình trên tất cả các vị trí:
sequence_loss = mean(-log(p_correct_t)) for t in 0..1023
Sau đó, các tổn thất chuỗi được tính trung bình trên batch (ANDREA-120M sử dụng batch_size = 8). Một số vô hướng cho mỗi bước huấn luyện. Con số đó là những gì mà đường cong tổn thất vẽ.
Tính Toán Tổn Thất Cho Một Vị Trí
Perplexity = exp(loss)
Thang Đo Thân Thiện Hơn
Các giá trị loss như 2.0 hoặc 3.43 không ngay lập tức truyền tải những gì mô hình có thể làm. Perplexity chuyển đổi loss sang một thang đo trực quan hơn:
perplexity = exp(loss)
Perplexity trả lời một câu hỏi rõ ràng: mô hình thực sự chọn từ bao nhiêu token có khả năng bằng nhau? Perplexity là 7 nghĩa là mô hình hành xử như thể đang chọn từ 7 token tiếp theo khả dĩ tại mỗi vị trí. Perplexity là 1 nghĩa là dự đoán hoàn hảo.
Các Cặp Loss-Perplexity Phổ Biến
| Loss | Perplexity | Cảm giác như thế nào |
|---|---|---|
| 0.0 | 1.0 | Dự đoán hoàn hảo |
| 1.0 | 2.7 | Chọn lựa giữa ~3 token hợp lý |
| 2.0 | 7.4 | Lãnh thổ SMMA cuối cùng của ANDREA-12M |
| 3.0 | 20.1 | Văn bản hợp lý nhưng không chắc chắn |
| 3.43 | 30.9 | Mức tối thiểu của ANDREA-120M v1 (trước khi đánh bóng) |
| 5.0 | 148 | Giai đoạn huấn luyện sớm, học phân bố từ vựng |
| 9.04 | 8449 | Mức cơ sở ngẫu nhiên cho từ vựng của ANDREA-120M |
Perplexity đặt các giá trị loss vào ngữ cảnh: loss 2.0 nghĩa là mô hình hiệu quả chọn từ ~7 token, không phải từ 8449.
Đường cơ sở ngẫu nhiên (Random-Chance Baseline)
Một mô hình không biết gì & đoán đồng đều sẽ gán xác suất 1/V cho mọi token, trong đó V = vocab_size:
p_uniform = 1 / V
loss = -log(1/V) = log(V)
Đối với ANDREA-120M với V = 8449:
loss_uniform = ln(8449) ≈ 9.04
Đối với ANDREA-12M với V = 2305:
loss_uniform = ln(2305) ≈ 7.74
Bất kỳ giá trị loss nào cao hơn mức cơ bản này có nghĩa là mô hình hoạt động kém hơn ngẫu nhiên. Bất kỳ giá trị loss nào thấp hơn nó có nghĩa là mô hình đã học được điều gì đó: nó tập trung khối lượng xác suất vào một tập con nhỏ hơn của các token so với phân phối đồng đều.
Đọc Giá trị Loss
Làm Mịn Nhiễu Theo Từng Bước
Raw Loss Rất Ồn Ào
Loss theo từng bước dao động lung tung. Bandit của ANDREA chọn một nguồn khác nhau cứ mỗi 7-42 bước; một số nguồn (định nghĩa từ điển) tạo ra loss dễ; những nguồn khác (đoạn văn gutenberg) tạo ra loss khó hơn. Vẽ loss thô theo số bước tạo ra một đám scatter hỗn loạn.
Trung bình trượt biến đổi làm mịn (SMMA) làm giảm nhiễu & làm nổi bật xu hướng. Proxy huấn luyện của ANDREA tính toán SMMA như sau:
SMMA[0] = loss[0]
SMMA[t] = (SMMA[t-1] * (N-1) + loss[t]) / N
Với N = 100 (cửa sổ làm mịn mặc định của ANDREA), mỗi giá trị SMMA mới trộn 99% SMMA trước đó với 1% loss bước mới. Các đỉnh đột ngột được hấp thụ; các thay đổi kéo dài xuất hiện dần dần.
Tại Sao Không Chỉ Lấy Trung Bình Đơn Giản?
Trung bình trượt đơn giản trên 100 bước gần nhất yêu cầu lưu trữ 100 giá trị loss. SMMA chỉ lưu một giá trị (trung bình chạy) & một hằng số (kích thước cửa sổ). Tiết kiệm bộ nhớ, tính toán đơn giản, & mượt mà đủ để đọc đường cong.
Các trọng số làm mượt khác nhau trả lời các câu hỏi khác nhau:
- N = 10: theo dõi các thay đổi ngắn hạn; hữu ích trong quá trình chuyển pha
- N = 100: mặc định của ANDREA; theo dõi tiến độ trung hạn
- N = 1000: chỉ xu hướng dài hạn; hữu ích vào cuối quá trình huấn luyện
Những gì ANDREA Theo dõi
Cứ mỗi 100 bước, proxy huấn luyện ghi loss.json với SMMA hiện tại, loss thô, số bước, & phân tích theo nguồn. Bảng điều khiển tại training.ai.unturf.com/dashboard thăm dò file này mỗi 10 giây. Người xem bên ngoài thấy tiến độ trực tiếp; bảng điều khiển chỉ đọc.
Đường cong Thực tế của ANDREA-12M
Công thức Đạt SMMA 2.0
| Steps | Avg Loss | Notes |
|---|---|---|
| 0--2.5K | 4.50 | Khởi tạo ngẫu nhiên, học sớm |
| 2.5K--5K | 3.88 | Giảm nhanh qua giai đoạn cấu trúc |
| 5K--10K | 3.30 | Tiếp cận ranh giới mạch lạc |
| 10K--20K | 2.80 | Bandit tìm hỗn hợp tối ưu |
| 20K--25K | 2.40 | Đỉnh cao --- thiếu dữ liệu |
| 25K--30K | 2.50 | Giới thiệu dữ liệu Hermes + khởi động lại LR |
| 30K--35K | 2.35 | Hermes được tích hợp, mức thấp mới |
| 35K--40K | 2.10 | Tập trung 4-arm, giảm mạnh |
| 40K--43.6K | 2.00 | Lãnh thổ kiến thức, SMMA dưới 2.0 |
Ba giai đoạn nổi bật:
1. Giảm mạnh ban đầu (0-10K). Loss giảm từ 4.50 xuống 3.30 khi mô hình học phân phối từ vựng & cấu trúc lượt cơ bản. Đường cơ sở ngẫu nhiên ln(2305) ≈ 7.74 nằm cao trên đường cong này; mô hình tập trung khối lượng xác suất nhanh chóng một khi embeddings ổn định.
2. Bảng lửng (20K-25K). Loss dừng ở 2.40. Bandit đã hết không gian trên hỗn hợp nguồn hiện tại. Dữ liệu Hermes được thêm vào bước 25K, cộng với khởi động lại LR ấm, đã phá vỡ bảng lửng.
3. Giai đoạn giảm cuối (35K-43.6K). Chương trình học thu hẹp từ 16 nguồn xuống 4 (hermes3-general + dictionary + gutenberg + chat). Giảm loss dốc hơn so với full-arm bandit. SMMA cuối cùng: 2.0.
ANDREA-120M v1: Một đường cong cảnh báo
Tính toán từ vựng tương tự: ln(8449) ≈ 9.04. ANDREA-120M v1 đạt SMMA 3.43 tại bước 110K (điểm thấp nhất của nó), sau đó phân kỳ:
| Steps | EMA Loss | Trend |
|---|---|---|
| 26K--40K | 4.29 | Đang hội tụ |
| 70K--85K | 3.60 | Vùng tốt nhất |
| 85K--110K | 3.43 | Tối thiểu |
| 110K--125K | 3.54 | Đang phân kỳ |
| 140K--155K | 4.05 | Đang phân kỳ |
| 155K--165K | 4.54 | Sụp đổ |
Các giá trị loss hợp lý về mặt số học xuyên suốt (3.43 nằm tốt dưới mức ngẫu nhiên 9.04). Nhưng các mẫu bị sụp đổ lặp lại: Budy Budy Budy Budy. Loss kể một câu chuyện đánh lừa; kiểm tra mẫu không phải vậy.
Early stopping có cổng coherence của v2 (hoạt động 78) thêm một tín hiệu song song: độ đa dạng bigram, độ đa dạng trigram, sự hiện diện từ tiếng Anh, độ đa dạng ký tự. Khi cả bốn điểm số đều dưới 30 trong 5 mẫu liên tiếp, huấn luyện tự động dừng. Tín hiệu này sẽ bắt được v1 ở bước 132K, tiết kiệm 3.8 ngày tính toán.
Mỗi Giai Đoạn Cho Bạn Biết Điều Gì
Bài học 120M v1
Hai Tín Hiệu Độc Lập
ANDREA-120M v1 đạt SMMA 3.43 tại bước 110K. Về mặt số học: tốt hơn 273× so với ngẫu nhiên (perplexity 31 so với kích thước từ vựng 8449). Trông tuyệt vời trên đường cong.
Mẫu tại bước 110K::
''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
Loss và coherence là các tín hiệu độc lập. Loss thấp có nghĩa là mô hình tập trung khối lượng xác suất một cách hiệu quả. Coherence có nghĩa là mô hình tạo ra văn bản mà con người có thể đọc được. Điều đầu tiên không ngụ ý điều thứ hai.
Tại sao khoảng cách tồn tại
Một mô hình có thể giảm loss bằng cách:
1. Học các mẫu ngôn ngữ thực tế (tốt): sự hòa hợp chủ-ngữ, các cụm từ phổ biến, các liên kết sự kiện.
2. Học thuộc lòng các đặc trưng cấu trúc (xấu): các mẫu lặp lại tần suất cao, các đặc thù cụ thể của tập dữ liệu, các điểm hút thoái hóa.
Cả hai đều giảm loss. Cái đầu tiên tạo ra các mẫu mà con người thích. Cái thứ hai tạo ra Budy Budy Budy Budy. Mục tiêu huấn luyện một mình không thể phân biệt chúng.
ANDREA-120M v3 Polish: Nơi Loss & Coherence Gặp Nhau
Sau khi đánh bóng v3 (từ bước 112K trở đi), ANDREA-120M tạo ra:
Step 112,584, loss 0.30, ppl 1::
> [extinction prompt]
< nhện đen montano còn sống, vẹt carolina đã tuyệt chủng.
Cả hai sự kiện đều đúng. Vẹt carolina được tuyên bố tuyệt chủng năm 1939; khỉ nhện đen còn tồn tại. Mất mát thấp (0.30) VÀ hồi tưởng sự kiện mạch lạc.
Bước 112,500, loss 1.94, ppl 7::
> Làm thế nào để tìm các gói lỗi thời trong dự án Python?
< Sử dụng pip list --outdated names để xem danh sách các gói pip...
Loss cao hơn (1.94 → ppl 7) nhưng công cụ đúng nổi lên từ dữ liệu huấn luyện. Độ trôi chảy của cách diễn đạt vẫn đang phát triển ở mốc huấn luyện 56%.
Kỷ Luật Hai Tín Hiệu
Các đường ống huấn luyện hiện đại theo dõi CẢ HAI:
- Đường cong loss. Cho bạn biết liệu mô hình có đang học được gì định lượng không.
- Kiểm tra mẫu. Cho bạn biết những gì mô hình học được có hữu ích không.
v2 đã thêm dừng sớm có cổng coherence (hoạt động 78). v3 polish là một nhiễu curriculum được kích hoạt bởi kiểm tra mẫu, không phải bởi giá trị loss. Loss một mình là cần thiết nhưng không bao giờ đủ.