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

Azure ML笔记本在Blob存储上传CSV后自动重训练及部署方案咨询

Azure Blob触发ML模型自动重训练+部署实现方案

一、基础资源准备

  • 先搭好核心资源:Azure存储账户(新建两个Blob容器:training-data存上传的训练数据,model-artifacts存生成的.pkl模型)、Azure机器学习(ML)工作区。
  • 在ML工作区里把这个存储账户关联成数据存储,让训练脚本/Notebook能直接访问Blob里的文件。
  • 准备训练逻辑:把你的训练流程封装成可自动化执行的脚本(比如train.py),如果一定要用Notebook,建议用papermill做参数化运行,纯Notebook不太适合自动化触发。

二、Blob上传触发机制实现

用Azure Event Grid + Azure Functions组合监听上传事件,触发训练:

  • 给存储账户配置Event Grid订阅:筛选条件设为「当新Blob添加到training-data容器时触发」,终点选择Azure Function。
  • 写一个Python类型的Azure Function,触发类型选Event Grid Trigger,核心逻辑是调用ML训练作业:
    from azureml.core import Workspace, ScriptRunConfig, Experiment
    import azure.functions as func
    
    def main(event: func.EventGridEvent):
        # 连接ML工作区(提前把config.json放到函数目录)
        ws = Workspace.from_config()
        # 定义训练作业配置
        script_config = ScriptRunConfig(
            source_directory='./train-scripts',
            script='train.py',
            compute_target='your-compute-cluster'  # 替换成你的计算集群名称
        )
        # 提交训练实验
        exp = Experiment(ws, 'auto-retrain-exp')
        run = exp.submit(script_config)
        run.wait_for_completion(show_output=True)
    

三、训练与部署核心逻辑

不管用脚本还是参数化Notebook,必须包含这几步:

  • 数据加载:用Azure ML SDK或者azure-storage-blob库从training-data容器读取新上传的数据。
  • 模型重训练:加载旧模型(如果有)或从头训练,完成后生成更新后的.pkl文件。
  • 模型存储:把新.pkl文件上传到model-artifacts容器,建议按版本命名(比如model_v3.pkl)方便回溯。
  • 自动部署:用ML SDK把新模型部署到在线端点(测试用ACI,生产用AKS或托管在线端点):
    # 训练脚本里的部署示例
    from azureml.core import Model
    from azureml.core.webservice import ManagedOnlineEndpoint, ManagedOnlineDeployment
    
    # 注册模型到ML工作区
    model = Model.register(
        workspace=ws,
        model_path='./updated_model.pkl',
        model_name='my-prediction-model',
        tags={'data_version': 'latest'}
    )
    
    # 创建/更新托管在线端点
    endpoint = ManagedOnlineEndpoint(
        name='my-model-endpoint',
        workspace=ws,
        description='Auto-updated prediction endpoint'
    )
    endpoint.create()
    
    # 创建部署
    deployment = ManagedOnlineDeployment(
        name='blue',
        endpoint=endpoint.name,
        model=model,
        instance_type='Standard_DS3_v2',
        instance_count=1
    )
    deployment.create()
    

四、验证与监控

  • 手动上传测试数据到training-data,检查Event Grid是否触发Function,ML工作区里的实验是否正常启动。
  • 查看训练日志,确认.pkl文件生成、模型部署是否成功。
  • 给ML工作区加告警规则:训练失败、部署失败时自动发邮件/Teams通知。

可选优化

  • 用Azure ML数据集做数据版本控制,每次训练绑定对应的数据版本,方便排查问题。
  • 在部署前加模型校验步骤:用验证集测试新模型准确率,达标再执行部署。
  • 复杂场景可以换Azure DevOps Pipeline,实现多环境部署、审批流程等更灵活的CI/CD逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:43:22