Huấn luyện mô hình — khi định luật sắt trở thành công cụ hằng ngày
Machine Learning Systems — Tập I, Chương 8
← tất cả bài họcDanh sách cảnh (9 mục, 100 cảnh)
Mục 1Mục đích0:00
Mục 2Nền tảng hệ thống huấn luyện và định luật sắt2:25
Mục 3Nền tảng toán học11:35
Mục 4Kiến trúc quy trình huấn luyện39:41
Mục 5Xác định điểm nghẽn59:15
Mục 6Tối ưu quy trình huấn luyện64:12
Mục 7Mở rộng hệ thống huấn luyện97:17
Mục 8Ngộ nhận và cạm bẫy107:35
Mục 9Tổng kết110:13
📓 Sổ tay thực hành
Chạy trên Colab bằng CPU, không cần cài thêm gì.
1. Định luật sắt của huấn luyện: đếm phép toán, đo mức sử dụng, tính hoá đơn
Đếm FLOP một tầng GPT-2 tới cùng, đếm vì sao lượt xuôi cộng ngược gấp 3 lượt xuôi, đo thông lượng đỉnh và mức sử dụng của CPU theo kích thước batch, rồi tính thuê hay mua cụm cho Llama 2 70B, MFU và năng lượng một lần chạy.
Mục 1. Mục đích · 2. Nền tảng hệ thống huấn luyện và định luật sắt · 3. Nền tảng toán học · 4. Kiến trúc quy trình huấn luyện · 5. Xác định điểm nghẽn · 6. Tối ưu quy trình huấn luyện · 7. Mở rộng hệ thống huấn luyện
chạy dưới 1 phútMở trong Colab ↗2. Bộ tối ưu và batch: quỹ đạo, trạng thái, lịch tốc độ học và tích luỹ gradient
Thả SGD, động lượng, RMSprop và Adam lên một mặt mất mát, đếm trạng thái mà từng bộ tối ưu của PyTorch giữ, đo nhiễu gradient theo 1/√B, vẽ lịch tốc độ học của GPT-2 XL, rồi kiểm rằng tích luỹ gradient cho đúng gradient của batch lớn và tìm hai cách làm nó sai.
Mục 3. Nền tảng toán học · 4. Kiến trúc quy trình huấn luyện · 6. Tối ưu quy trình huấn luyện · 8. Ngộ nhận và cạm bẫy
chạy dưới 1 phútMở trong Colab ↗3. Bộ nhớ huấn luyện: bốn số hạng, độ chính xác hỗn hợp và lưu điểm
Đếm bằng hook bốn số hạng của phương trình bộ nhớ huấn luyện, nhân công thức 16 byte mỗi tham số lên 7, 20 và 175 tỷ tham số, đếm hệ số 5 byte của ma trận điểm attention và dựng lại bảng giá trị kích hoạt của GPT-2, đọc FP32, FP16, BF16 từ PyTorch và xem gradient thật rơi khỏi miền FP16, rồi đếm bộ nhớ và số lần tính lại của torch.utils.checkpoint và đi lại phía bộ nhớ của ca GPT-2 trên một V100.
Mục 1. Mục đích · 3. Nền tảng toán học · 4. Kiến trúc quy trình huấn luyện · 6. Tối ưu quy trình huấn luyện · 8. Ngộ nhận và cạm bẫy · 9. Tổng kết
chạy dưới 1 phútMở trong Colab ↗4. Di chuyển dữ liệu: quy trình nạp, nạp trước, FlashAttention và AllReduce
Áp quy tắc chặng chậm nhất cho quy trình dữ liệu và lần theo quy trình GPT-2 của chương từ đĩa tới PCIe, đo nạp trước bằng một luồng nền và đo vì sao GIL chặn luồng Python, viết attention chia khối với softmax trực tuyến và kiểm nó khớp attention chuẩn, rồi mô phỏng AllReduce vòng, đếm byte mỗi GPU gửi và tính tường mạng của chương.
Mục 3. Nền tảng toán học · 4. Kiến trúc quy trình huấn luyện · 5. Xác định điểm nghẽn · 6. Tối ưu quy trình huấn luyện · 7. Mở rộng hệ thống huấn luyện · 8. Ngộ nhận và cạm bẫy
chạy dưới 1 phútMở trong Colab ↗