Phục vụ mô hình — mỗi yêu cầu một ngân sách độ trễ
Machine Learning Systems — Tập I, Chương 13
← tất cả bài họcDanh sách cảnh (14 mục, 97 cảnh)
Mục 1Mục đích0:00
Mục 2Mô thức phục vụ1:35
Mục 3Tải, độ trễ và kiến trúc phục vụ3:44
Mục 4Kiến trúc hệ thống phục vụ19:25
Mục 5Vòng đời của một yêu cầu25:16
Mục 6Lý thuyết hàng đợi39:07
Mục 7Quản lý vòng đời mô hình49:37
Mục 8Tối ưu thông lượng58:08
Mục 9Phục vụ LLM81:33
Mục 10Chọn môi trường chạy suy luận87:50
Mục 11Tối ưu ở mức node94:46
Mục 12Kinh tế và hoạch định101:13
Mục 13Ngộ nhận và cạm bẫy109:08
Mục 14Tổng kết113:21
📓 Sổ tay thực hành
Chạy trên Colab bằng CPU, không cần cài thêm gì.
1. Hàng đợi, độ trễ đuôi và dư địa
Kiểm định luật Little trên một hàng đợi mô phỏng, mô phỏng M/M/1 và M/D/1 cạnh phương trình 5 và 6, tính lại các ngộ nhận về mức sử dụng, làm lại napkin math 1.3 rồi so định tuyến ngẫu nhiên với một hàng đợi chung, tính xác suất toả ra nhiều máy gặp phản hồi chậm, và cho một đợt tăng vọt qua hệ thống có và không có kiểm soát tiếp nhận.
Mục 1. Mục đích · 2. Mô thức phục vụ · 3. Tải, độ trễ và kiến trúc phục vụ · 6. Lý thuyết hàng đợi · 12. Kinh tế và hoạch định · 13. Ngộ nhận và cạm bẫy · 14. Tổng kết
chạy dưới 1 phútMở trong Colab ↗2. Gom batch: đổi độ trễ lấy thông lượng
Tính lại bảng 9, đo trên CPU phụ trội mỗi lần gọi một tầng và thời gian một batch theo kích thước batch, kiểm thuế gom batch của phương trình 4 bằng mô phỏng gom batch tĩnh, mô phỏng cửa sổ lịch cố định cạnh phương trình 8, bảng 10 và phương trình 13, tính bảng 11, ví dụ 1.7, bảng 12, bảng 14 và bảng 15, vẽ biên Pareto của năm cấu hình trong bảng 13 bằng mô phỏng gom batch động, cho một đợt tăng vọt qua batch 1 và gom batch động, rồi tính dòng thời gian sáu camera và pipeline trên điện thoại.
Mục 6. Lý thuyết hàng đợi · 8. Tối ưu thông lượng
chạy dưới 1 phútMở trong Colab ↗3. Phục vụ LLM: hai pha, bộ nhớ đệm KV và gom batch liên tục
Tính lại ca Llama 3 8B (TTFT, mức sàn của mỗi bước decode theo phương trình 18, so sánh với A100, sức chứa bộ nhớ đệm KV và giá mỗi triệu token) và chỉ ra chỗ con số của sách chỉ khép lại khi đọc GB là GiB, đo một bước decode trên CPU như một roofline, vẽ lại hình 7, dựng một mô hình decode theo batch, mô phỏng gom batch tĩnh và gom batch liên tục cùng cách cấp bộ nhớ đệm KV theo khối, rồi tính lưu đệm tiền tố và năng lượng của một cuộc trò chuyện.
Mục 8. Tối ưu thông lượng · 9. Phục vụ LLM · 12. Kinh tế và hoạch định
chạy dưới 1 phútMở trong Colab ↗4. Một yêu cầu, từ byte trên đường truyền tới hoá đơn
Đo JSON với dạng nhị phân kiểu Protobuf rồi tính lại napkin math 1.1, tính lại ngân sách độ trễ ResNet-50, định luật Amdahl, DLRM và thuế phục vụ, đo từng pha của một yêu cầu ResNet-50 trên CPU, tìm hai hằng số ẩn của bảng 6, tính chu kỳ hoạt động khi pipeline, phục vụ một mô hình MNIST với tiền xử lý lệch và viết kiểm thử đối chiếu, đo khởi động nguội khi tệp không còn trong bộ nhớ đệm trang và mô phỏng một đợt tăng vọt khi bản sao mới khởi động nguội, tính bảng 19 và 20, đo việc gộp chuẩn hóa theo batch vào tích chập, hiệu chuẩn bằng dữ liệu không đại diện, rồi tính chi phí mỗi triệu yêu cầu và điểm giao nhau giữa CPU và GPU.
Mục 3. Tải, độ trễ và kiến trúc phục vụ · 4. Kiến trúc hệ thống phục vụ · 5. Vòng đời của một yêu cầu · 7. Quản lý vòng đời mô hình · 10. Chọn môi trường chạy suy luận · 11. Tối ưu ở mức node · 12. Kinh tế và hoạch định · 13. Ngộ nhận và cạm bẫy
chạy dưới 1 phútMở trong Colab ↗