将 Recommenders 示例无缝迁移到 AzureML 云平台 2024-06-29 作者 C3P00 引言 随着推荐系统规模的扩大和对训练效率要求的提高,将本地实验迁移到云平台成为一种趋势。Azure 机器学习服务(AzureML)为开发者提供了一个强大的云端环境,可以用于数据准备、模型训练、测试、部署、管理和跟踪。 本指南将以 run_notebook_on_azureml.ipynb 为例,介绍如何将 Recommenders 示例 Notebook 提交到 AzureML 计算目标,利用云平台的优势加速推荐系统开发流程。 AzureML 简介 AzureML 提供了丰富的功能,包括: 管理云资源,用于监控、记录和组织机器学习实验。 支持本地和云端训练模型,包括 GPU 加速训练。 易于扩展,只需创建并指向新的计算目标即可应对数据集增长。 准备工作 使用 AzureML 之前,需要完成以下准备工作: 拥有 Azure 订阅。如果没有,可以创建一个免费帐户,并试用 Azure 机器学习服务的免费或付费版本。 安装 azure.contrib.notebook 包。 #!pip install "azureml.contrib.notebook>=1.0.21.1" 连接到 AzureML 工作区 AzureML 工作区是用于组织和协调机器学习工作流的 Azure 资源,它协调存储、数据库和计算资源,为实验、部署、推理和模型监控提供额外功能。 以下代码将获取或创建一个 AzureML 工作区,并将配置保存到 aml_config/config.json 文件中。 ws = Workspace.create( name="<WORKSPACE_NAME>", subscription_id="<SUBSCRIPTION_ID>", resource_group="<RESOURCE_GROUP>", location="<WORKSPACE_REGION>" exist_ok=True, ) 创建或连接 Azure 机器学习计算资源 Azure 机器学习计算是一种托管计算基础设施,允许用户轻松创建单节点到多节点的计算资源。 以下代码将创建一个 CPU 集群作为远程计算目标。 # 远程计算(集群)配置 VM_SIZE = 'STANDARD_D2_V2' MIN_NODES = 0 MAX_NODES = 2 CLUSTER_NAME = 'cpucluster' try: compute_target = ComputeTarget(workspace=ws, name=CLUSTER_NAME) print("找到现有计算目标") except: print("正在创建新的计算目标...") # 指定新集群的配置 compute_config = AmlCompute.provisioning_configuration( vm_size=VM_SIZE, min_nodes=MIN_NODES, max_nodes=MAX_NODES ) # 使用指定的名称和配置创建集群 compute_target = ComputeTarget.create(ws, CLUSTER_NAME, compute_config) # 等待集群完成,显示输出日志 compute_target.wait_for_completion(show_output=True, min_node_count=None, timeout_in_minutes=20) 提交 Notebook 以下代码将 sar_movielens.ipynb Notebook 提交到 AzureML 计算目标。 NOTEBOOK_NAME = 'sar_movielens.ipynb' experiment_name = NOTEBOOK_NAME.strip(".ipynb") # ... 设置运行配置 ... cfg = NotebookRunConfig(source_directory='../', notebook='notebooks/00_quick_start/' + NOTEBOOK_NAME, output_notebook='outputs/out.ipynb', parameters={"MOVIELENS_DATA_SIZE": "100k", "TOP_K": 10}, run_config=run_config) run = exp.submit(cfg) run 监控运行进度 可以使用 Jupyter 小部件监控运行进度。小部件会每隔 10-15 秒提供一次实时更新,直到作业完成。 RunDetails(run).show() 查看指标 运行完成后,可以使用 run.get_metrics() 查看记录的指标。 metrics = run.get_metrics() print(metrics) 释放计算资源 为避免不必要的费用,请确保在使用后释放创建的计算目标。 # 删除计算目标 compute_target.delete() 总结 通过将 Recommenders 示例 Notebook 提交到 AzureML 云平台,可以充分利用云计算的优势,加速推荐系统开发流程。AzureML 提供了丰富的功能和灵活的配置选项,可以满足不同规模和需求的推荐系统开发。 显示答案 清除答案
引言
随着推荐系统规模的扩大和对训练效率要求的提高,将本地实验迁移到云平台成为一种趋势。Azure 机器学习服务(AzureML)为开发者提供了一个强大的云端环境,可以用于数据准备、模型训练、测试、部署、管理和跟踪。
本指南将以
run_notebook_on_azureml.ipynb
为例,介绍如何将 Recommenders 示例 Notebook 提交到 AzureML 计算目标,利用云平台的优势加速推荐系统开发流程。AzureML 简介
AzureML 提供了丰富的功能,包括:
准备工作
使用 AzureML 之前,需要完成以下准备工作:
azure.contrib.notebook
包。连接到 AzureML 工作区
AzureML 工作区是用于组织和协调机器学习工作流的 Azure 资源,它协调存储、数据库和计算资源,为实验、部署、推理和模型监控提供额外功能。
以下代码将获取或创建一个 AzureML 工作区,并将配置保存到
aml_config/config.json
文件中。创建或连接 Azure 机器学习计算资源
Azure 机器学习计算是一种托管计算基础设施,允许用户轻松创建单节点到多节点的计算资源。
以下代码将创建一个 CPU 集群作为远程计算目标。
提交 Notebook
以下代码将
sar_movielens.ipynb
Notebook 提交到 AzureML 计算目标。监控运行进度
可以使用 Jupyter 小部件监控运行进度。小部件会每隔 10-15 秒提供一次实时更新,直到作业完成。
查看指标
运行完成后,可以使用
run.get_metrics()
查看记录的指标。释放计算资源
为避免不必要的费用,请确保在使用后释放创建的计算目标。
总结
通过将 Recommenders 示例 Notebook 提交到 AzureML 云平台,可以充分利用云计算的优势,加速推荐系统开发流程。AzureML 提供了丰富的功能和灵活的配置选项,可以满足不同规模和需求的推荐系统开发。