Một kỹ sư huấn luyện LLM 3.8B đạt 0.384 CORE với 998 đô
Hugo Vergnes huấn luyện mô hình kiểu Llama 3.8B tham số trên 65B token trong 43 giờ trên 8x B200 với chi phí dưới một nghìn đô. Bài viết là một bản ghi trung thực hiếm có về những gì thực sự tạo ra khác biệt.
Hugo Vergnes huấn luyện một LLM decoder-only 3.8B tham số từ đầu đạt 0.384 CORE trên 65.3B token trong 43 giờ với 998 đô trên 8x B200. Dự án, little-lm, là một framework cấu hình-driven lấy cảm hứng từ nanochat của Karpathy. Điểm đáng chú ý không phải là điểm số — mà là đường cong chi phí trên năng lực mà nó ngụ ý cho các kỹ sư độc lập.
Để so sánh: GPT-2 1.5B đạt 0.2565 CORE. nanochat d32 (~1B tham số) đạt 0.310 với chi phí khoảng 1.000 đô. little-lm vượt cả hai một cách đáng kể với cùng ngân sách, phần lớn nhờ B200 mang lại giá trị trên mỗi đơn vị công việc tốt hơn so với H100 được dùng trong các lần chạy nanochat.
Kiến trúc
Mô hình cuối cùng theo kiểu Llama: RMSNorm, RoPE, GQA (24 query head, 8 KV head), MLP relu², QK-norm, logit softcap, residual scalar học được theo từng lớp, và value embedding kiểu ResFormer. Value embedding chiếm 19% số tham số — 14 bảng vocab × kv_dim, một bảng trên mỗi hai lớp. Token embedding và LM head không chia sẻ trọng số mỗi cái đóng góp 154.5M tham số; 28 lớp decoder mang 2,818.7M.
Những gì thực sự hiệu quả
Vergnes dành sáu ngày trên một A100 để huấn luyện mô hình 858M trên FineWeb-Edu đạt PIQA 60.45% — tệ hơn GPT-2 124M từ năm 2019. Phân tích sau đó tạo ra năm thay đổi thu hẹp khoảng cách:
- Lịch trình LR hình thang. 5% warmup, giữ phẳng, giảm tuyến tính trong 50% cuối xuống 5% đỉnh. Lịch trình cosine-to-zero của lần chạy 858M đi ngang ở 70% số bước; eval loss của lần chạy 3.8B vẫn đang giảm ở bước cuối cùng.
- Muon cho tham số ma trận, AdamW cho phần còn lại. Muon chậm hơn khoảng 25% mỗi bước trong benchmark tích lũy nông, nhưng chi phí đó pha loãng xuống còn ~4% ở 7 bước tích lũy gradient.
- ClimbMix thay vì FineWeb-Edu. Vergnes gọi đó là bước nhảy vọt khổng lồ về tốc độ hội tụ, khớp với phát hiện của Karpathy.
- FP8 + đệm vocab. FP8 qua
torch._scaled_mmvới scaling tensorwise động trên cả ba GEMM, cộng với đệm vocab từ 50,257 lên 50,304 (bội số của 64). Cùng lại, +33% thông lượng. - Ngữ cảnh 1024 thay vì 2048. Giảm một nửa ngữ cảnh gần như tăng gấp đôi batch size ở bộ nhớ cố định; thông lượng mỗi token hầu như không đổi vì lần chạy bị chi phối bởi MLP.
Trạng thái ổn định đạt ~480,000 tok/s. Thời gian thực tế 35.9h so với 33h huấn luyện thuần là do CORE eval — mười lần, mỗi lần ~15 phút, chiếm 7% tổng thời gian. Chạy lại cùng công thức ở ngữ cảnh 2048 đạt 0.3840 so với 0.3384 ở 1024; gần như toàn bộ khoảng cách đó đến từ các tác vụ phụ thuộc ngữ cảnh.
Về phần cứng: 92% hoạt động SM, 40% mức chiếm dụng SM, ~1,047 TFLOP/s duy trì trên mỗi B200 (~25% MFU so với đỉnh FP8 dày, ~50% so với bf16). Chiến lược phân tán là DistributedDataParallel thuần — ở 3.8B trên một node, giao tiếp gradient chưa bao giờ là ràng buộc.
Công việc về thông lượng trên một RTX 5090
Trước khi thuê một node, Vergnes đẩy baseline 858M từ 26,144 tok/s lên 37,621 tok/s trên một 5090. FP8 thêm 25%. Đệm vocab thêm 33% tích lũy. Fused linear cross-entropy (FusedLinearCrossEntropyLoss của Liger) chậm hơn 6% mỗi bước ở batch size tương đương nhưng tiết kiệm ~8 GB VRAM, cho phép batch size tăng từ 6 lên 10 và mang lại lợi ích thông lượng ròng. Bỏ cổng SwiGLU (relu², hai matmul thay vì ba) đi từ 183,035 → 214,173 tok/s và tiết kiệm 6 GB — nhưng lưu ý là tỷ lệ trung gian SwiGLU 2.75 không chuyển sang relu²; dùng 4x cho non-gated. Trọng số master bf16 cắt VRAM 27% và tăng thông lượng 2.2x trên cấu hình 1.5B, với chi phí chất lượng nhỏ (CORE 0.22 so với 0.23 ở 4,000 bước).
Những gì không hiệu quả
Che ranh giới tài liệu bằng flex attention — ID tài liệu theo từng token và mặt nạ attention tùy chỉnh — đã bị xóa hoàn toàn. Best-fit packing thay thế nó trong ~10 dòng, và attention quay lại F.scaled_dot_product_attention(..., is_causal=True) vô điều kiện. Karpathy cũng phát hiện điều tương tự: rò rỉ xuyên tài liệu dưới BOS-aligned packing không gây hại nhiều.
Với số tiền gần tương đương cấu hình 1.000 đô của nanochat, little-lm vượt lên một cách đáng kể — và eval loss vẫn đang giảm ở bước cuối cùng.
Thảo luận
0 bình luận
Hãy là người đầu tiên thảo luận.