Đón xem YOLO Vision 2025!
25 tháng 9, 2025
10:00 — 18:00 BST
Sự kiện kết hợp
Yolo Vision 2024
Bảng chú giải thuật ngữ

Docker

Đơ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 quy mô hiệu quả trên các môi trường.

Docker là một nền tảng mã nguồn mở tự động hóa việc triển khai, mở rộng và quản lý các ứng dụng bằng cách sử dụng ảo hóa cấp hệ điều hành để cung cấp phần mềm trong các gói được gọi là container. Đối với các kỹ sư Học máy (ML) và các nhà khoa học dữ liệu, Docker là một công cụ quan trọng giải quyết vấn đề phổ biến về sự không nhất quán của môi trường — vấn đề khét tiếng "nó hoạt động trên máy của tôi". Bằng cách đóng gói mã của một ứng dụng với tất cả các thư viện, framework như PyTorch và các phần phụ thuộc khác mà nó cần để chạy, Docker đảm bảo rằng một mô hình hoạt động giống hệt nhau bất kể nó được triển khai ở đâu. Tính nhất quán này là nền tảng cho việc triển khai mô hình đáng tin cậy và là nền tảng của các phương pháp MLOps hiện đại. Ultralytics cung cấp hướng dẫn Bắt đầu nhanh Docker để giúp người dùng bắt đầu container hóa các ứng dụng của họ.

Docker hoạt động như thế nào?

Quy trình làm việc của Docker xoay quanh một vài thành phần cốt lõi phối hợp với nhau để đóng gói và chạy các ứng dụng:

  • Dockerfile: Đây là một tệp văn bản đơn giản chứa danh sách các lệnh hoặc hướng dẫn tuần tự. Các hướng dẫn này cho Docker biết cách xây dựng một Docker image cụ thể. Đối với một dự án ML, Dockerfile sẽ chỉ định một hệ điều hành cơ sở, các lệnh để cài đặt các dependency như Python và OpenCV, sao chép các tệp mô hình và mã suy luận, đồng thời xác định lệnh chạy khi container khởi động. Bạn có thể tìm thêm thông tin về Dockerfile trên tài liệu chính thức của Docker.
  • Docker Image: Image là một gói độc lập, có thể thực thi và nhẹ, bao gồm mọi thứ cần thiết để chạy một phần mềm, bao gồm mã, thời gian chạy, thư viện, biến môi trường và tệp cấu hình. Nó là một template chỉ đọc được tạo từ Dockerfile. Các image dành riêng cho ML thường có sẵn trên các registry như NVIDIA NGC, đi kèm với trình điều khiển GPU và framework ML được cấu hình sẵn.
  • Docker Container: Container là một thể hiện có thể chạy được của một Docker image. Khi bạn chạy một image, nó sẽ trở thành một container, là một tiến trình biệt lập chạy trên kernel của máy chủ. Nhiều container có thể chạy trên cùng một máy và chia sẻ kernel hệ điều hành với các container khác, mỗi container chạy như một tiến trình biệt lập trong không gian người dùng. Điều này làm cho chúng cực kỳ hiệu quả so với ảo hóa truyền thống. Công nghệ này được tiêu chuẩn hóa bởi các tổ chức như Open Container Initiative (OCI).

Các ứng dụng AI/ML thực tế

Docker đơn giản hóa toàn bộ vòng đời của một mô hình AI, từ thử nghiệm đến sản xuất.

  1. Triển khai Mô hình Thị giác Máy tính lên Edge: Một mô hình Ultralytics YOLO11 đượ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, script suy luận và tất cả các dependency cần thiết như các phiên bản thư viện CUDA cụ thể. Sau đó, container đơn này có thể được triển khai một cách nhất quán trên nhiều nền tảng khác nhau, từ GPU đám mây mạnh mẽ đến thiết bị Edge AI có tài nguyên hạn chế như NVIDIA Jetson. Điều này đảm bảo mô hình hoạt động như mong đợi, một yêu cầu quan trọng đối với suy luận theo thời gian thực trong các ứng dụng như giám sát thông minh.
  2. Tạo môi trường nghiên cứu có thể tái tạo: Một nhà khoa học dữ liệu phát triển một thuật toán mới cho phân vùng ảnh (image segmentation) có thể tạo một Docker container khóa các phiên bản cụ thể của Python, TensorFlow và các thư viện khác. Môi trường container hóa này có thể được chia sẻ với những người cộng tác hoặc được công bố cùng với một bài báo nghiên cứu, cho phép những người khác sao chép hoàn hảo môi trường huấn luyện (training) và xác minh kết quả. Các nền tảng như Ultralytics HUB tích hợp với các công nghệ container để hợp lý hóa hơn nữa quy trình này.

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

Mặc dù Docker là trung tâm của việc container hóa, nó thường được sử dụng cùng với các công nghệ khác:

  • Container hóa (Containerization): Đây là khái niệm chung về việc đóng gói phần mềm vào các container. Docker là nền tảng phổ biến nhất cho container hóa, cung cấp các công cụ để xây dựng, vận chuyển và chạy các container.
  • Kubernetes: Trong khi Docker quản lý các container riêng lẻ trên một máy chủ duy nhất, 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ý các ứng dụng container hóa trên các cụm máy. Hãy nghĩ về Docker như việc tạo ra các container vận chuyển và Kubernetes như hệ thống quản lý các con tàu và bến cảng. Bạn có thể tìm hiểu thêm trên trang web chính thức của Kubernetes.
  • Máy ảo (VM): VM cung cấp khả năng cách ly bằng cách mô phỏng toàn bộ hệ thống phần cứng, bao gồm cả hệ điều hành khách. Các container, được quản lý bởi Docker, ảo hóa hệ điều hành, chia sẻ kernel của máy chủ. Điều này làm cho các container nhẹ hơn, nhanh hơn và hiệu quả hơn về tài nguyên so với VM, mặc dù VM cung cấp khả năng cách ly mạnh mẽ hơn. Trang web Docker chính thức cung cấp một so sánh tuyệt vời.

Bằng cách tận dụng Docker, các chuyên gia về AI và Thị giác máy tính (CV) có thể cải thiện đáng kể hiệu quả quy trình làm việc, cộng tác và độ tin cậy của các mô hình được triển khai. Để có cái nhìn tổng quan về mục đích của Docker, các tài nguyên như giải thích về Docker của OpenSource.com cung cấp các phần giới thiệu dễ tiếp cận. Công nghệ này là yếu tố then chốt cho một loạt các tùy chọn triển khai mô hình.

Tham gia cộng đồng Ultralytics

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
Đã sao chép liên kết vào clipboard