Khám phá cách Kubernetes đơn giản hóa khối lượng công việc AI/ML với khả năng triển khai mô hình có thể mở rộng, huấn luyện phân tán và quản lý tài nguyên hiệu quả.
Kubernetes, thường được viết tắt là K8s, là một hệ thống điều phối container nguồn mở, tự động hóa việc triển khai, mở rộng và quản lý các ứng dụng được container hóa. Ban đầu được thiết kế bởi các kỹ sư tại Google và hiện được bảo trì bởi Cloud Native Computing Foundation (CNCF) , Kubernetes đã phát triển thành tiêu chuẩn công nghiệp cho việc vận hành các hệ thống phần mềm phân tán, linh hoạt. Trong các lĩnh vực Trí tuệ Nhân tạo (AI) và Học máy (ML) đang phát triển nhanh chóng, Kubernetes đóng vai trò là lớp cơ sở hạ tầng cơ bản, cho phép các nhóm kỹ thuật quản lý hiệu quả toàn bộ vòng đời của các mô hình phức tạp, từ phát triển thử nghiệm đến sản xuất quy mô lớn.
Về cơ bản, Kubernetes quản lý một cụm máy tính, được gọi là các nút (node), chạy các khối lượng công việc được chứa trong container. Nó phụ thuộc rất nhiều vào container hóa — một công nghệ đóng gói mã cùng với các phần phụ thuộc của nó — để đảm bảo các ứng dụng chạy nhất quán trên các môi trường đa dạng. Kubernetes giới thiệu các khái niệm trừu tượng như "Pod", là các đơn vị triển khai nhỏ nhất có thể, và "Deployment", giúp duy trì trạng thái mong muốn của ứng dụng. Bằng cách tách phần mềm khỏi phần cứng cơ bản, nó cho phép các kỹ sư thị giác máy tính tập trung vào hiệu suất mô hình thay vì bảo trì máy chủ, sử dụng các dịch vụ được quản lý như Amazon EKS hoặc Google Kubernetes Engine (GKE) .
Đối với các Hoạt động Học máy (MLOps) , Kubernetes là công cụ không thể thiếu vì nó giải quyết được thách thức quan trọng về khả năng mở rộng . Các khối lượng công việc AI hiện đại, đặc biệt là những khối lượng công việc liên quan đến học sâu , đòi hỏi tài nguyên tính toán đáng kể. Kubernetes hỗ trợ đào tạo phân tán bằng cách lên lịch thông minh các công việc đào tạo trên nhiều nút được trang bị Bộ xử lý đồ họa (GPU) . Trong giai đoạn triển khai mô hình , K8s đảm bảo tính khả dụng cao cho các API suy luận, tự động tăng hoặc giảm số lượng pod đang chạy dựa trên nhu cầu lưu lượng theo thời gian thực, giúp tối ưu hóa cả hiệu suất và chi phí.
Sẽ rất hữu ích nếu hiểu được sự khác biệt giữa Kubernetes và các công cụ cơ sở hạ tầng phổ biến khác:
Hệ sinh thái Kubernetes rất rộng lớn, bao gồm các công cụ như Helm để quản lý gói và Prometheus để theo dõi tình trạng cụm. Đối với các quy trình làm việc ML chuyên biệt, các nền tảng như Kubeflow chạy trên Kubernetes để hợp lý hóa các quy trình đầu cuối. Nhìn về tương lai, Nền tảng Ultralytics sắp ra mắt được thiết kế để đơn giản hóa hơn nữa các quy trình này, cung cấp một môi trường toàn diện cho việc quản lý dữ liệu và đào tạo mô hình, giúp loại bỏ những phức tạp cơ sở hạ tầng tiềm ẩn.
Để triển khai một mô hình trên Kubernetes, trước tiên bạn cần một tập lệnh thực hiện suy luận. Điều này Python đoạn trích minh họa việc tải một YOLO11 mô hình, sau đó có thể được gói trong một vùng chứa Docker và được lên lịch bởi K8s.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")
# Print the detected class names
for result in results:
for cls_id in result.boxes.cls:
print(f"Detected: {result.names[int(cls_id)]}")