OpenModelZ简介
OpenModelZ是一个开源的机器学习模型部署工具,旨在简化模型从开发到生产的过程。它可以帮助数据科学家和SRE工程师轻松地将模型部署到各种环境中,包括公有云(如GCP、AWS)、私有集群,甚至是单台机器上。
传统的模型部署流程往往复杂耗时,需要配置监控、日志、扩展等基础设施,还要处理安全权限、域名SSL等问题。即使是部署单个模型,也可能需要数周甚至数月的时间。OpenModelZ极大地简化了这一过程,用户只需一个命令就可以完成部署,并自动获得一个公开可访问的子域名。
OpenModelZ的主要特性
OpenModelZ提供了多项开箱即用的强大功能:
-
从0开始的自动扩展: 推理服务器数量可以根据工作负载自动扩展,从0开始轻松扩展到10+个副本。
-
支持任何机器学习框架: 可以使用单个命令部署任何机器学习框架(如vLLM、triton-inference-server、mosec等),也支持部署自定义的推理服务器。
-
Gradio/Streamlit/Jupyter支持: 提供了强大的原型开发环境,支持Gradio、Streamlit、Jupyter等工具。用户可以在notebook中轻松可视化模型性能并进行调试,或者用单个命令为模型部署Web应用。
-
从单机到集群的无缝扩展: 用户可以从单台机器开始,然后使用
mdz server start
命令轻松扩展到机器集群,无需额外配置。 -
每个部署自动获得公开子域名: 系统为每个部署自动提供单独的子域名,无需额外成本和工作即可从外部轻松访问。
OpenModelZ是ModelZ平台的基础组件,专为机器学习部署而设计。它的核心理念是保持系统简单易用,同时具备良好的可扩展性。
快速上手
要开始使用OpenModelZ,首先需要安装mdz
命令行工具:
pip install openmodelz
安装完成后,可以使用以下命令验证安装:
mdz version
接下来,只需要找到一台服务器(可以是云VM、家用服务器,甚至是单台PC),运行以下命令即可启动OpenModelZ服务:
mdz server start
系统会自动完成服务器的初始化和配置。初始化完成后,你就可以开始部署模型了。例如,部署一个Jupyter Notebook服务:
mdz deploy --image jupyter/minimal-notebook:lab-4.0.3 --name jupyter --port 8888 --command "jupyter notebook --ip='*' --NotebookApp.token='' --NotebookApp.password='''"
部署完成后,可以通过mdz list
命令查看部署状态和访问地址:
NAME ENDPOINT STATUS INVOCATIONS REPLICAS
jupyter http://jupyter-9pnxdkeb6jsfqkmq.192.168.71.93.modelz.live Ready 488 1/1
http://192.168.71.93/inference/jupyter.default
你可以直接通过生成的URL访问部署的Jupyter Notebook服务。
高级功能
除了基本的部署功能,OpenModelZ还提供了许多高级特性:
- 扩展部署: 使用
mdz scale
命令可以轻松扩展部署的副本数:
mdz scale jupyter --replicas 3
-
自动扩缩容: OpenModelZ支持基于请求数自动扩缩容,详细配置可参考文档。
-
调试部署: 可以使用
mdz logs
查看部署日志,使用mdz exec
在容器中执行命令:
mdz logs jupyter
mdz exec jupyter ps
- 端口转发: 使用
mdz port-forward
可以将部署的端口转发到本地进行调试:
mdz port-forward jupyter 8888
- 添加服务器: 使用
mdz server join
命令可以将更多服务器添加到集群中:
mdz server join <之前服务器的内部IP地址>
- 服务器标签: 可以给服务器添加标签,然后在部署时指定使用特定标签的服务器:
mdz server label node3 gpu=true type=nvidia-a100
mdz deploy ... --node-labels gpu=true,type=nvidia-a100
架构设计
OpenModelZ的设计灵感来自K3s和OpenFaaS,但专门针对机器学习部署场景进行了优化。系统由两个主要组件组成:
-
数据平面: 负责管理服务器。用户可以使用
mdz server
命令管理服务器。数据平面设计为无状态和可扩展的,可以通过添加更多服务器轻松扩展。底层使用K3s,支持VM、裸机和IoT设备(未来)。 -
控制平面: 负责管理部署。它管理部署及其底层资源。
请求通过负载均衡器路由到推理服务器。自动缩放器根据工作负载动态调整推理服务器的数量。系统默认提供*.modelz.live
域名,利用通配符DNS服务器为每个部署提供公开可访问的子域名。用户也可以使用自己的域名。
总结
OpenModelZ为机器学习从业者提供了一个简单、高效的模型部署解决方案。它极大地简化了模型部署流程,让数据科学家和工程师可以专注于模型开发和优化,而不是花费大量时间在复杂的基础设施配置上。无论是在公有云、私有集群还是单机环境中,OpenModelZ都能帮助用户快速、轻松地将模型投入生产。
如果你正在寻找一个灵活、易用的模型部署工具,不妨尝试一下OpenModelZ。它不仅可以加速你的模型部署流程,还能帮助你更好地管理和扩展机器学习工作负载。欢迎访问OpenModelZ的GitHub仓库了解更多信息,或加入Discord社区与其他用户交流经验。
文章链接:www.dongaigc.com/a/openmodelz-one-stop-ml-deployment-tool
https://www.dongaigc.com/a/openmodelz-one-stop-ml-deployment-tool