Thuật ngữ

Kubernetes

Khám phá cách Kubernetes hợp lý hóa khối lượng công việc AI/ML với việc triển khai mô hình có khả năng mở rộng, đào tạo phân tán và quản lý tài nguyên hiệu quả.

Xe lửa YOLO mô hình đơn giản
với Ultralytics TRUNG TÂM

Tìm hiểu thêm

Kubernetes, thường được viết tắt là K8s, là một nền tảng nguồn mở được thiết kế để tự động hóa việc triển khai, mở rộng quy mô và quản lý các ứng dụng được chứa trong container. Được phát triển ban đầu bởi Google và hiện được bảo trì bởi Cloud Native Computing Foundation (CNCF) , Kubernetes cung cấp một khuôn khổ mạnh mẽ để chạy các hệ thống phân tán một cách linh hoạt. Đối với những người làm việc trong Trí tuệ nhân tạo (AI)Học máy (ML) , Kubernetes cung cấp các công cụ mạnh mẽ để quản lý vòng đời phức tạp của các mô hình, từ đào tạo đến triển khaisuy luận . Nó giúp thu hẹp khoảng cách giữa việc phát triển các mô hình ML và chạy chúng một cách đáng tin cậy trong môi trường sản xuất.

Các khái niệm cốt lõi được đơn giản hóa

Kubernetes sắp xếp các container, là các gói độc lập, nhẹ chứa phần mềm và các phần phụ thuộc của nó. Các khái niệm chính bao gồm:

  • Pod: Các đơn vị triển khai nhỏ nhất trong Kubernetes, thường chứa một hoặc nhiều container chia sẻ tài nguyên và mạng. Hãy nghĩ về Pod như một lớp bao bọc xung quanh ứng dụng ML hoặc container máy chủ suy luận của bạn.
  • Node: Máy Worker (ảo hoặc vật lý) nơi Pod chạy. Kubernetes quản lý việc phân phối Pod trên các Node khả dụng.
  • Dịch vụ: Một khái niệm trừu tượng xác định một tập hợp logic các Pod và chính sách để truy cập chúng, thường cung cấp địa chỉ IP ổn định hoặc tên DNS cho các Pod động. Cần thiết để hiển thị các điểm cuối suy luận ML.
  • Triển khai: Mô tả trạng thái mong muốn cho ứng dụng của bạn, quản lý ReplicaSets (nhóm Pod giống hệt nhau) để đảm bảo tính khả dụng và xử lý các bản cập nhật. Hữu ích để triển khai các phiên bản mô hình mới mà không có thời gian chết.

Hiểu được những thành phần cơ bản này giúp thiết kế các hệ thống ML có khả năng mở rộng và phục hồi.

Sự liên quan trong AI và Học máy

Kubernetes đã trở thành nền tảng của Hoạt động học máy (MLOps) hiện đại nhờ một số ưu điểm sau:

  • Khả năng mở rộng: Các tác vụ ML như đào tạo các mô hình lớn hoặc phục vụ các yêu cầu suy luận thường có nhu cầu tài nguyên dao động. Kubernetes có thể tự động tăng hoặc giảm số lượng container (Pod) dựa trên tải, đảm bảo sử dụng hiệu quả các tài nguyên như GPU .
  • Quản lý tài nguyên: Cho phép kiểm soát chi tiết CPU và phân bổ bộ nhớ cho các vùng chứa, ngăn ngừa xung đột tài nguyên và đảm bảo hiệu suất, đặc biệt quan trọng khi quản lý tốn kém GPU tài nguyên trên nhiều thử nghiệm hoặc dịch vụ.
  • Tính di động và tính nhất quán: Kubernetes cung cấp một môi trường nhất quán trên nhiều cơ sở hạ tầng khác nhau, cho dù là máy chủ tại chỗ hay nhiều nền tảng điện toán đám mây như Amazon EKS , Google GKE hay Azure AKS . Điều này giúp đơn giản hóa việc di chuyển các quy trình công việc ML giữa phát triển, thử nghiệm và sản xuất. Bạn thường có thể bắt đầu bằng thiết lập Docker và mở rộng quy mô với Kubernetes.
  • Tự động hóa và điều phối: Tự động hóa các tác vụ phức tạp như khám phá dịch vụ, cân bằng tải, tự phục hồi (khởi động lại các container bị lỗi) và quản lý cấu hình, giúp giảm chi phí thủ công cho các nhóm ML.

Ứng dụng AI/ML trong thế giới thực

  1. Đào tạo mô hình phân tán: Đào tạo các mô hình học sâu (DL) lớn, chẳng hạn như các biến thể YOLO Ultralytics phức tạp để phát hiện đối tượng , thường đòi hỏi sức mạnh tính toán khổng lồ. Kubernetes có thể quản lý một cụm máy để đào tạo phân tán bằng cách sử dụng các khuôn khổ như Kubeflow hoặc tích hợp gốc với PyTorch hoặc TensorFlow . Nó xử lý việc lên lịch các công việc đào tạo, quản lý quyền truy cập dữ liệu và phân bổ GPU hiệu quả trên các nút.
  2. Dịch vụ suy luận có thể mở rộng: Việc triển khai các mô hình ML như các mô hình cho suy luận thời gian thực đòi hỏi tính khả dụng cao và độ trễ thấp. Kubernetes có thể lưu trữ các máy chủ suy luận (ví dụ: sử dụng NVIDIA Triton Inference Server , tích hợp với Ultralytics mô hình - xem hướng dẫn Triton ) đằng sau bộ cân bằng tải. Nó tự động điều chỉnh số lượng Pod máy chủ suy luận dựa trên lưu lượng truy cập đến, đảm bảo khả năng phản hồi ngay cả trong thời gian tải cao điểm cho các tác vụ như phân loại hình ảnh hoặc xử lý ngôn ngữ tự nhiên (NLP) .

Kubernetes so với các công nghệ liên quan

  • Kubernetes so với Docker: Docker là một công cụ để tạo, vận chuyển và chạy các container riêng lẻ ( containerization ). Kubernetes là một bộ điều phối cho các container, có khả năng quản lý hàng nghìn container trên nhiều máy. Chúng hoạt động cùng nhau: bạn thường xây dựng các hình ảnh container bằng Docker rồi triển khai và quản lý chúng bằng Kubernetes. Kiểm tra hướng dẫn Docker Quickstart để biết thông tin cơ bản về container.
  • Kubernetes so với Máy tính không máy chủ: Nền tảng không máy chủ (như AWS Lambda hoặc Google Cloud Functions) trừu tượng hóa hoàn toàn việc quản lý máy chủ, tập trung vào các chức năng theo sự kiện. Kubernetes cung cấp nhiều quyền kiểm soát hơn đối với cơ sở hạ tầng cơ bản và phù hợp hơn với các ứng dụng chạy lâu dài hoặc các dịch vụ có trạng thái phức tạp, mặc dù các khuôn khổ không có máy chủ có thể chạy trên Kubernetes (ví dụ: Knative ).

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

Hệ sinh thái Kubernetes bao gồm nhiều công cụ giúp đơn giản hóa việc quản lý:

  • Helm: Trình quản lý gói cho Kubernetes, giúp xác định, cài đặt và nâng cấp các ứng dụng phức tạp.
  • Prometheus & Grafana: Công cụ mã nguồn mở phổ biến để giám sát cụm và ứng dụng Kubernetes.
  • Tích hợp nhà cung cấp dịch vụ đám mây: Các dịch vụ Kubernetes được quản lý (EKS, GKE, AKS) giúp đơn giản hóa việc thiết lập và bảo trì cụm.
  • Nền tảng ML: Các công cụ như Kubeflow xây dựng trên Kubernetes để cung cấp quy trình làm việc cụ thể cho ML. Các nền tảng như Ultralytics HUB hướng đến mục tiêu đơn giản hóa quy trình triển khai, đôi khi trừu tượng hóa sự phức tạp của Kubernetes để triển khai mô hình dễ dàng hơn.

Kubernetes cung cấp nền tảng vững chắc để xây dựng, triển khai và quản lý các ứng dụng AI/ML đáng tin cậy và có khả năng mở rộng trong nhiều môi trường khác nhau, khiến nó trở thành một kỹ năng quan trọng trong bối cảnh MLOps.

Đọc tất cả