了解容器化如何简化AI部署。探索如何使用Docker和Kubernetes在任何环境中一致地运行 Ultralytics YOLO26。
容器化是一种软件部署策略,它将应用程序的源代码、库、依赖项和配置文件捆绑成一个轻量级的可执行单元,即容器。这种方法将软件从底层基础设施中抽象出来,确保应用程序在从开发者的本地笔记本电脑到大型云计算集群等各种计算环境中一致运行。在机器学习 (ML)领域,容器化通过封装训练和运行神经网络所需的复杂环境,解决了臭名昭著的“在我的机器上可以运行”的问题。
对于数据科学家和ML工程师而言,环境管理是一个重大挑战。不同的项目可能需要冲突版本的python、CUDA驱动程序或PyTorch等库。容器化通过创建隔离的、不可变的环境来消除这些冲突。
区分容器与虚拟机 (VM)至关重要。虚拟机模拟整个硬件堆栈,包括完整的客户操作系统,这会导致显著的资源开销和较慢的启动时间。相比之下,容器化虚拟化操作系统,允许多个应用程序作为隔离进程在单个共享内核上运行。这种精简的占用空间使容器成为硬件资源受限的边缘AI场景(例如物联网设备或无人机)的首选。如需更深入的技术比较,请查阅Red Hat关于容器与虚拟机对比的指南。
几项关键技术构成了现代容器生态系统的支柱:
容器化在现代AI工作流中无处不在,可实现快速迭代和可靠部署。
在为人工智能应用创建容器时,通常会包含一个用于处理的脚本。
模型服务以下Python 代码片段
演示了使用 ultralytics 该脚本将在容器内部运行,利用环境中预先安装的依赖项。
from ultralytics import YOLO
# Load the YOLO26 model (weights are usually baked into the container image)
# YOLO26 is the latest state-of-the-art model for real-time tasks
model = YOLO("yolo26n.pt")
# Perform inference on an image URL
# In production, this might handle API requests or video streams
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Print the number of detected objects to the logs
print(f"Inference complete. Detected {len(results[0].boxes)} objects.")
通过将此逻辑封装在容器中,开发者可以确保python版本和库版本保持不变,从而防止生产环境中出现意外故障。为了简化模型管理、训练和部署,许多团队使用Ultralytics Platform,该平台原生支持基于容器的工作流。有关部署策略的更多信息,请查阅AWS容器用例指南。
开启您的机器学习未来之旅