Kiến trúc mạng
Machine Learning Systems — Tập I, Chương 6
← tất cả bài họcDanh sách cảnh (13 mục, 78 cảnh)
Mục 1Mục đích0:00
Mục 2Nguyên lý kiến trúc2:04
Mục 3MLP: xử lý khuôn mẫu dày đặc8:41
Mục 4CNN: xử lý khuôn mẫu không gian15:31
Mục 5RNN: xử lý khuôn mẫu tuần tự27:43
Mục 6Cơ chế tập trung: xử lý động33:19
Mục 7Transformer: xử lý chuỗi song song39:02
Mục 8Kiến trúc thưa: RecSys44:42
Mục 9Khối dùng chung47:52
Mục 10Nguyên thuỷ tính toán56:36
Mục 11Khung chọn kiến trúc64:23
Mục 12Ngộ nhận và cạm bẫy72:06
Mục 13Tổng kết74:05
📓 Sổ tay thực hành
Chạy trên Colab bằng CPU, không cần cài thêm gì.
1. Giá của một giả định
Đếm tham số, phép nhân cộng dồn và byte của tầng dày đặc, tích chập và tích chập tách theo chiều sâu, đối chiếu với numel() của PyTorch, rồi đếm ResNet-50 và MobileNetV2 thật của torchvision: chữ ký tải công việc, phổ mật độ tính toán, mật độ của từng tầng và tỉ số FLOP so với tỉ số thời gian đo trên CPU.
Mục 2. Nguyên lý kiến trúc · 3. MLP: xử lý khuôn mẫu dày đặc · 4. CNN: xử lý khuôn mẫu không gian · 12. Ngộ nhận và cạm bẫy
chạy dưới 1 phútMở trong Colab ↗2. Tích chập từ bên trong
Viết tích chập bằng bảy vòng lặp rồi bằng im2col, đếm dữ liệu im2col nhân bản và đo ba cách hiện thực trên tầng ImageNet của chương, dựng Winograd F(2×2, 3×3) bằng tay, kiểm lại Ví dụ 1.4 về đẳng biến và chỗ nó vỡ, đếm kết nối cục bộ và chia sẻ tham số, rồi đo thiên kiến quy nạp: MLP và hai CNN nhỏ trên chữ số MNIST bị dịch.
Mục 3. MLP: xử lý khuôn mẫu dày đặc · 4. CNN: xử lý khuôn mẫu không gian · 10. Nguyên thuỷ tính toán · 11. Khung chọn kiến trúc
chạy dưới 1 phútMở trong Colab ↗3. Tuần tự và song song
Viết RNN của chương bằng tay và đo đường tới hạn của nó theo độ dài chuỗi và batch, tính chính xác ma trận điểm tập trung (33.6 MB ở 4,096 token, 240 GB và 7,680 GB của Napkin Math 1.1) và đo nó, viết tập trung chia khối với softmax trực tuyến, dựng một khối transformer bằng tay, rồi tính bức tường băng thông khi sinh token và bộ nhớ đệm KV.
Mục 5. RNN: xử lý khuôn mẫu tuần tự · 6. Cơ chế tập trung: xử lý động · 7. Transformer: xử lý chuỗi song song · 12. Ngộ nhận và cạm bẫy
chạy dưới 1 phútMở trong Colab ↗4. Từ khối dùng chung tới một quyết định kiến trúc
So chuẩn hóa theo batch với chuẩn hóa theo tầng, kiểm Định lý 1.2 về kết nối bỏ qua, tính năng lượng của một tầng theo 3.7 pJ và 640 pJ, tính bức tường dung lượng của bảng embedding và đo một lần tra bảng, dựng bảng độ phức tạp và đặt ba chữ ký vào định luật sắt trên một thiết bị giả định, rồi chọn kiến trúc cho máy bẫy ảnh bằng một bảng khả thi.
Mục 8. Kiến trúc thưa: RecSys · 9. Khối dùng chung · 10. Nguyên thuỷ tính toán · 11. Khung chọn kiến trúc · 12. Ngộ nhận và cạm bẫy · 13. Tổng kết
chạy dưới 1 phútMở trong Colab ↗5. Bên trong cơ chế tập trung
Viết cơ chế tập trung như một phép tra cứu mềm và kiểm phương trình 7 với scaled_dot_product_attention, đo vì sao phải chia cho √d_k (softmax bão hoà, tràn trên FP16 ở đầu 128 chiều), xem mặt nạ nhân quả chặn rò rỉ và một mô hình học gian lận khi thiếu nó, so mã hoá vị trí hình sin với RoPE, đếm cái giá của nhiều đầu, rồi huấn luyện một transformer hai tầng trên CPU để đảo ngược chuỗi, xem bản đồ tập trung của từng đầu, tắt từng đầu, và thử nó trên chuỗi dài hơn lúc huấn luyện.
Mục 6. Cơ chế tập trung: xử lý động · 7. Transformer: xử lý chuỗi song song
chạy khoảng 2 phútMở trong Colab ↗6. Làm cơ chế tập trung rẻ hơn
Đếm byte qua bộ nhớ chậm của tập trung ngây thơ và tập trung chia khối kiểu FlashAttention, xem kernel chia khối của scaled_dot_product_attention trên CPU, viết vòng sinh token có và không có bộ nhớ đệm KV, tính bộ nhớ đệm của ví dụ 32 tầng, 32 đầu khi các đầu dùng chung khoá và giá trị (MQA, GQA) rồi huấn luyện bài nhớ lại để xem mất gì, thử cửa sổ trượt theo kiểu xen kẽ của GPT-3, và thử tập trung tuyến tính: trạng thái cố định như RNN, nhanh hơn ở chuỗi dài nhưng nhớ kém hơn.
Mục 6. Cơ chế tập trung: xử lý động · 7. Transformer: xử lý chuỗi song song · 9. Khối dùng chung · 12. Ngộ nhận và cạm bẫy
chạy khoảng 3 phútMở trong Colab ↗