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


Отладка заданий и мониторинг хода обучения

Обучение модели машинного обучения — это итеративный процесс и требует значительных экспериментов. Благодаря интерактивному заданию Машинное обучение Azure специалисты по обработке и анализу данных могут использовать пакет SDK для Python Машинное обучение Azure, Машинное обучение Azure CLI или Azure Studio для доступа к контейнеру, где выполняется их задание. После доступа к контейнеру заданий пользователи могут выполнять итерацию по сценариям обучения, отслеживать ход обучения или удаленно выполнять отладку задания, как правило, на локальных компьютерах. Задания можно взаимодействовать с различными учебными приложениями, включая JupyterLab, TensorBoard, VS Code или подключаясь к контейнеру заданий непосредственно через SSH.

Интерактивное обучение поддерживается в Машинное обучение Azure вычислительных кластерах и кластере Kubernetes с поддержкой Azure Arc.

Необходимые компоненты

  • Ознакомьтесь с учебным курсом по Машинное обучение Azure.
  • Дополнительные сведения см. в этой ссылке для VS Code, чтобы настроить расширение Машинное обучение Azure.
  • Убедитесь, что в вашей среде openssh-server задания установлены и ipykernel ~=6.0 пакеты (все Машинное обучение Azure курируемые учебные среды имеют эти пакеты по умолчанию).
  • Интерактивные приложения не могут быть включены в распределенных обучающих запусках, где тип распространения отличается от PyTorch, TensorFlow или MPI. Настраиваемая настройка распределенного обучения (настройка обучения с несколькими узлами без использования указанных выше платформ распространения) в настоящее время не поддерживается.
  • Чтобы использовать SSH, вам нужна пара ключей SSH. С помощью ssh-keygen -f "<filepath>" команды можно создать пару открытого и закрытого ключей.

Взаимодействие с контейнером заданий

Указав интерактивные приложения при создании задания, вы можете подключиться непосредственно к контейнеру на вычислительном узле, где выполняется задание. Получив доступ к контейнеру заданий, можно протестировать или отладить задание в той же среде, где она будет выполняться. Вы также можете использовать VS Code для подключения к выполняемой процедуре и отладке, как и локально.

Включение во время отправки задания

  1. Создайте задание на левой панели навигации на портале студии.

  2. Выберите вычислительный кластер или подключенные вычисления (Kubernetes) в качестве типа вычислений, выберите целевой объект вычислений и укажите, сколько узлов требуется.Instance count

Снимок экрана: выбор расположения вычислений для задания.

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

  2. На шаге скрипта обучения добавьте код обучения (и входные и выходные данные) и сослаться на него в команде, чтобы убедиться, что он подключен к заданию.

Снимок экрана: просмотр черновика задания и завершение создания.

В конце команды можно указать sleep <specific time> время резервирования вычислительного ресурса. Следующий формат:

  • спящий режим 1s
  • спящий 1 млн
  • спящий 1 ч
  • спящий режим 1d

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

Примечание.

При использовании sleep infinityнеобходимо вручную отменить задание , чтобы отпустить вычислительный ресурс (и остановить выставление счетов).

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

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

  1. Просмотрите и создайте задание.

Подключение к конечным точкам

Чтобы взаимодействовать с запущенным заданием, нажмите кнопку Отладка и мониторинг на странице сведений о задании.

Снимок экрана: расположение интерактивных заданий отладки и мониторинга.

Щелкнув приложения на панели, откроется новая вкладка для приложений. Доступ к приложениям можно получить только в том случае, если они находятся в состоянии "Выполнение ", и доступ к приложениям разрешен только владельцу задания. Если вы обучаете на нескольких узлах, можно выбрать конкретный узел, с которым вы хотите взаимодействовать.

Снимок экрана: сведения о интерактивных заданиях справа на панели. Содержимое информации зависит от данных пользователя.

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

Взаимодействие с приложениями

При выборе конечных точек для взаимодействия при задании вы перейдете в контейнер пользователя в рабочем каталоге, где можно получить доступ к коду, входным данным, выходным данным и журналам. При возникновении проблем при подключении к приложениям интерактивные возможности и журналы приложений можно найти на вкладке "Выходные данные и журналы" system_logs-interactive_capability>.

Снимок экрана: расположение панели интерактивных журналов интерактивных заданий.

  • Вы можете открыть терминал из Jupyter Lab и начать взаимодействие в контейнере заданий. Вы также можете напрямую итерировать сценарий обучения с помощью Jupyter Lab.

    Снимок экрана: панель содержимого лаборатории Jupyter для интерактивных заданий.

  • Вы также можете взаимодействовать с контейнером заданий в VS Code. Чтобы подключить отладчик к заданию во время отправки задания и приостановить выполнение, перейдите здесь.

    Примечание.

    Рабочие области с поддержкой приватного канала в настоящее время не поддерживаются при взаимодействии с контейнером заданий с VS Code.

    Снимок экрана: панель интерактивных заданий VS Code при первом открытии. В этом примере файла Python, созданного для печати двух строк.

  • Если вы зарегистрировали события tensorflow для задания, вы можете использовать TensorBoard для отслеживания метрик при выполнении задания.

    Снимок экрана: панель тензорборда интерактивных заданий при первом открытии. Эта информация зависит от данных клиента

Завершение задания

После завершения интерактивного обучения вы также можете перейти на страницу сведений о задании, чтобы отменить задание, которое выпустит вычислительный ресурс. Кроме того, используйте az ml job cancel -n <your job name> интерфейс командной строки или ml_client.job.cancel("<job name>") пакет SDK.

Снимок экрана: параметр интерактивного задания отмены задания и его расположение для выбора пользователя

Присоединение отладчика к заданию

Чтобы отправить задание с присоединенным отладчиком и приостановленным выполнением, можно использовать debugpy и VS Code (debugpy необходимо установить в среде задания).

Примечание.

Рабочие области с поддержкой приватного канала в настоящее время не поддерживаются при присоединении отладчика к заданию в VS Code.

  1. Во время отправки задания (через пользовательский интерфейс, ИНТЕРФЕЙС командной строки или пакет SDK) используйте команду debugpy для запуска скрипта Python. Например, на следующем снимке экрана показан пример команды, которая использует debugpy для подключения отладчика для скрипта tensorflow (tfevents.py можно заменить именем скрипта обучения).

Снимок экрана: настройка интерактивных заданий отладки

  1. После отправки задания подключитесь к VS Code и выберите встроенный отладчик.

    Снимок экрана: расположение интерактивных заданий открытого отладчика на левой боковой панели

  2. Используйте конфигурацию отладки "Удаленное подключение", чтобы подключиться к отправленной задаче и передать путь и порт, настроенный в команде отправки задания. Эти сведения также можно найти на странице сведений о задании.

    Снимок экрана: выполненные интерактивные задания

    Снимок экрана: интерактивные задания, добавляющий кнопку удаленного подключения

  3. Задайте точки останова и просмотрите выполнение задания, как и в локальном рабочем процессе отладки.

    Снимок экрана: расположение примера точки останова, установленной в редакторе Visual Studio Code

Примечание.

Если вы используете debugpy для запуска задания, задание не будет выполняться, если вы не присоедините отладчик в VS Code и выполните скрипт. Если это не сделано, вычислительные ресурсы будут зарезервированы, пока задание не будет отменено.

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