了解容器化如何简化人工智能部署。探索如何使用 Docker 和 Kubernetes 在任何环境中一致运行Ultralytics 。
容器化是一种软件部署策略,它将应用程序的源代码与其库文件、依赖项和配置文件打包成单一的轻量级可执行单元,即容器。这种方法将软件与底层基础设施解耦,确保应用程序在从开发者本地笔记本电脑到大型云计算集群等各种计算环境中都能保持一致运行。 在机器学习(ML)领域,容器化通过封装训练和运行神经网络所需的复杂环境,有效解决了困扰业界的"在我机器上运行正常"问题。
对于数据科学家和机器学习工程师而言,环境管理是一项重大挑战。不同项目可能需要冲突Python版本、CUDA 或PyTorch等库。容器化通过创建隔离的、不可变的环境来消除这些冲突。
区分容器与虚拟机(VM)至关重要。虚拟机模拟完整的硬件堆栈,包括完整的客户操作系统,这会导致显著的资源开销和较慢的启动时间。 相比之下,容器化技术通过虚拟化操作系统,使多个应用程序能在共享内核上作为隔离进程运行。这种精简的运行方式使容器成为硬件资源受限场景(如物联网设备或无人机)中边缘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 和库Python 保持不变,从而避免生产环境中出现意外故障。为简化模型管理、训练和部署流程,众多团队采用Ultralytics 该Ultralytics 原生支持基于容器的工作流。如需深入了解部署策略,请参阅AWS容器使用场景指南。