深圳Yolo 视觉
深圳
立即加入
词汇表

Docker

探索Docker如何实现可复现的AI部署。学习如何将Ultralytics YOLO26模型打包到容器中,以实现从云端到边缘设备的无缝扩展。

Docker是一个开源平台,它使开发者能够利用容器化技术自动化应用程序的部署、扩展和管理。在人工智能和机器学习领域,Docker作为一种标准化的软件单元,将代码及其所有依赖项(如库、系统工具和设置)打包在一起,从而使应用程序能够在不同的计算环境中快速可靠地运行。这消除了常见的“在我的机器上可以运行”问题,确保在研究人员笔记本电脑上训练的神经网络在部署到大型云服务器或边缘设备时表现完全一致。

Docker对AI和机器学习的重要性

现代机器学习运维 (MLOps)高度依赖可复现性和可移植性。一个AI项目通常涉及复杂的软件栈,包括特定版本的python、用于GPU加速的CUDA驱动程序,以及PyTorchTensorFlow等深度学习框架。在不同团队和基础设施之间手动管理这些容易出错。

Docker通过创建轻量级、独立的容器来简化这一过程。与传统虚拟机 (VM) 不同,容器共享宿主机的操作系统内核,但在隔离的用户空间中运行。这使得它们在资源效率上显著更高,启动速度更快,这对于扩展模型服务基础设施或运行分布式训练任务至关重要。

实际应用

Docker在AI生命周期中无处不在,从最初的实验到最终的部署。

  1. 一致的训练环境:数据科学团队可以使用Docker镜像来共享统一的开发环境。例如,从事 目标检测的研究人员可以拉取一个预构建的镜像,其中包含所有必要的驱动程序和库。这确保了当他们训练一个 YOLO26模型时,无论底层硬件差异如何,其结果都可以被同事复现。
  2. 边缘AI部署:智慧城市监控中,更新的模型需要推送到数千个边缘设备,例如交通摄像头或无人机。Docker容器允许工程师打包新模型版本并通过无线方式部署。因为容器包含推理运行时,更新过程是无缝的,并且不会干扰设备的核心操作系统。

Docker 对比 Kubernetes 对比 虚拟机

区分Docker与相关技术有助于理解其具体作用:

  • Docker 与虚拟机(VMs):虚拟机虚拟化硬件,这意味着每个虚拟机都在管理程序之上运行一个完整的操作系统(如Windows或Linux)。这会消耗大量内存和CPU。Docker虚拟化操作系统,使容器比虚拟机更小、更快。
  • Docker 与 Kubernetes它们是互补而非竞争的技术。Docker是用于创建和运行单个容器的工具。Kubernetes是一个容器编排平台,用于管理Docker容器集群,在大规模云计算环境中处理自动扩缩容、负载均衡和自我修复等任务。

示例:在容器中运行推理

以下示例演示了专为计算机视觉设计的Docker容器内的python脚本可能是什么样子。该脚本使用 ultralytics 用于加载模型并执行推理的包。容器环境确保了正确的依赖项(例如 opencv-pythontorch) 已存在。

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.")

将Docker集成到您的工作流程中

要开始使用容器化,开发人员通常会定义一个 Dockerfile,这是一个包含所有用于构建镜像命令的文本文件。一旦构建完成,这些镜像可以存储在诸如 Docker HubNVIDIA NGC 目录,它提供 GPU 优化容器。

对于那些希望简化训练和部署过程而无需手动管理Dockerfile的用户,Ultralytics Platform提供了集成工具,可处理云环境的复杂性。这使用户能够专注于提高模型准确性,而不是配置基础设施。此外,您可以查阅我们的Docker快速入门指南,了解如何立即在容器中运行Ultralytics模型。

让我们一起共建AI的未来!

开启您的机器学习未来之旅