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

AzureML训练管道中如何保存MinMaxScaler并关联模型用于推理?

在Azure ML中保存scikit-learn转换器并与模型关联的简便方法

针对你的需求,有几种比单独存pickle再记录路径更简便的方案,可直接实现转换器与模型的关联:

1. 用scikit-learn Pipeline打包转换器与模型

这是最推荐的方式——将MinMaxScaler和训练好的模型封装成一个Pipeline对象,训练完成后直接保存整个Pipeline,注册到Azure ML时也只需要注册这个Pipeline。推理时直接调用Pipeline的predict方法,自动完成预处理+预测,完全不用单独管理转换器。

示例代码:

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import MinMaxScaler
from sklearn.ensemble import RandomForestClassifier
from azureml.core import Model

# 构建Pipeline
pipeline = Pipeline([
    ('scaler', MinMaxScaler()),
    ('model', RandomForestClassifier())
])

# 训练Pipeline
pipeline.fit(X_train, y_train)

# 保存Pipeline到本地目录
import joblib
joblib.dump(pipeline, './trained_pipeline.pkl')

# 注册到Azure ML
Model.register(
    workspace=your_workspace,
    model_name="my_pipeline_model",
    model_path="./trained_pipeline.pkl",
    description="包含MinMaxScaler和随机森林模型的Pipeline"
)

2. 将转换器与模型放在同一目录下注册

如果不想用Pipeline,也可以把训练好的scaler和模型文件保存到同一个本地目录,然后直接注册整个目录。这样两者会被作为同一个模型资产的一部分存储,推理时从模型目录中分别加载即可,不用额外记录路径。

示例代码:

import os
import joblib
from azureml.core import Model

# 创建模型目录
os.makedirs('./model_assets', exist_ok=True)

# 保存scaler和模型到同一目录
joblib.dump(scaler, './model_assets/scaler.pkl')
joblib.dump(trained_model, './model_assets/model.pkl')

# 注册整个目录
Model.register(
    workspace=your_workspace,
    model_name="my_model_with_scaler",
    model_path="./model_assets",  # 注册整个目录
    description="包含MinMaxScaler和模型文件的资产"
)

3. 注册模型时添加附属文件

Azure ML的Model注册支持通过extra_files参数添加附属文件,直接把scaler文件和模型绑定在一起。注册后,scaler会作为模型的附属文件存在,推理时可以从模型的安装路径中读取。

示例代码:

import joblib
from azureml.core import Model

# 保存模型和scaler
joblib.dump(trained_model, './model.pkl')
joblib.dump(scaler, './scaler.pkl')

# 注册模型并添加scaler作为附属文件
Model.register(
    workspace=your_workspace,
    model_name="my_model",
    model_path="./model.pkl",
    extra_files=['./scaler.pkl'],  # 添加附属文件
    description="带MinMaxScaler附属文件的模型"
)

以上三种方法都比你原来的思路更简便,避免了手动管理Blob路径的麻烦,同时天然实现了转换器与模型的关联,推理时加载更顺畅。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:45:36