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

Docker

Khám phá cách Docker cho phép triển khai AI có thể tái tạo. Tìm hiểu cách đóng gói. Ultralytics YOLO26 được đóng gói trong container để mở rộng quy mô liền mạch từ đám mây đến các thiết bị biên.

Docker là một nền tảng mã nguồn mở cho phép các nhà phát triển tự động hóa việc triển khai, mở rộng quy mô và quản lý ứng dụng bằng cách sử dụng công nghệ container hóa. Trong bối cảnh trí tuệ nhân tạo và máy học, Docker hoạt động như một đơn vị phần mềm tiêu chuẩn hóa, đóng gói mã và tất cả các thành phần phụ thuộc của nó—chẳng hạn như thư viện, công cụ hệ thống và cài đặt—để ứng dụng chạy nhanh chóng và đáng tin cậy từ môi trường điện toán này sang môi trường điện toán khác. Điều này loại bỏ vấn đề thường gặp "nó hoạt động trên máy của tôi", đảm bảo rằng một mạng nơ-ron được huấn luyện trên máy tính xách tay của nhà nghiên cứu hoạt động chính xác theo cùng một cách khi được triển khai trên máy chủ đám mây khổng lồ hoặc thiết bị biên.

Tại sao Docker lại quan trọng đối với Trí tuệ nhân tạo và Học máy

Các hoạt động học máy hiện đại (MLOps) phụ thuộc rất nhiều vào khả năng tái tạo và tính di động. Một dự án AI thường liên quan đến một hệ thống phần mềm phức tạp, bao gồm các phiên bản cụ thể của... Python , CUDA Các trình điều khiển cho khả năng tăng tốc GPU và các khung học sâu như PyTorch hoặc TensorFlow . Việc quản lý thủ công những thứ này giữa các nhóm và cơ sở hạ tầng khác nhau rất dễ xảy ra lỗi.

Docker đơn giản hóa điều này bằng cách tạo ra các container nhẹ, độc lập. Không giống như các máy ảo (VM) truyền thống yêu cầu một hệ điều hành đầy đủ cho mỗi phiên bản, container chia sẻ nhân hệ điều hành của máy chủ nhưng chạy trong không gian người dùng biệt lập. Điều này làm cho chúng tiết kiệm tài nguyên hơn đáng kể và khởi động nhanh hơn, điều này rất quan trọng khi mở rộng quy mô cơ sở hạ tầng phục vụ mô hình hoặc chạy các tác vụ huấn luyện phân tán.

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

Docker hiện diện khắp mọi nơi trong vòng đời của trí tuệ nhân tạo, từ giai đoạn thử nghiệm ban đầu đến triển khai cuối cùng.

  1. Môi trường huấn luyện nhất quán: Một nhóm khoa học dữ liệu có thể sử dụng ảnh Docker để chia sẻ môi trường phát triển thống nhất. Ví dụ, một nhà nghiên cứu làm việc về phát hiện đối tượng có thể tải xuống một ảnh được xây dựng sẵn chứa tất cả các trình điều khiển và thư viện cần thiết. Điều này đảm bảo rằng khi họ huấn luyện mô hình YOLO26 , kết quả có thể được tái tạo bởi các đồng nghiệp của họ, bất kể sự khác biệt về phần cứng bên dưới.
  2. Triển khai AI tại biên: Trong giám sát thành phố thông minh , các mô hình được cập nhật cần được đẩy đến hàng nghìn thiết bị biên, chẳng hạn như camera giao thông hoặc máy bay không người lái. Container Docker cho phép các kỹ sư đóng gói phiên bản mô hình mới và triển khai nó qua mạng không dây. Vì container bao gồm môi trường chạy suy luận, quá trình cập nhật diễn ra liền mạch và không gây xung đột với hệ điều hành cốt lõi của thiết bị.

Docker so với Kubernetes so với Máy ảo

Việc phân biệt Docker với các công nghệ liên quan sẽ giúp hiểu rõ vai trò cụ thể của nó:

  • Docker so với Máy ảo (VM): VM ảo hóa phần cứng, nghĩa là mỗi VM chạy một hệ điều hành đầy đủ (như Windows hoặc Linux) trên một hypervisor. Điều này tiêu tốn lượng bộ nhớ đáng kể và CPU Docker ảo hóa hệ điều hành, giúp các container nhỏ hơn và nhanh hơn nhiều so với máy ảo.
  • Docker so với Kubernetes : Đây là hai công nghệ bổ sung cho nhau, chứ không phải cạnh tranh. Docker là công cụ được sử dụng để tạo và chạy các container riêng lẻ. Kubernetes là một nền tảng điều phối container quản lý các cụm container Docker, xử lý các tác vụ như tự động mở rộng quy mô, cân bằng tải và tự phục hồi trong môi trường điện toán đám mây quy mô lớn.

Ví dụ: Chạy suy luận trong một Container

Ví dụ sau đây minh họa cách thức một Python Tập lệnh này có thể tìm kiếm bên trong một container Docker được thiết kế cho thị giác máy tính. Tập lệnh này sử dụng... ultralytics gói này dùng để tải mô hình và thực hiện suy luận. Môi trường container đảm bảo các phụ thuộc chính xác (như...) opencv-pythontorch) đã có sẵn.

from ultralytics import YOLO

# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")

# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")

Tích hợp Docker vào quy trình làm việc của bạn

Để bắt đầu sử dụng container, các nhà phát triển thường định nghĩa một... Dockerfile, là một tài liệu văn bản chứa tất cả các lệnh để lắp ráp một hình ảnh. Sau khi được tạo xong, những hình ảnh này có thể được lưu trữ trong các registry như Docker Hub hoặc NVIDIA Danh mục NGC, cung cấp GPU - Các container được tối ưu hóa.

Đối với những ai muốn đơn giản hóa quy trình đào tạo và triển khai mà không cần tự quản lý các Dockerfile, Nền tảng Ultralytics cung cấp các công cụ tích hợp giúp xử lý sự phức tạp của môi trường đám mây. Điều này cho phép người dùng tập trung vào việc cải thiện độ chính xác của mô hình thay vì cấu hình cơ sở hạ tầng. Hơn nữa, bạn có thể tham khảo Hướng dẫn nhanh về Docker của chúng tôi để tìm hiểu cách chạy. Ultralytics Các mô hình được đặt trong container ngay lập tức.

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