如何使用Azure Machine Learning CLI v2将多个模型部署到托管终结点?
Azure ML CLI v2 单托管终结点多模型部署问题解答
首先明确结论:该场景没有功能限制,是官方文档覆盖不全导致你没找到对应配置方法,CLI v2 GA版完全支持单托管终结点部署多个已注册模型,和此前SDK v1多模型部署到AKS的能力对齐。
目前有两种成熟的落地方式,可根据业务场景选择:
- 单部署挂载多模型:适合多个模型运行依赖一致、总资源占用可控的场景,和你之前用SDK v1实现的多模型部署逻辑完全一致
- 单终结点挂多独立部署:适合模型依赖差异大、需要单独扩缩容的场景,通过流量规则路由请求到对应模型部署
单部署挂载多模型配置方法
你只需要在部署YAML里通过models字段声明所有要挂载的已注册模型即可,核心配置示例如下:
# 托管在线部署YAML核心配置 name: multi-model-demo-deploy endpoint_name: your-online-endpoint # 多模型声明段 models: - azureml:recommendation-model:3 # 格式为 azureml:<模型名>:<版本号> - azureml:content-moderation-model:1 - azureml:image-classification-model:5 environment: conda_file: ./conda.yaml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest code_configuration: code: ./score_src scoring_script: score.py instance_type: Standard_DS3_v2 instance_count: 2
部署完成后,所有模型会统一挂载到实例的AZUREML_MODEL_DIR路径下,按模型名分目录存储,你在score.py里可以直接遍历该路径加载所有模型,也可以根据请求参数懒加载指定模型处理请求。
单终结点多独立部署配置方法
你可以先创建一个空的托管在线终结点,然后针对每个模型单独创建对应的部署,每个部署可以独立配置运行环境、实例规格、扩缩容阈值,最后通过终结点的流量配置规则,按请求路径、请求头或者流量比例把请求转发到对应部署即可。
部署前建议先执行az extension update -n ml把CLI的ml扩展升级到最新GA版本,避免旧版本schema不识别多模型配置字段。
补充说明:目前官方公开文档确实没有把多模型托管部署作为独立场景做专项说明,相关配置字段仅在YAML schema定义里标注,不少做POC验证的用户都会遇到找不到对应配置说明的问题。
内容的提问来源于stack exchange,提问作者rick
相关产品推荐
相关产品推荐

