You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过同一端口使用MLflow部署多个模型?

关于MLflow自带部署工具单端口部署多模型的问题

首先明确:默认使用mlflow models serve命令时,一个端口确实只能部署一个模型,这本质是技术限制,而非最佳实践。

为什么是技术限制?

mlflow models serve启动的是一个独立的HTTP服务实例(底层基于Flask或Gunicorn),这个实例在启动时会加载指定路径(比如runs:/<run_id>/model)的单个模型文件,进程内仅运行该模型的推理逻辑。同时,TCP端口在操作系统层面是进程级绑定的——一个端口只能被一个进程占用,所以每个mlflow models serve实例必须独占一个端口,对应一个模型。

有没有办法在一个端口部署多个模型?

当然有,两种常见方案:

  • 反向代理统一入口:给每个模型启动独立的mlflow models serve服务(各占不同端口),然后用Nginx这类反向代理工具,将同一个域名/IP下的不同路径(比如/model1/invocations、/model2/invocations)转发到对应端口的MLflow服务。这样对外看起来是一个端口入口,实际内部对应多个模型。
  • 打包复合模型:把多个相关模型打包成MLflow的复合模型(Composite Model),让这个复合模型能根据请求参数(比如model_name字段)调用对应的子模型推理。之后用mlflow models serve部署这个复合模型,就能在单个端口处理多个模型的请求。

最佳实践建议

如果是生产环境:

  • 不建议强行在单个mlflow models serve实例里塞多个模型(除了逻辑紧密关联的复合模型),因为单个进程缺乏资源隔离,一个模型的故障可能导致整个服务崩溃,也不利于单独扩容某一个模型。
  • 更推荐每个模型用独立端口部署,配合反向代理做统一入口,这样便于单独监控、升级和扩容每个模型,运维成本更低。

内容的提问来源于stack exchange,提问作者Monica Heddneck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:45:21