Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Kubernetes

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)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.

Khái niệm cốt lõi và kiến trúc

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) .

Kubernetes trong AI và Machine Learning

Đố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í.

Các Ứng dụng Thực tế

  1. Giám sát giao thông thành phố thông minh: Một chính quyền thành phố triển khai mô hình Ultralytics YOLO11 để phân tích lưu lượng giao thông và detect tắc nghẽn theo thời gian thực. Ứng dụng được đóng gói và điều phối trên cụm Kubernetes. Sử dụng Horizontal Pod Autoscaler , hệ thống phát hiện các điểm đột biến trong dữ liệu luồng video trong giờ cao điểm và tự động cung cấp các pod suy luận bổ sung. Điều này đảm bảo dịch vụ phát hiện đối tượng không bị gián đoạn mà không cần phải cấu hình máy chủ thủ công.
  2. Tìm kiếm trực quan trong thương mại điện tử: Một nhà bán lẻ trực tuyến triển khai hệ thống đề xuất cho phép người dùng tìm kiếm sản phẩm bằng hình ảnh. Hệ thống này bao gồm các vi dịch vụ riêng biệt để xử lý trước hình ảnh, trích xuất đặc điểm và tìm kiếm cơ sở dữ liệu vector. Kubernetes điều phối các thành phần này, cho phép nhóm kỹ sư tính năng cập nhật mô hình trích xuất độc lập với chỉ mục tìm kiếm, đảm bảo tính linh hoạt và tính ổn định của hệ thống trong môi trường sản xuất .

Phân biệt các công nghệ liên quan

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:

  • Kubernetes so với Docker : Docker là một công cụ được sử dụng để tạo và chạy các container riêng lẻ, trong khi Kubernetes là một bộ điều phối quản lý các container đó trên một nhóm máy. Thông thường, các nhà phát triển sử dụng Docker để xây dựng hình ảnh ứng dụng mạng nơ-ron của họ và sau đó dựa vào Kubernetes để chạy chúng ở quy mô lớn.
  • Kubernetes so với Điện toán không máy chủ : Các nền tảng không máy chủ như AWS Lambda trừu tượng hóa mọi hoạt động quản lý cơ sở hạ tầng, khiến chúng trở nên lý tưởng cho các chức năng hướng sự kiện. Ngược lại, Kubernetes cung cấp khả năng kiểm soát chi tiết đối với mạng, lưu trữ và phân bổ tài nguyên, điều này thường cần thiết cho các ứng dụng chạy lâu dài, có trạng thái hoặc kiến trúc phục vụ mô hình phức tạp.

Công cụ và Hệ sinh thái

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.

Ví dụ: Tập lệnh suy luận cho Containerization

Để 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)]}")

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay