Поделиться через


Выполнение рабочих нагрузок Машинного обучения Azure с помощью автоматизированного машинного обучения в Apache Spark в HDInsight

Машинное обучение Azure упрощает и ускоряет создание, обучение и развертывание моделей машинного обучения. В автоматизированном машинном обучении (AutoML) вы начинаете с обучающих данных, имеющих определенную целевую функцию. Итерации с помощью сочетаний алгоритмов и выборов признаков автоматически выбирают лучшую модель для данных на основе показателей обучения. HDInsight позволяет клиентам подготавливать к работе кластеры с сотнями узлов. Автоматизированное машинное обучение, запущенное в Spark в кластере HDInsight, позволяет пользователям использовать ресурсы вычислений на этих узлах для выполнения заданий обучения в режиме горизонтального увеличения масштаба и выполнять несколько заданий обучения параллельно. Он позволяет пользователям запускать эксперименты AutoML при совместном использовании вычислительных ресурсов с другими рабочими нагрузками больших данных.

Установка Машинного обучения Azure в кластере HDInsight

Общие сведения об использовании автоматизированного машинного обучения см. в учебнике Создание регрессионной модели с помощью автоматизированного машинного обучения. Все новые кластеры HDInsight-Spark поставляются с предварительно установленным пакетом SDK AzureML-AutoML.

Примечание.

Пакеты Машинного обучения Azure устанавливаются в среду conda Python3. Установленное приложение Jupyter Notebook должно выполняться с помощью ядра PySpark3.

Чтобы работать с AutoML, вы также можете использовать записные книжки Zeppelin.

Аутентификация для рабочей области

Для создания рабочей области и отправки эксперимента требуется маркер аутентификации. Этот маркер можно создать с помощью приложения Microsoft Entra. Пользователь Microsoft Entra также может использоваться для создания необходимого маркера проверки подлинности, если многофакторная проверка подлинности не включена в учетной записи.

В следующем фрагменте кода создается маркер проверки подлинности с помощью приложения Microsoft Entra.

from azureml.core.authentication import ServicePrincipalAuthentication
auth_sp = ServicePrincipalAuthentication(
    tenant_id='<Azure Tenant ID>',
    service_principal_id='<Azure AD Application ID>',
    service_principal_password='<Azure AD Application Key>'
)

В следующем фрагменте кода создается маркер проверки подлинности с помощью пользователя Microsoft Entra.

from azure.common.credentials import UserPassCredentials
credentials = UserPassCredentials('user@domain.com', 'my_smart_password')

Загрузка набора данных

Автоматическое машинное обучение в Spark использует потоки данных, которые являются неизменяемыми операциями с данными с отложенным вычислением. Поток данных может загрузить набор данных из большого двоичного объекта с общедоступным доступом на чтение или с URL-адреса большого двоичного объекта с маркером SAS.

import azureml.dataprep as dprep

dataflow_public = dprep.read_csv(
    path='https://commonartifacts.blob.core.windows.net/automl/UCI_Adult_train.csv')

dataflow_with_token = dprep.read_csv(
    path='https://dpreptestfiles.blob.core.windows.net/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')

Вы также можете зарегистрировать хранилище данных в рабочей области с использованием однократной регистрации.

Отправка эксперимента

В конфигурации автоматического машинного обучения пакету необходимо задать свойство spark_context для выполнения в распределенном режиме. Свойство concurrent_iterations, которое является максимальным числом параллельно выполняемых итераций, должно быть меньше количества ядер исполнителя для приложения Spark.

Следующие шаги