Выполнение рабочих нагрузок Машинного обучения Azure с помощью автоматизированного машинного обучения в Apache Spark в HDInsight
Машинное обучение Azure упрощает и ускоряет создание, обучение и развертывание моделей машинного обучения. В автоматизированном машинном обучении (AutoML) вы начинаете с обучающих данных, имеющих определенную целевую функцию. Итерации с помощью сочетаний алгоритмов и выборов признаков автоматически выбирают лучшую модель для данных на основе показателей обучения. HDInsight позволяет клиентам подготавливать к работе кластеры с сотнями узлов. AutoML, работающий в 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.
Следующие шаги
- Дополнительные сведения об использовании возможностей автоматизированного машинного обучения Машинное обучение Azure см. в статье "Новые возможности автоматизированного машинного обучения" в Машинное обучение Azure
- Проект AutoML от Microsoft Research