Thuật ngữ

Container hóa

Khám phá sức mạnh của container hóa cho các dự án AI/ML. Hợp lý hóa quy trình làm việc, đảm bảo tính nhất quán và mở rộng quy mô hiệu quả với các công cụ tiên tiến.

Container hóa là một hình thức ảo hóa hệ điều hành gọn nhẹ, cho phép bạn đóng gói một ứng dụng và các thành phần phụ thuộc của nó—chẳng hạn như thư viện, khung công tác và tệp cấu hình—vào một đơn vị duy nhất, biệt lập được gọi là container. Điều này giải quyết vấn đề thường gặp là phần mềm không chạy đúng khi được chuyển từ môi trường điện toán này sang môi trường điện toán khác. Trong bối cảnh Học máy (ML) , container hóa đảm bảo các mô hình AI phức tạp và các ngăn xếp phần mềm phức tạp của chúng có tính di động, có thể tái tạo và có thể mở rộng, tạo thành một thành phần quan trọng của các hoạt động MLOps hiện đại.

Công nghệ container hóa được sử dụng rộng rãi nhất là Docker , cung cấp một phương thức chuẩn hóa để xây dựng, vận chuyển và chạy container. Mỗi container chia sẻ nhân hệ điều hành của hệ thống máy chủ nhưng chạy như một tiến trình riêng biệt trong không gian người dùng. Phương pháp này, được chuẩn hóa bởi các tổ chức như Sáng kiến Container Mở (OCI) , giúp container tiết kiệm tài nguyên hơn nhiều và khởi chạy nhanh hơn so với máy ảo truyền thống. Bạn có thể tìm hiểu thêm về các nguyên tắc cơ bản của container hóa từ các tài nguyên như giải thích về container của Red Hat .

Container hóa so với các khái niệm liên quan

Hiểu được sự khác biệt giữa công nghệ container hóa và các công nghệ tương tự là chìa khóa để đánh giá cao vai trò của nó trong quy trình làm việc AI/ML.

  • Máy ảo (VM): Mặc dù cả container và VM đều cung cấp môi trường biệt lập, nhưng chúng hoạt động ở các cấp độ khác nhau. VM mô phỏng toàn bộ ngăn xếp phần cứng, bao gồm cả hệ điều hành khách đầy đủ, khiến việc khởi động trở nên nặng nề và chậm chạp. Ngược lại, container ảo hóa hệ điều hành, chia sẻ kernel máy chủ. Điều này giúp container nhẹ hơn và nhanh hơn nhiều, mặc dù VM có thể cung cấp mức độ biệt lập phần cứng cao hơn.
  • Docker : Container hóa là khái niệm cơ bản. Docker là nền tảng phổ biến nhất triển khai khái niệm này, cung cấp các công cụ để tạo và quản lý từng container riêng lẻ. Để bắt đầu thực tế, Ultralytics cung cấp hướng dẫn Khởi động Nhanh Docker để chạy các mô hình YOLO. Bạn cũng có thể tìm hiểu thêm thông tin trên các tài nguyên chính thức của Docker .
  • Kubernetes : Trong khi Docker quản lý các container đơn lẻ trên một máy chủ, Kubernetes là một nền tảng điều phối container. Nó tự động hóa việc triển khai, mở rộng quy mô và quản lý hàng nghìn container trên các cụm máy. Một quy trình làm việc phổ biến là xây dựng một container bằng Docker và sau đó quản lý nó ở quy mô lớn bằng Kubernetes. Để tìm hiểu sâu hơn, hãy xem tài liệu chính thức của Kubernetes .
  • Điện toán không máy chủ : Không máy chủ là một mô hình thực thi trong đó các nhà cung cấp dịch vụ đám mây tự động quản lý cơ sở hạ tầng cần thiết để chạy mã. Mô hình này tách biệt hoàn toàn máy chủ và vùng chứa. Trong khi việc chứa hóa cung cấp khả năng kiểm soát môi trường ứng dụng, các nền tảng không máy chủ như AWS Lambda ưu tiên tính dễ sử dụng bằng cách ẩn tất cả các hoạt động quản lý cơ sở hạ tầng.

Ứng dụng thực tế trong AI/ML

Container hóa được sử dụng rộng rãi trong toàn bộ vòng đời AI/ML, từ thử nghiệm đến triển khai mô hình sản xuất.

  1. Triển khai Mô hình Phát hiện Đối tượng: Mô hình YOLO của Ultralytics đã được huấn luyện để phát hiện đối tượng có thể được đóng gói vào một container Docker. Container này bao gồm các trọng số mô hình, tập lệnh suy luận và tất cả các phụ thuộc cần thiết như thư viện PyTorchNVIDIA CUDA . Sau đó, đơn vị độc lập này có thể được triển khai nhất quán trên nhiều nền tảng khác nhau, từ GPU đám mây mạnh mẽ đến các thiết bị Edge AI hạn chế tài nguyên, đảm bảo mô hình hoạt động như mong đợi bất kể môi trường.
  2. Cung cấp các mô hình NLP dưới dạng vi dịch vụ: Một nhóm phát triển ứng dụng Xử lý Ngôn ngữ Tự nhiên (NLP) sử dụng các mô hình từ các nền tảng như Hugging Face có thể đóng gói các thành phần khác nhau (ví dụ: tiền xử lý văn bản, suy luận mô hình, điểm cuối API) thành các vi dịch vụ riêng biệt. Các vùng chứa này có thể được quản lý bằng Kubernetes, cho phép mở rộng và cập nhật độc lập từng thành phần. Điều này tuân theo các nguyên tắc của kiến trúc vi dịch vụ và tạo ra một hệ thống linh hoạt hơn. Các nền tảng như Ultralytics HUB tận dụng các nguyên tắc đóng gói để quản lý và triển khai mô hình một cách hợp lý.

Bằng cách cung cấp một môi trường nhất quán và biệt lập, container hóa đã trở thành nền tảng của phát triển phần mềm hiện đại, đặc biệt là trong các lĩnh vực AI và Thị giác Máy tính (CV) đang phát triển nhanh chóng. Nó cho phép các nhà phát triển và kỹ sư MLOps xây dựng, thử nghiệm và triển khai các ứng dụng AI đáng tin cậy với tốc độ và hiệu quả cao hơn trên các nền tảng như Google CloudAmazon Elastic Container Service .

Tham gia cộng đồng Ultralytics

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

Tham gia ngay
Liên kết đã được sao chép vào clipboard