ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

在云端实践数据科学:微软 Data Science for Beginners 云章节全解析

在云端实践数据科学:微软 Data Science for Beginners 云章节全解析 在云端实践数据科学微软 Data Science for Beginners 云章节全解析【免费下载链接】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 大章第 1719 课的保加利亚语章节导览文档translations/bg/5-Data-Science-In-Cloud/README.md对应英文原版 5-Data-Science-In-Cloud/README.md。该章节面向初学数据科学的读者讲解「为什么要在云端做数据科学」并以心力衰竭预测项目为实战载体演示「Low code/No code」与「Azure ML SDK」两种从训练、部署到消费模型的完整路径。读完本篇文章你将掌握云计算的三种部署形态与三种服务模型、AutoML 的界面化训练流程以及如何用 Python SDK 以代码方式端到端自动化完成机器学习工作流。上图为本章节的整体项目示意图英文原图位于 5-Data-Science-In-Cloud/19-Azure/images/project-schema.PNG左侧是纯图形界面GUI驱动的 Low code/No code 路线右侧是基于 Azure ML SDK 的代码路线两条路线都指向「训练 → 部署 → 消费」的同一目标。为什么数据科学要上云当面对大数据时云端计算常常能带来根本性的改变。本章节三节课会带你搞清楚什么是云以及它为什么有用。概括来说云端可以解决数据科学从业者的几类核心痛点海量数据存储无需自购、维护和加固大型服务器可直接使用 Azure Cosmos DB、Azure SQL Database、Azure Data Lake Storage 等托管存储服务存放数据数据集成借助 Data Factory 等云集成服务把来自多个来源的数据收集、转换并整合进统一的数据仓库实现从「数据采集」到「采取行动」的跨越数据计算海量数据加工需要极强的算力云端的弹性计算能力让没有超级计算机的团队也能按需获得 GPU/CPU 资源数据分析服务Azure Synapse Analytics、Azure Stream Analytics、Azure Databricks 等可以将原始数据转化为可行动的洞察机器学习与智能服务不必从零实现算法直接使用 AzureML 等托管 ML 服务还可调用语音转文字、文字转语音、计算机视觉等认知服务。从更宏观的视角看云计算的常见价值还包括创新把云厂商的创新服务直接集成进应用、灵活性按需付费、按需选用、预算友好免去自建数据中心的初期投入、可扩展资源随项目需求伸缩、生产力把数据中心运维交给云厂商、可靠性持续备份与容灾计划与安全性云厂商提供的策略、技术与控制手段。云的三种形态与三种服务模型在 17-Introduction/README.md 中课程把云的基本概念拆解为两个维度按部署形态划分公有云Public cloud由第三方云服务商拥有并运营通过互联网向公众交付计算资源私有云Private cloud仅由单一企业或组织独占使用的云计算资源服务和基础设施维护在私有网络上混合云Hybrid cloud结合公有云与私有云的系统用户保留本地数据中心同时允许数据和应用运行在一个或多个公有云上。按服务层级划分IaaS基础设施即服务租用 IT 基础设施如服务器、虚拟机VM、存储、网络、操作系统PaaS平台即服务租用开发、测试、交付和管理软件应用的整套环境无需操心底层服务器、存储、网络和数据库的搭建与运维SaaS软件即服务按需通常按订阅通过互联网访问软件应用无需关心托管、维护、升级与安全补丁。课程中还提到几个主要的云提供商包括 Amazon Web Services、Google Cloud Platform 和 Microsoft Azure——这正是本仓库实战部分选择 Azure 作为落地平台的原因。实战项目心力衰竭预测Heart Failure Prediction为了把云的能力落到具体场景整个章节围绕一个真实的医疗数据科学项目展开心血管疾病CVD是全球第一大死因约占全球死亡人数的 31%烟草使用、不健康饮食与肥胖、缺乏运动、有害饮酒等环境和行为风险因素都可以作为估计模型的输入特征。若能提前评估某人患 CVD 的概率对高风险人群的预防将有极大帮助。数据集结构项目使用 Kaggle 公开的心力衰竭数据集Heart Failure Clinical Data作者 LarxelCC BY 4.0 许可这是一个包含13 列12 个特征 1 个目标变量和 299 行的表格数据集。各字段定义如下#变量名类型说明示例1age数值患者年龄252anaemia布尔红细胞或血红蛋白减少贫血0 或 13creatinine_phosphokinase数值血液中 CPK 酶的水平5424diabetes布尔患者是否患糖尿病0 或 15ejection_fraction数值每次收缩时离开心脏的血液百分比456high_blood_pressure布尔患者是否有高血压0 或 17platelets数值血液中的血小板1490008serum_creatinine数值血液中血清肌酐水平0.59serum_sodium数值血液中血清钠水平jun*10sex布尔女或男0 或 111smoking布尔患者是否吸烟0 或 112time数值随访期天421DEATH_EVENT目标布尔随访期内患者是否死亡0 或 1*注serum_sodium一行示例中的 jun 为原文档笔误实际应为数值如 137。目标变量DEATH_EVENT的编号在原表中延续自特征编号写作 21。两条路线Low code/No code 与 Azure ML SDK18-Low-Code/README.md 和 19-Azure/README.md 分别讲授两条实现路径。课程给出了非常直观的对比表维度Low code/No codeAzure ML SDK编程能力要求不需要需要开发时间快速、简单取决于编程熟练度生产就绪否是Low code/No code路线适合快速验证项目可行性和搭建 POC概念验证全程通过 Azure ML Studio 的图形界面完成无需任何编码背景。Azure ML SDK路线则面向项目成长与生产化当资源创建、模型部署都需要程序化自动化时GUI 方式不再可行此时掌握 SDK 就变得至关重要。路线一Azure ML Studio 的 Low code/No code 全流程认识 Azure Machine LearningAzure 云平台包含 200 多个产品和云服务。其中Azure ML是基于云的机器学习解决方案构建与运营平台通过自动化大量耗时任务来提升数据科学家效率并使用可有效扩展的云端计算资源按需计费。Azure ML 提供的工具包括Azure Machine Learning StudioWeb 门户提供模型训练、部署、自动化、追踪和资产管理所需的低代码/无代码选项并与 Azure ML SDK 无缝集成Jupyter Notebooks快速原型化和测试 ML 模型Azure Machine Learning Designer拖拽式模块构建实验并部署管道AutoML自动化机器学习自动化模型开发的迭代任务以高扩展性、高效率和生产力构建模型同时保持模型质量数据标注Data Labelling自动标注数据的辅助 ML 工具VS Code 机器学习扩展构建和管理 ML 项目的完整开发环境机器学习 CLI命令行管理 Azure ML 资源开源框架集成PyTorch、TensorFlow、Scikit-learn 等覆盖端到端训练、部署与管理MLflow管理机器学习实验生命周期的开源库其中 MLflow Tracking 组件负责记录和追踪训练运行的指标与模型工件。创建 Azure ML 工作区Workspace工作区是 Azure Machine Learning 的顶层资源集中存放所有训练运行的历史记录日志、指标、输出、脚本快照供你判断哪次运行产出了最佳模型。创建步骤使用与 Azure 订阅关联的 Microsoft 凭据登录 Azure 门户选择 创建资源搜索 Machine Learning 并选择 Machine Learning 磁贴点击创建填写设置订阅、资源组、唯一的工作区名称、就近的地理区域并记录自动创建的存储账户Storage account、Key vault、Application insights容器注册表Container registry暂选 None首次向容器部署模型时会自动创建等待数分钟创建工作完成在门户中找到工作区在工作区「概述」页启动 Azure Machine Learning studio或访问 https://ml.azure.com用 Microsoft 账户登录并选择目录、订阅和工作区点击界面左上角 ☰ 图标浏览各页面管理工作区资源。注意只要工作区存在于订阅中就会产生少量数据存储费用建议不再使用时删除工作区。另外建议使用与操作系统兼容的最新版浏览器新版 Microsoft Edge、Safari 最新版仅 Mac、Chrome 最新版、Firefox 最新版。计算资源选型计算资源是运行模型训练与数据探索的云端资源共四种计算实例Compute Instances数据科学家的开发工作站创建 VM 并启动 notebook 实例可从 notebook 调用计算集群训练模型计算集群Compute Clusters按需处理实验代码的可扩展 VM 集群训练模型时需要可使用专用 GPU 或 CPU 资源推理集群Inference Clusters部署使用已训练模型的预测服务的部署目标附加计算Attached Compute关联现有 Azure 计算资源如 VM 或 Azure Databricks 集群。选型时需权衡以下关键因素CPU 还是 GPUCPU 能快速处理广泛任务但并发能力有限GPU 专为并行计算设计更适合深度学习。集群大小更大的集群更贵但响应更好时间多预算少则从小集群起步反之从大集群起步。VM 大小可调整 RAM、磁盘、核心数与主频参数越高越贵但性能越好。专用还是低优先级实例低优先级实例可被 Azure 回收并中断任务更便宜专用实例不可中断任务不会被未经许可终止。创建计算集群的实操路径为Studio → Compute 菜单 → Compute cluster 标签页 → New选择 Dedicated/Low priority、CPU/GPU、VM 大小与核心数 → 命名 → 设置最小/最大节点数、缩容空闲秒数与 SSH 访问 → Create。最小节点数为 0 时集群空闲即可省钱最大节点数越多训练越快推荐上限为 3。上传数据集在 Studio 左菜单点击 Datasets → Create dataset → 选择 From local files 并选择下载好的 Kaggle 数据集 → 命名、选类型、写描述后上传 → 在 Schema 中将 anaemia、diabetes、high_blood_pressure、sex、smoking、DEATH_EVENT 的数据类型改为Boolean→ 点击 Next 和 Create。AutoML 一键训练AutoML 把「产出并比较几十个模型」这一资源密集型过程自动化。操作路径Studio 左菜单 Automated ML → 选择刚上传的数据集 → 输入实验名、目标列DEATH_EVENT和之前创建的计算集群 → 任务类型选择Classification并点击 Finish。该步骤视集群大小约需30 分钟到 1 小时。运行结束后在 Automated ML 标签页打开运行记录点击 Best model summary 卡片中的算法即可查看最佳模型的详细描述也可在 Models 标签页探索其他模型并利用 Explanations 功能深入理解模型。部署模型并消费端点在最佳模型描述页点击Deploy填写名称、描述计算类型选Azure Container InstanceACI启用认证后点击 Deploy约需 20 分钟期间可通过 Deploy status 刷新状态变为Healthy即部署成功进入 Endpoint 标签页查看端点详情再到 Consume 标签页获取REST 端点 URL与API 密钥。Studio 会自动生成一个可本地运行的消费脚本核心就是两行url http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score api_key # Replace this with the API key for the web serviceurl是 Consume 页中的 REST 端点api_key是 Consume 页中的主密钥仅当启用认证时提供。运行脚本会得到默认输出b{\result\: [true]}——因为脚本自动生成的示例数据全为 0/false年龄 0、各项指标为 0模型自然判断为「有风险」。若把输入替换为更真实的两个样本data { data: [ { age: 0, anaemia: false, creatinine_phosphokinase: 0, diabetes: false, ejection_fraction: 0, high_blood_pressure: false, platelets: 0, serum_creatinine: 0, serum_sodium: 0, sex: false, smoking: false, time: 0, }, { 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, }, ], }脚本将返回b{\result\: [true, false]}——第一个全 0 样本预测为 true有风险第二个接近正常的样本预测为 false。这就是一次完整的云端模型消费闭环。路线二用 Azure ML SDK 以代码驱动全流程Azure ML SDK 让你在任何 Python 环境中Jupyter Notebook、VS Code 或任意 IDE与 Azure Machine Learning 服务交互核心能力包括数据集生命周期管理、云端资源与实验的组织/监控/日志、本地或云端含 GPU 加速训练、AutoML 自动迭代算法与超参、以及把模型部署为 RESTful 服务。环境准备SDK 路线需要工作区和计算实例。工作区创建方法同路线一计算实例在 Studio 的 Compute 菜单 → New 创建命名、选 CPU/GPU、VM 大小与核心数。数据集若尚未上传参照路线一的「上传数据集」一节。仓库已附带可直接上传的完整 notebook 示例5-Data-Science-In-Cloud/19-Azure/notebook.ipynb在 Studio 的 Notebook 菜单中上传即可。创建 notebook 后通过 Compute instances 列表中的 Jupyter 入口启动实例点击 New 新建 notebook。工作区、实验、计算集群与数据集从配置文件加载工作区并创建实验from azureml.core import Workspace ws Workspace.from_config() from azureml.core import Experiment experiment_name aml-experiment experiment Experiment(ws, experiment_name)实验名须为 3-36 个字符以字母或数字开头只能包含字母、数字、下划线和连字符若工作区中不存在该名称的实验会自动新建。创建训练用的计算集群此步骤可能耗时数分钟from azureml.core.compute import AmlCompute 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_size Standard_D2_v2, min_nodes1, max_nodes3) aml_compute AmlCompute.create(ws, name aml_name, provisioning_configuration aml_config) aml_compute.wait_for_completion(show_output True) cts ws.compute_targets compute_target cts[aml_name]按名称从工作区取回数据集并转为 pandas DataFrame 查看统计dataset ws.datasets[heart-failure-records] df dataset.to_pandas_dataframe() df.describe()AutoMLConfig 配置与提交训练使用AutoMLConfig类配置实验。本项目的关键参数及含义如下参数含义experiment_timeout_minutes实验允许运行的最大分钟数超时自动停止并产出结果max_concurrent_iterations允许的最大并发训练迭代数primary_metric判断实验状态的主指标compute_target运行 AutoML 实验的 Azure ML 计算目标task任务类型classification、regression或forecastingtraining_data训练数据需包含特征与标签列可选样本权重列label_column_name标签列名称pathAzure ML 项目文件夹的完整路径enable_early_stopping评分短期无提升时是否提前终止featurization是否自动进行特征工程auto/ 关闭 / 自定义debug_log调试信息写入的日志文件from azureml.train.automl import AutoMLConfig project_folder ./aml-project automl_settings { experiment_timeout_minutes: 20, max_concurrent_iterations: 3, primary_metric : AUC_weighted } automl_config AutoMLConfig(compute_targetcompute_target, task classification, training_datadataset, label_column_nameDEATH_EVENT, path project_folder, enable_early_stopping True, featurization auto, debug_log automl_errors.log, **automl_settings ) remote_run experiment.submit(automl_config)提交后可用RunDetails组件可视化各实验from azureml.widgets import RunDetails RunDetails(remote_run).show()保存、部署与消费remote_run是AutoMLRun对象其get_output()返回最佳运行及对应的拟合模型best_run, fitted_model remote_run.get_output() best_run.get_properties()随后下载 AutoML 自动生成的评分脚本并注册模型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_name model_name, model_path ./outputs/, description description, tags None)使用InferenceConfig自定义部署环境的配置与AciWebservice部署到 Azure Container Instances 的 Web 服务端点类完成部署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_cores 1, memory_gb 1, tags {type: automl-heart-failure-prediction}, description Sample 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)部署完成后构造样本输入并调用端点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]}表示该输入样本不太可能发生心力衰竭。进阶挑战与配套资源模型解释仔细观察 AutoML 为最优模型生成的解释与细节思考最佳模型为何优于其他模型——比较了哪些算法差异在哪为什么在当前数据上表现更好SDK Pipeline在 Azure ML SDK 文档中检索Pipeline类azureml.pipeline.core.Pipeline可将多个步骤编排为可执行的工作流。课后实践第 17 课的作业要求调研三家及以上云提供商的数据科学服务并撰写对比报告见 5-Data-Science-In-Cloud/17-Introduction/assignment.md第 18、19 课的作业则要求分别在 Studio 界面和 SDK 中独立完成一次心力衰竭预测项目见 18-Low-Code/assignment.md 与 19-Azure/assignment.md。运行提醒两节课都特别提醒——项目结束后务必删除全部云资源避免产生持续费用。小结本章节的价值在于让初学者用同一个心力衰竭数据集、同一条「训练 → 部署 → 消费」链路亲身体验云端数据科学的两种范式零代码的 Studio 界面路线适合快速验证想法与搭建 POC代码化的 Azure ML SDK 路线则是项目走向生产环境时资源自动化、流程可复现的关键。结合仓库中的 17-Introduction/README.md、18-Low-Code/README.md、19-Azure/README.md 三篇课程正文及其对应的保加利亚语译本translations/bg/5-Data-Science-In-Cloud/你可以按步骤完整复现整个项目把「云端数据科学」从概念变为可运行的现实。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表