HƯỚNG DẪN KỸ THUẬT

Kubernetes cho khối lượng công việc ML

Kubernetes là một hệ thống nguồn mở tự động lên lịch, thay đổi quy mô và khởi động lại các chương trình được chứa trong một cụm máy.

Đọc trong 2 phútCập nhật lần cuối

Tổng quan

For machine learning, it lets teams pack GPU-hungry training jobs and latency-sensitive model servers onto shared hardware without babysitting individual servers.

Lặn sâu

Ban đầu được xây dựng tại Google để chạy các dịch vụ web, Kubernetes coi cụm của bạn như một nhóm CPU, bộ nhớ và GPU lớn, sau đó quyết định máy nào chạy từng vùng chứa. Các nhóm ML dựa vào nó vì khối lượng công việc rất lớn và tốn kém: một quá trình đào tạo có thể cần tám GPU trong sáu giờ, sau đó không cần gì cả. Kubernetes lên lịch cho một nút có GPU miễn phí và khi công việc hoàn thành, nó sẽ giải phóng phần cứng. Nó cũng giữ cho các máy chủ suy luận hoạt động, khởi động lại các thùng chứa bị lỗi và phân bổ các bản sao trên các máy để có khả năng phục hồi. Các công cụ được xây dựng trên nền tảng, như Kubeflow, Ray và KServe, bổ sung các phần dành riêng cho ML như toán tử đào tạo phân tán, điều chỉnh siêu tham số và điểm cuối của mô hình tự động điều chỉnh quy mô, để các nhà khoa học dữ liệu làm việc với các bản tóm tắt cấp cao hơn thay vì YAML thô.

Hiểu biết kỹ thuật

Kubernetes chỉ định GPU thông qua các plugin thiết bị quảng cáo các tài nguyên như nvidia.com/gpu, mà bộ lập lịch khớp với các yêu cầu của nhóm. Các vết bẩn và dung sai khiến các công việc CPU rẻ tiền không bị ảnh hưởng bởi các nút GPU đắt tiền, trong khi các bộ chọn nút và quy tắc quan hệ ghim việc đào tạo vào phần cứng cụ thể. Để đào tạo nhiều GPU, người vận hành tạo một nhóm các nhóm khám phá lẫn nhau và chạy các khung như PyTorch DDP hoặc Horovod, trao đổi độ dốc qua mạng cụm bằng NCCL.

Tác động chiến lược

Chi phí và ngân sách

Các quyết định về kiến ​​trúc sẽ thúc đẩy hiệu suất và chi phí vận hành trong nhiều năm.

Quyết định rõ ràng hơn

Giáo dục kỹ thuật giúp các nhóm chọn nhóm phù hợp chứ không chỉ nhóm mới nhất.

Kiểm soát chất lượng

Lựa chọn kỹ thuật tốt hơn làm giảm sự cố về độ tin cậy trong sản xuất.

Tương lai của Kubernetes cho khối lượng công việc ML

Mong đợi sự tích hợp ML chặt chẽ hơn: lập kế hoạch nhóm khởi chạy tất cả các nhóm đào tạo phân tán cùng một lúc hoặc không có gì cả, chia sẻ GPU theo phân đoạn và cắt theo thời gian để một số công việc nhẹ chia sẻ một thẻ và vị trí nhận biết cấu trúc liên kết tôn trọng các kết nối NVLink nhanh. Suy luận không có máy chủ trên Kubernetes, chia tỷ lệ điểm cuối về 0 giữa các yêu cầu, đang hoàn thiện. Khi các mô hình phát triển, các bộ lập lịch ngày càng phối hợp nhiều cụm và đám mây, đồng thời các hệ thống chia sẻ công bằng dựa trên hàng đợi như Kueue và Volcano đang trở thành tiêu chuẩn để quản lý dung lượng GPU khan hiếm.

Triển khai trong thế giới thực

Một phòng thí nghiệm nghiên cứu sử dụng Kubeflow Training Operator để khởi chạy công việc đào tạo phân tán PyTorch 32 GPU trên bốn nút, sau đó tự động giải phóng GPU khi nó hội tụ.

Một công ty thương mại điện tử đưa ra mô hình đề xuất của mình với KServe, mô hình này tự động tăng tỷ lệ các bản sao trong đợt giảm giá chớp nhoáng và rút lui qua đêm.

Một ngân hàng thực hiện các công việc chấm điểm hàng đêm dưới dạng Kubernetes CronJobs, sắp xếp chúng trên các nút CPU dự phòng để chúng không cạnh tranh với lưu lượng phân phát ban ngày.

Một công ty khởi nghiệp sử dụng Ray trên Kubernetes để chạy các lần quét siêu tham số song song, tạo ra hàng chục nhóm dùng thử trong thời gian ngắn trên các phiên bản tại chỗ để cắt giảm chi phí.

Rủi ro & lan can

Tối ưu hóa một điểm chuẩn có thể che giấu những điểm yếu của hệ thống rộng hơn.

Chi phí cơ sở hạ tầng và bảo trì thường được đánh giá thấp.

Khoảng cách về bảo mật và khả năng quan sát có thể tăng lên khi hệ thống trở nên phức tạp hơn.

Lộ trình thực hiện

1

Xác định các mục tiêu về độ trễ, chất lượng và chi phí trước khi triển khai.

2

Điểm chuẩn trong điều kiện tải và dữ liệu thực tế.

3

Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng.

4

Chuẩn bị đường dẫn khôi phục và ứng phó sự cố trước khi mở rộng quy mô.

Tiếp tục khám phá

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Kubernetes for ML Workloads quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Bắt đầu bài kiểm tra

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Hướng dẫn tiếp theo

Thử nghiệm A/B cho mô hình ML

Câu hỏi thường gặp

What is Kubernetes for ML Workloads?

Kubernetes là một hệ thống nguồn mở tự động lên lịch, thay đổi quy mô và khởi động lại các chương trình được chứa trong một cụm máy. Đối với học máy, nó cho phép các nhóm kết hợp các công việc đào tạo ngốn GPU và các máy chủ mô hình nhạy cảm với độ trễ vào phần cứng dùng chung mà không cần trông coi các máy chủ riêng lẻ.

Công việc chính của bộ lập lịch Kubernetes cho khối lượng công việc ML là gì?

Bộ lập lịch khớp các yêu cầu tài nguyên của nhóm (CPU, bộ nhớ, GPU) với các nút có sẵn và đặt nhóm ở nơi phù hợp. Nó không chạm vào mã mô hình hoặc dữ liệu.

Kubernetes thường cung cấp GPU cho nhóm như thế nào?

Các plugin thiết bị hiển thị GPU dưới dạng tài nguyên có thể lập lịch trình (ví dụ: nvidia.com/gpu), cho phép các nhóm yêu cầu chúng và bộ lập lịch theo dõi tính khả dụng.

Các vết bẩn và dung sai thường được sử dụng trong cụm ML là gì?

Một vết bẩn đẩy lùi các nhóm khỏi nút; chỉ những quả có khả năng chịu đựng phù hợp mới có thể hạ cánh ở đó. Điều này dự trữ các nút GPU khan hiếm cho các công việc thực sự cần GPU.

Công cụ nào bổ sung các khả năng dành riêng cho ML như toán tử đào tạo phân tán trên Kubernetes?

Kubeflow xếp các quy trình công việc ML lên Kubernetes, bao gồm các toán tử đào tạo, quy trình và điều chỉnh, để các nhóm tránh phải viết tay cấu hình cụm cấp thấp.

Tại sao Kubernetes lại phù hợp với khối lượng công việc ML bùng nổ?

Quá trình đào tạo rất khó khăn: rất nhiều GPU trong thời gian ngắn, sau đó không có. Kubernetes thực hiện công việc khi tài nguyên còn trống và giải phóng chúng khi hoàn thành, cải thiện việc sử dụng.