资讯详情

资讯详情

Data-Science-For-Beginners 实战:用 Azure ML SDK 完成 AutoML 训练、部署与端到端模型消费

Data-Science-For-Beginners 实战用 Azure ML SDK 完成 AutoML 训练、部署与端到端模型消费【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners在微软的 Data Science for Beginners 开源课程中5-Data-Science-In-Cloud/19-Azure 这一课系统讲解了如何用 Azure Machine Learning SDK而非图形界面完成「训练 → 部署 → 消费」一条完整的云端机器学习流水线。本文以该课的作业任务为主线先拆解作业要求与评分标准再结合课程讲义和配套 notebook 中的完整可运行代码为你还原一套可直接照做的端到端实战方案用 AutoML 训练心衰预测模型、核对模型解释、注册并部署最佳模型最后通过 SDK 发起实时推理请求。一、作业解读要交付什么作业原文对应英文原版 Data Science project using Azure ML SDK要求如下在完成本课、已学会用 Azure ML SDK 训练、部署并消费模型之后自行寻找一份数据集作业提示可检索 Kaggle 与 Azure Open Datasets 上的公开数据集完成一个从训练到上线消费的完整闭环项目具体包括通过 AutoML 对一个数据集执行训练查看并核对模型的解释model explanations部署 AutoML 选出的最佳模型通过 Azure ML SDK 消费该模型端点发起推理请求并拿到预测结果。也就是说作业不要求引入新知识点而是要求把课程里演示的「心衰预测」流水线迁移到你自己选的数据集上验证你是否真正掌握了这套 SDK 工作流。二、作业评分标准Rubric逐级拆解作业自带三档评分表它同时就是一份完成度自检清单等级要求优秀Exemplary配置 AutoML 时查阅过 SDK 文档、确认可用的参数用 Azure ML SDK 通过 AutoML 完成训练并核对模型解释部署最佳模型并能通过 SDK 消费良好Adequate用 Azure ML SDK 通过 AutoML 完成训练并核对模型解释部署最佳模型并能通过 SDK 消费及格Needs Improvement用 Azure ML SDK 通过 AutoML 完成训练部署最佳模型并能通过 SDK 消费三档的差异集中在两点是否检查了模型解释以及是否主动研究过 AutoMLConfig 的 SDK 参数文档而非照抄示例。这提示我们在实战中至少要做到训练完成后调用解释相关 API 查看特征贡献并针对自己选的数据集调整 AutoMLConfig 参数。三、前置条件工作区、计算资源与数据集课程讲义要求从已有 Azure ML Workspace 计算实例起步。如果你还没有工作区需要先在 Azure 门户创建 Machine Learning 工作区创建时注意记下默认的存储账号、Key Vault、Application Insights 等配套资源容器注册表会在首次部署模型到容器时自动创建随后在 Azure ML Studioml.azure.com中管理资源。工作区创建、计算资源选型CPU/GPU、专用实例 vs 低优先级实例、节点数的完整图文步骤见上一课 18-Low-Code 讲义的 2.12.3 节本课作业直接沿用这些基础设施即可。3.1 创建计算实例Compute Instance在 Azure ML 工作区的 Compute 菜单下可以查看各类计算资源。点击 New创建计算实例用于托管 Jupyter Notebook点击 New按钮为计算实例命名选择配置CPU 或 GPU、VM 规格与核心数点击Create创建。计算实例就绪后进入 Notebook 页面创建或直接上传课程配套的 notebook.ipynb在 Applications 区域点击 Jupyter 入口确认提示后即可在浏览器新标签页打开 Jupyter 实例再点击New新建 notebook。3.2 数据集准备课程使用的 Heart Failure 数据集Kaggle 公开数据CC BY 4.0 许可是 13 列12 个特征 1 个目标列、299 行的表格数据。各列含义如下age年龄、anaemia贫血布尔、creatinine_phosphokinase血液中 CPK 酶水平、diabetes糖尿病布尔、ejection_fraction每次收缩左心室泵出血的百分比、high_blood_pressure高血压布尔、platelets血小板、serum_creatinine血清肌酐、serum_sodium血清钠、sex性别布尔、smoking吸烟布尔、time随访天数目标列DEATH_EVENT随访期内是否死亡布尔。数据集需要先通过 Azure ML Studio 的Datasets菜单上传选择 From local files并为布尔型特征anaemia、diabetes、high_blood_pressure、sex、smoking、DEATH_EVENT设置 Boolean 类型。上传后在 SDK 中即可按数据集名访问。做作业时把这里的心衰数据替换成你自己选的数据集即可其余流程不变。四、AutoML 配置参数详解作业优秀档的关键作业评分标准特别强调优秀档要求查看 SDK 文档、确认可配置的参数。AutoML 的核心配置类是AutoMLConfigazureml.train.automl模块课程中实际使用的参数及含义如下表参数作用课程示例值compute_targetAutoML 实验运行的 Azure ML 计算目标compute_target前述 AML 计算集群task任务类型classification、regression或forecastingclassificationtraining_data实验使用的训练数据应同时包含特征与标签列可选样本权重列datasetlabel_column_name标签列名称DEATH_EVENTpathAzure ML 项目文件夹的完整路径./aml-projectenable_early_stopping分数短期内不再提升时是否提前终止Truefeaturization是否自动执行特征化或使用自定义特征化autodebug_log调试信息写入的日志文件automl_errors.logexperiment_timeout_minutes实验最多运行时长分钟超时自动停止并给出结果20max_concurrent_iterations实验允许的最大并发训练迭代数3primary_metric用于判定实验状态的主指标AUC_weighted其中experiment_timeout_minutes、max_concurrent_iterations、primary_metric三个参数被单独放进automl_settings字典通过**automl_settings解包传入便于集中管理。作业要求你做的研究参数核心就是理解这类参数对训练时长、资源占用和模型选择的影响例如primary_metric决定 AutoML 用哪个指标挑最佳模型分类问题常用AUC_weightedenable_early_stopping能显著节省算力max_concurrent_iterations受集群节点上限约束。完整配置代码见 notebook.ipynb 的 AutoML Configuration 小节。五、端到端代码实现训练 → 注册 → 部署 → 消费下面按课程 notebook 的顺序给出完整代码。所有代码都来自仓库内 notebook.ipynb你可以在自己的 Azure ML 计算实例上逐段运行也可以直接参考仓库中的答案 notebook。5.1 初始化工作区、实验与计算集群from azureml.core import Workspace, Experiment from azureml.core.compute import AmlCompute from azureml.train.automl import AutoMLConfig from azureml.widgets import RunDetails from azureml.core.model import InferenceConfig, Model from azureml.core.webservice import AciWebservice从本地配置文件config.json加载工作区ws Workspace.from_config() print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep\n)创建或获取实验。实验名有命名约束336 个字符以字母或数字开头只能包含字母、数字、下划线和连字符工作区中不存在同名实验时会自动创建experiment_name aml-experiment experiment Experiment(ws, experiment_name)创建训练用计算集群首次创建需要几分钟已存在则复用aml_name heart-f-cluster try: aml_compute AmlCompute(ws, aml_name) print(Found existing AML compute context.) except: print(Creating new AML compute context.) aml_config AmlCompute.provisioning_configuration(vm_sizeStandard_D2_v2, min_nodes1, max_nodes3) aml_compute AmlCompute.create(ws, nameaml_name, provisioning_configurationaml_config) aml_compute.wait_for_completion(show_outputTrue) cts ws.compute_targets compute_target cts[aml_name]注意这里AmlCompute.provisioning_configuration(vm_sizeStandard_D2_v2, min_nodes1, max_nodes3)的意义vm_size指定虚拟机规格影响单节点性能与成本min_nodes/max_nodes决定集群自动伸缩范围最小节点设为 0 可在空闲时省钱最大节点数越多训练越快但越贵本课建议上限 3。按数据集名从工作区取出已上传的数据集并转成 Pandas DataFrame 做初步检查key heart-failure-records dataset ws.datasets[key] df dataset.to_pandas_dataframe() df.describe()5.2 配置 AutoML 并提交训练automl_settings { experiment_timeout_minutes: 20, max_concurrent_iterations: 3, primary_metric: AUC_weighted } automl_config AutoMLConfig(compute_targetcompute_target, taskclassification, training_datadataset, label_column_nameDEATH_EVENT, pathproject_folder, # project_folder ./aml-project enable_early_stoppingTrue, featurizationauto, debug_logautoml_errors.log, **automl_settings)提交实验。根据集群规模不同这一步最长可能需要约一小时remote_run experiment.submit(automl_config)用 RunDetails 小组件实时查看各次迭代结果from azureml.widgets import RunDetails RunDetails(remote_run).show()5.3 获取并检查最佳模型对应核对模型解释remote_run是AutoMLRun对象其get_output()返回最佳 run 与对应的已拟合模型best_run, fitted_model remote_run.get_output()打印fitted_model可查看最佳模型使用的算法与超参数调用get_properties()可查看该 run 的属性best_run.get_properties()作业要求核对模型解释即在此阶段利用 AutoML 生成的模型解释信息各特征对预测的贡献度判断模型行为是否符合业务直觉。课程讲义指出上一课 Low code/No code 方式中可在 Studio 的 Explanations 面板查看SDK 路径下同样可以基于best_run获取解释相关输出。5.4 注册最佳模型model_name best_run.properties[model_name] script_file_name inference/score.py best_run.download_file(outputs/scoring_file_v_1_0_0.py, inference/score.py) description aml heart failure project sdk model best_run.register_model(model_namemodel_name, model_path./outputs/, descriptiondescription, tagsNone)这里的关键动作有两点一是把 AutoML 自动生成的评分脚本scoring file下载到inference/score.py作为后续部署的入口脚本二是调用register_model把模型注册到工作区模型注册表得到可复用的model对象。5.5 部署到 Azure 容器实例ACI部署使用InferenceConfig自定义部署环境配置与AciWebserviceAzure 容器实例上的 Web 服务端点是负载均衡的 HTTP REST 端点from azureml.core.model import InferenceConfig, Model from azureml.core.webservice import AciWebservice inference_config InferenceConfig(entry_scriptscript_file_name, environmentbest_run.get_environment()) aciconfig AciWebservice.deploy_configuration(cpu_cores1, memory_gb1, tags{type: automl-heart-failure-prediction}, descriptionSample service for AutoML Heart Failure Prediction) aci_service_name automl-hf-sdk aci_service Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig) aci_service.wait_for_deployment(True) print(aci_service.state)要点说明InferenceConfig的两个核心参数是entry_script评分脚本路径即前面下载的inference/score.py和environment这里直接复用best_run.get_environment()确保部署环境与训练环境一致deploy_configuration指定容器资源cpu_cores1、memory_gb1Model.deploy把模型、脚本和相关文件打包发布为服务wait_for_deployment(True)会阻塞直到部署完成随后打印服务状态。该步骤通常需要几分钟。5.6 通过 SDK 消费端点构造一条样本输入注意字段需与训练数据特征一致值以字符串形式给出编码为 JSON 后调用run()data { data: [ { age: 60, anaemia: false, creatinine_phosphokinase: 500, diabetes: false, ejection_fraction: 38, high_blood_pressure: false, platelets: 260000, serum_creatinine: 1.40, serum_sodium: 137, sex: false, smoking: false, time: 130, }, ], } test_sample str.encode(json.dumps(data)) response aci_service.run(input_datatest_sample) response该样本的预期输出为{result: [false]}即模型判定这位患者不太可能发生心衰事件。至此训练 → 部署 → 消费闭环完成——这正是作业要求的核心交付物。你也可以在数据字典中增删字段、修改数值观察模型对不同输入的反应。六、收尾与延伸挑战完成项目后讲义明确提醒记得删除所有不再使用的云端资源工作区存在期间会产生少量存储费用部署的 ACI 服务也会持续计费这是云上项目实操中不可省略的一步。作业的延伸方向是探索 SDK 的Pipeline类azureml.pipeline.core.Pipeline允许把多个步骤组织成可编排的工作流。课程给的建议是直接在 SDK 文档搜索栏输入 Pipeline 定位该类这也是培养查 SDK 文档自学新能力这一核心方法论的练习——与本作业评分标准中查阅 SDK 文档研究参数的要求一脉相承。七、把作业迁移到你的数据集四步自查最后把课程的心衰示例换成你自己的数据集时只需逐项对照以下清单即可覆盖作业全部评分点数据准备上传数据集并在 Studio 中核对列类型布尔列记得设为 Boolean记住数据集 keyAutoML 配置根据数据任务类型分类/回归/预测设置task正确指定label_column_name并从 SDK 文档出发选配合适的primary_metric、experiment_timeout_minutes、max_concurrent_iterations等参数对应优秀档要求训练与解释experiment.submit(automl_config)后检查模型解释确认特征贡献符合业务直觉部署与消费下载 scoring 脚本、注册模型、部署到 ACI构造与训练特征一致的新样本调用端点验证输出。完成以上四步你就在 Data Science for Beginners 课程框架内独立交付了一个完整的云端机器学习项目。完整可运行代码与全部讲解均可回到本课讲义及其配套 notebook中查阅。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →