Azure Machine Learning简化了和加速machine learning模型的生成、训练和部署。 在自动化机器学习(AutoML)中,从具有已定义目标特征的训练数据开始。 以迭代方式将算法和特征选择组合在一起,以便根据训练分数自动为数据选择最佳模型。 HDInsight 允许客户预配具有数百个节点的群集。 使用在 HDInsight 群集中的 Spark 上运行的 AutoML,用户可以利用这些节点上的计算容量,以横向扩展的方式运行训练作业,以及并行运行多个训练作业。 这样,用户便可以运行 AutoML 试验,同时将计算与其他大数据工作负载共享。
在 HDInsight 群集上安装Azure Machine Learning
有关自动化machine learning的一般教程,请参阅 Tutorial:使用自动化machine learning生成回归模型。 所有新的 HDInsight-Spark 群集都预装了 AzureML-AutoML SDK。
注意事项
Azure Machine Learning包安装到 Python3 conda 环境中。 应使用 PySpark3 内核运行已安装的Jupyter Notebook。
你也可以通过 Zeppelin 笔记本来使用 AutoML。
工作区身份验证
创建工作区和提交试验需要使用身份验证令牌。 可以使用 Microsoft Entra 应用程序生成此令牌。 如果帐户上未启用多重身份验证,还可以使用 Microsoft Entra 用户生成所需的身份验证令牌。
以下代码片段使用 Microsoft Entra 应用程序创建身份验证令牌。
from azureml.core.authentication import ServicePrincipalAuthentication
auth_sp = ServicePrincipalAuthentication(
tenant_id='<Azure Tenant ID>',
service_principal_id='<Microsoft Entra ID Application ID>',
service_principal_password='<Microsoft Entra ID Application Key>'
)
以下代码片段使用 Microsoft Entra 用户创建身份验证令牌。
from azure.common.credentials import UserPassCredentials
credentials = UserPassCredentials('user@domain.com', 'my_smart_password')
加载数据集
Spark 上的自动化机器学习使用 Dataflows,它们是对数据进行延迟计算的不可变操作。 数据流可以从具有公共读取访问权限的 Blob 或带有 SAS 令牌的 Blob URL 加载数据集。
import azureml.dataprep as dprep
dataflow_public = dprep.read_csv(
path='https://commonartifacts.blob.core.chinacloudapi.cn/automl/UCI_Adult_train.csv')
dataflow_with_token = dprep.read_csv(
path='https://dpreptestfiles.blob.core.chinacloudapi.cn/testfiles/read_csv_duplicate_headers.csv?st=2018-06-15T23%3A01%3A42Z&se=2019-06-16T23%3A01%3A00Z&sp=r&sv=2017-04-17&sr=b&sig=ugQQCmeC2eBamm6ynM7wnI%2BI3TTDTM6z9RPKj4a%2FU6g%3D')
还可以通过一次注册将数据存储注册到工作区。
试验提交
在自动machine learning配置中,应设置属性 spark_context,以便包在分布式模式下运行。 属性 concurrent_iterations 表示并行执行的最大迭代数,应设置为小于 Spark 应用的执行器核心数。
后续步骤
- 有关使用 Azure 机器学习中的自动机器学习功能的详细信息,请参阅 Azure 机器学习中的新自动化机器学习功能。
- 来自 Microsoft Research 的 AutoML project