Настройка среды разработки Python для Машинного обучения Azure

Сведения о настройке среды разработки Python для Машинного обучения Azure.

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

Среда Плюсы Минусы
Локальная среда Полный контроль над средой разработки и зависимостями. Запуск с использованием любого инструмента сборки, среды или интегрированной среды разработки. Чтобы начать работу, требуется больше времени. Должны быть установлены необходимые пакеты SDK, а также среда, если у вас ее нет.
Виртуальная машина для обработки и анализа данных (DSVM). Аналогично облачному вычислительному экземпляру (Python и пакет SDK уже установлены), но с предварительно установленными дополнительными популярными средствами обработки и анализа данных и машинного обучения. Простота масштабирования и объединения с другими пользовательскими инструментами и рабочими процессами. Начало работы занимает больше времени по сравнению с облачным вычислительным экземпляром.
Вычислительная операция Машинного обучения Azure Самый простой способ начать работу. В виртуальной машине рабочей области уже установлен весь пакет SDK, а учебные материалы для записных книжек уже скопированы и готовы к работе. Отсутствие контроля над средой разработки и зависимостями. Дополнительные затраты на виртуальную машину Linux (виртуальную машину можно остановить, когда она не используется, чтобы избежать расходов). См. сведения о ценах.
Azure Databricks Идеальный вариант для выполнения крупномасштабных ресурсоемких рабочих процессов машинного обучения на масштабируемой платформе Apache Spark. Слишком мощное решение для экспериментов с машинным обучением, а также экспериментов и рабочих процессов меньшего масштаба. Дополнительные затраты на Azure Databricks. См. сведения о ценах.

Эта статья также содержит дополнительные советы по использованию перечисленных ниже инструментов и средств.

  • Jupyter Notebook: если вы уже используете приложения Jupyter Notebook, вам нужно установить некоторые вспомогательные элементы, которые содержит пакет SDK.

  • Visual Studio Code: расширение Машинного обучения Azure для VS Code обеспечивает расширенную языковую поддержку для Python, а также содержит функции, позволяющие работать с Машинным обучением Azure гораздо удобнее и продуктивнее.

Предварительные требования

Только для локальной среды и DSVM: создайте файл конфигурации рабочей области

Файл конфигурации рабочей области — это JSON-файл, который используется пакетом SDK для обмена данными с рабочей областью Машинного обучения Azure. В этого файла config.json следующий формат:

{
    "subscription_id": "<subscription-id>",
    "resource_group": "<resource-group>",
    "workspace_name": "<workspace-name>"
}

Этот JSON-файл должен находиться в структуре каталогов, которые содержат сценарии Python или приложения Jupyter Notebook. Он может находиться в том же каталоге, подкаталоге с именем .azureml или родительском каталоге.

Чтобы использовать этот файл в коде, задействуйте метод Workspace.from_config. Этот код загружает данные из файла и подключается к рабочей области.

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

  • Портал Azure

    Скачайте файл: на портале Azure выберите Скачать config.json в разделе Обзор рабочей области.

    Портал Azure

  • Пакет SDK Python для Машинного обучения Azure

    Создайте скрипт для подключения к рабочей области Машинного обучения Azure, используйте метод write_config для создания файла и сохраните его как .azureml/config.json. Замените subscription_id, resource_group и workspace_name собственными значениями.

    from azureml.core import Workspace
    
    subscription_id = '<subscription-id>'
    resource_group  = '<resource-group>'
    workspace_name  = '<workspace-name>'
    
    try:
        ws = Workspace(subscription_id = subscription_id, resource_group = resource_group, workspace_name = workspace_name)
        ws.write_config()
        print('Library configuration succeeded')
    except:
        print('Workspace not found')
    

Локальный компьютер или удаленная среда виртуальной машины

Вы можете настроить среду на локальном компьютере или на удаленной виртуальной машине, например на вычислительном экземпляре Машинного обучения Azure или Виртуальной машине для обработки и анализа данных.

Чтобы настроить локальную среду разработки или удаленную виртуальную машину, выполните указанные ниже действия.

  1. Создайте виртуальную среду Python (virtualenv, conda).

    Примечание

    Хотя это и не является обязательным требованием, для управления виртуальными средами Python и установки пакетов рекомендуется использовать Anaconda или Miniconda.

    Важно!

    Если в Linux или macOS вы используете оболочку, отличающуюся от bash (например, zsh), при выполнении некоторых команд могут возникнуть ошибки. Чтобы решить эту проблему, используйте команду bash, чтобы запустить bash и выполните там нужные команды.

  2. Активируйте созданную виртуальную среду Python.

  3. Установите пакет SDK Python для Машинного обучения Azure.

  4. Чтобы настроить локальную среду для использования рабочей области Машинного обучения Azure, создайте новый файл конфигурации рабочей области или используйте существующий.

Теперь, когда локальная среда настроена, можно приступать к работе с Машинным обучением Azure. Сведения о том, как приступить к работе, см. в руководстве по началу работы с Машинным обучением Azure на Python.

Jupyter Notebook

При запуске локального сервера Jupyter Notebook рекомендуется создать ядро IPython для виртуальной среды Python. Это помогает добиться требуемых эффектов при импорте ядра и пакета.

  1. Включение ядер IPython для конкретной среды

    conda install notebook ipykernel
    
  2. Создайте ядро для своей виртуальной среды Python. Не забудьте заменить <myenv> именем своей виртуальной среды Python.

    ipython kernel install --user --name <myenv> --display-name "Python (myenv)"
    
  3. Запуск сервера Jupyter Notebook

Чтобы начать работу с Машинным обучением Azure и Jupyter Notebooks, ознакомьтесь с репозиторием записных книжек для Машинного обучения Azure.

Примечание

Репозиторий примеров, поддерживаемый сообществом, можно найти здесь: https://github.com/Azure/azureml-examples.

Visual Studio Code

Чтобы использовать для разработки Visual Studio Code, выполните указанные ниже действия.

  1. Установите Visual Studio Code.
  2. Установите расширение Машинного обучения Azure для Visual Studio Code (предварительная версия).

После установки расширения Visual Studio Code используйте его для выполнения следующих задач:

Вычислительная операция Машинного обучения Azure

Вычислительный экземпляр Машинного обучения Azure — это защищенная облачная рабочая станция Azure, которая предоставляет специалистам по обработке и анализу данных сервер Jupyter Notebook, JupyterLab и полностью управляемую среду машинного обучения.

Для вычислительного экземпляра не требуется ничего устанавливать или настраивать.

Вы можете в любой момент создать его в рабочей области Машинного обучения Azure. Просто укажите имя и тип виртуальной машины Azure. Воспользуйтесь для этого руководством по настройке среды и рабочей области.

Дополнительные сведения о вычислительных экземплярах, включая установку пакетов, см. в статье Создание вычислительного экземпляра Машинного обучения Azure и управление им.

Совет

Чтобы избежать расходов на неиспользуемые вычислительные экземпляры, прерывайте их работу.

Помимо сервера Jupyter Notebook и JupyterLab, вычислительные экземпляры можно использовать в интегрированных записных книжках в Студии машинного обучения Azure.

Вы также можете использовать расширение Машинного обучения Azure для Visual Studio Code для подключения к удаленному вычислительному экземпляру из VS Code.

Виртуальная машина для обработки и анализа данных

Виртуальная машина для обработки и анализа данных — это настраиваемый образ виртуальной машины, который можно использовать в качестве среды разработки. Он предназначен для обработки и анализа данных, и на нем предварительно настроены следующие инструменты и программные продукты:

  • пакеты TensorFlow, PyTorch, Scikit-learn, XGBoost и пакет SDK для Машинного обучения Azure;
  • популярные инструменты для обработки и анализа данных, в том числе изолированная среда Spark и Drill;
  • инструменты Azure, такие как интерфейс командной строки Azure, AzCopy и Обозреватель службы хранилища;
  • интегрированные среды разработки, например Visual Studio Code и PyCharm;
  • Сервер Jupyter Notebook.

Более полный список средств см. в руководстве по работе с виртуальными машинами для обработки и анализа данных.

Важно!

Если вы планируете использовать виртуальную машину для обработки и анализа данных в качестве целевого объекта вычислений для задач обучения или вывода, поддерживается только Ubuntu.

Чтобы использовать DSVM в качестве среды разработки, выполните указанные ниже действия.

  1. Создайте DSVM одним из следующих способов:

    • Используйте портал Azure, чтобы создать DSVM на базе Ubuntu или Windows.

    • Создайте виртуальную машину для обработки и анализа данных с помощью шаблонов ARM.

    • Использование командной строки Azure CLI

      Чтобы создать DSVM на платформе Ubuntu, воспользуйтесь следующей командой:

      # create a Ubuntu Data Science VM in your resource group
      # note you need to be at least a contributor to the resource group in order to execute this command successfully
      # If you need to create a new resource group use: "az group create --name YOUR-RESOURCE-GROUP-NAME --location YOUR-REGION (For example: westus2)"
      az vm create --resource-group YOUR-RESOURCE-GROUP-NAME --name YOUR-VM-NAME --image microsoft-dsvm:linux-data-science-vm-ubuntu:linuxdsvmubuntu:latest --admin-username YOUR-USERNAME --admin-password YOUR-PASSWORD --generate-ssh-keys --authentication-type password
      

      Чтобы создать DSVM на платформе Windows, воспользуйтесь следующей командой:

      # create a Windows Server 2016 DSVM in your resource group
      # note you need to be at least a contributor to the resource group in order to execute this command successfully
      az vm create --resource-group YOUR-RESOURCE-GROUP-NAME --name YOUR-VM-NAME --image microsoft-dsvm:dsvm-windows:server-2016:latest --admin-username YOUR-USERNAME --admin-password YOUR-PASSWORD --authentication-type password
      
  2. Активируйте среду conda, содержащую пакет SDK для Машинного обучения Azure.

    • Для DSVM на базе Ubuntu:

      conda activate py36
      
    • Для DSVM на базе Windows:

      conda activate AzureML
      
  3. Чтобы настроить DSVM для использования рабочей области Машинного обучения Azure, создайте новый файл конфигурации рабочей области или используйте существующий.

Как и в случае с локальными средами, для взаимодействия со службой Машинного обучения Azure можно использовать Visual Studio Code и расширение Машинного обучения Azure для Visual Studio Code.

Дополнительные сведения о Виртуальных машинах для обработки и анализа данных см. здесь.

Дальнейшие действия