Thuật ngữ

Người lái tàu

Đơn giản hóa quy trình làm việc AI/ML với Docker! Tìm hiểu cách triển khai mô hình, đảm bảo khả năng tái tạo và mở rộng hiệu quả trên nhiều môi trường.

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

Tìm hiểu thêm

Docker là một nền tảng mạnh mẽ giúp đơn giản hóa quá trình phát triển, triển khai và chạy ứng dụng bằng cách sử dụng container. Container cho phép các nhà phát triển đóng gói một ứng dụng với tất cả các phần cần thiết, chẳng hạn như thư viện và các phụ thuộc khác, và chuyển tất cả ra ngoài dưới dạng một gói. Điều này đảm bảo rằng ứng dụng sẽ chạy trên bất kỳ máy nào khác bất kể bất kỳ cài đặt tùy chỉnh nào mà máy có thể có, có thể khác với máy được sử dụng để viết và thử nghiệm mã. Đối với người dùng quen thuộc với các khái niệm học máy cơ bản, Docker cung cấp một cách hợp lý để quản lý và triển khai các mô hình hiệu quả, đảm bảo tính nhất quán trên các môi trường khác nhau.

Các khái niệm cốt lõi của Docker

Về bản chất, Docker xoay quanh một số khái niệm chính:

  • Hình ảnh: Hình ảnh là một mẫu chỉ đọc có hướng dẫn để tạo vùng chứa Docker. Nó bao gồm mã ứng dụng, thư viện, công cụ, phụ thuộc và các tệp khác cần thiết để chạy ứng dụng. Hình ảnh được xây dựng từ một tập hợp các hướng dẫn được viết trong Dockerfile.
  • Container: Container là một phiên bản có thể chạy của một hình ảnh. Bạn có thể tạo, bắt đầu, dừng, di chuyển hoặc xóa một container bằng cách sử dụng Docker API hoặc CLI . Các container được cô lập với nhau và với hệ thống máy chủ, nhưng chúng có thể giao tiếp với các container khác và thế giới bên ngoài thông qua các kênh được xác định.
  • Dockerfile: Đây là một tài liệu văn bản chứa tất cả các lệnh mà người dùng có thể gọi trên dòng lệnh để lắp ráp một hình ảnh. Docker có thể tự động xây dựng hình ảnh bằng cách đọc hướng dẫn từ Dockerfile.
  • Docker Engine: Công nghệ máy khách-máy chủ cơ bản dùng để xây dựng và chạy các container bằng các thành phần và dịch vụ của Docker.
  • Docker Hub: Một dịch vụ đăng ký dựa trên đám mây do Docker cung cấp để tìm và chia sẻ hình ảnh container với nhóm của bạn hoặc cộng đồng Docker. Nó tương tự như GitHub, nhưng dành cho hình ảnh Docker. Bạn có thể kéo hình ảnh từ Docker Hub để sử dụng làm cơ sở cho container của mình hoặc đẩy hình ảnh của riêng bạn để chia sẻ với người khác.

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

Trong bối cảnh AI và máy học, Docker mang lại một số lợi thế quan trọng:

  • Khả năng tái tạo: Các container Docker đảm bảo rằng các mô hình học máy chạy nhất quán trên nhiều môi trường khác nhau, từ máy tính xách tay của nhà phát triển đến máy chủ sản xuất. Điều này rất quan trọng để tái tạo kết quả nghiên cứu và triển khai các mô hình một cách đáng tin cậy.
  • Khả năng mở rộng: Docker hoạt động liền mạch với các công cụ điều phối container như Kubernetes, giúp dễ dàng mở rộng quy mô các ứng dụng học máy. Bạn có thể triển khai nhiều phiên bản của một mô hình và phân phối khối lượng công việc một cách hiệu quả.
  • Quản lý phụ thuộc: Các dự án học máy thường dựa vào các phiên bản cụ thể của thư viện và khung. Docker cho phép bạn đóng gói các phụ thuộc này trong một vùng chứa, tránh xung đột và đảm bảo rằng mô hình chạy như mong muốn.
  • Khả năng di động: Các container Docker có thể chạy trên bất kỳ hệ thống nào hỗ trợ Docker, cho dù đó là máy cục bộ, máy ảo trên nền tảng đám mây hay máy chủ tại chỗ. Khả năng di động này giúp đơn giản hóa quá trình di chuyển các mô hình học máy từ phát triển sang sản xuất. Tìm hiểu thêm về các phương pháp triển khai mô hình tốt nhất để triển khai các mô hình thị giác máy tính hiệu quả.

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

Sau đây là hai ví dụ cụ thể về cách Docker được sử dụng trong các ứng dụng AI/ML thực tế:

  1. Đào tạo và triển khai các mô hình phát hiện đối tượng: Giả sử bạn đang làm việc trên một dự án phát hiện đối tượng bằng cách sử dụng Ultralytics YOLO . Bạn có thể sử dụng Docker để tạo ra một môi trường nhất quán để đào tạo mô hình của mình. Bằng cách định nghĩa một Dockerfile bao gồm tất cả các phụ thuộc cần thiết như PyTorch , OpenCV và Ultralytics thư viện, bạn có thể đảm bảo rằng quá trình đào tạo có thể tái tạo được. Sau khi mô hình được đào tạo, bạn có thể đóng gói nó thành một hình ảnh Docker và triển khai nó vào môi trường sản xuất, chẳng hạn như máy chủ đám mây hoặc thiết bị biên. Điều này giúp dễ dàng mở rộng quy mô triển khai và quản lý các bản cập nhật cho mô hình. Ví dụ: hướng dẫn Khởi động nhanh Docker của chúng tôi cung cấp hướng dẫn về cách thiết lập và sử dụng Ultralytics YOLO mô hình với Docker.

  2. Phát triển và thử nghiệm các ứng dụng web hỗ trợ AI: Hãy tưởng tượng bạn đang phát triển một ứng dụng web sử dụng mô hình học máy để phân loại hình ảnh. Docker có thể giúp hợp lý hóa quy trình phát triển và thử nghiệm. Bạn có thể tạo các vùng chứa riêng biệt cho ứng dụng web, mô hình học máy và bất kỳ dịch vụ nào khác được yêu cầu, chẳng hạn như cơ sở dữ liệu. Điều này cho phép bạn phát triển và thử nghiệm từng thành phần một cách độc lập. Ví dụ, bạn có thể sử dụng vùng chứa với TensorFlow hoặc PyTorch để phục vụ mô hình học máy và một container khác để chạy giao diện người dùng của ứng dụng web. Phương pháp tiếp cận theo mô-đun này giúp cập nhật và bảo trì ứng dụng dễ dàng hơn.

So sánh với các thuật ngữ tương tự

  • Container hóa so với Ảo hóa: Mặc dù cả container hóa (được Docker sử dụng) và ảo hóa đều cho phép các môi trường biệt lập, nhưng chúng lại khác nhau đáng kể. Máy ảo (VM) ảo hóa toàn bộ máy xuống đến cấp độ phần cứng, bao gồm cả hệ điều hành. Điều này khiến VM nặng và chậm khởi động. Ngược lại, container ảo hóa hệ điều hành, khiến chúng nhẹ và khởi động nhanh. Container Docker chia sẻ nhân hệ điều hành của hệ thống máy chủ, giúp giảm chi phí và cải thiện hiệu quả.
  • Docker so với Kubernetes: Docker là một nền tảng để xây dựng và chạy container, trong khi Kubernetes là một công cụ điều phối container để quản lý container ở quy mô lớn. Kubernetes tự động triển khai, mở rộng quy mô và quản lý các ứng dụng được chứa trong container. Trong khi Docker có thể được sử dụng riêng để chạy container, Kubernetes thường được sử dụng kết hợp với Docker để quản lý các triển khai quy mô lớn.

Bằng cách tận dụng Docker, các học viên AI và máy học có thể hợp lý hóa quy trình làm việc của họ, tăng cường cộng tác và triển khai các mô hình hiệu quả hơn. Để tìm hiểu thêm về cách thiết lập và sử dụng Docker với Ultralytics YOLO , hãy tham khảo hướng dẫn Docker Quickstart của chúng tôi.

Đọc tất cả