Отладка заданий и мониторинг хода обучения
Обучение модели машинного обучения — это итеративный процесс и требует значительных экспериментов. Благодаря интерактивному заданию Машинное обучение 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 для подключения к выполняемой процедуре и отладке, как и локально.
Включение во время отправки задания
Создайте задание на левой панели навигации на портале студии.
Выберите вычислительный кластер или подключенные вычисления (Kubernetes) в качестве типа вычислений, выберите целевой объект вычислений и укажите, сколько узлов требуется.
Instance count
Следуйте указаниям мастера, чтобы выбрать среду, которую вы хотите запустить задание.
На шаге скрипта обучения добавьте код обучения (и входные и выходные данные) и сослаться на него в команде, чтобы убедиться, что он подключен к заданию.
В конце команды можно указать sleep <specific time>
время резервирования вычислительного ресурса. Следующий формат:
- спящий режим 1s
- спящий 1 млн
- спящий 1 ч
- спящий режим 1d
Вы также можете использовать sleep infinity
команду, которая будет поддерживать задание на неопределенный срок.
Примечание.
При использовании sleep infinity
необходимо вручную отменить задание , чтобы отпустить вычислительный ресурс (и остановить выставление счетов).
- В параметрах вычислений разверните параметр для приложений обучения. Выберите хотя бы одно учебное приложение, которое вы хотите использовать для взаимодействия с заданием. Если вы не выберете приложение, функция отладки не будет доступна.
- Просмотрите и создайте задание.
Подключение к конечным точкам
Чтобы взаимодействовать с запущенным заданием, нажмите кнопку Отладка и мониторинг на странице сведений о задании.
Щелкнув приложения на панели, откроется новая вкладка для приложений. Доступ к приложениям можно получить только в том случае, если они находятся в состоянии "Выполнение ", и доступ к приложениям разрешен только владельцу задания. Если вы обучаете на нескольких узлах, можно выбрать конкретный узел, с которым вы хотите взаимодействовать.
Для запуска задания и учебных приложений, указанных во время создания задания, может потребоваться несколько минут.
Взаимодействие с приложениями
При выборе конечных точек для взаимодействия при задании вы перейдете в контейнер пользователя в рабочем каталоге, где можно получить доступ к коду, входным данным, выходным данным и журналам. При возникновении проблем при подключении к приложениям интерактивные возможности и журналы приложений можно найти на вкладке "Выходные данные и журналы" system_logs-interactive_capability>.
Вы можете открыть терминал из Jupyter Lab и начать взаимодействие в контейнере заданий. Вы также можете напрямую итерировать сценарий обучения с помощью Jupyter Lab.
Вы также можете взаимодействовать с контейнером заданий в VS Code. Чтобы подключить отладчик к заданию во время отправки задания и приостановить выполнение, перейдите здесь.
Примечание.
Рабочие области с поддержкой приватного канала в настоящее время не поддерживаются при взаимодействии с контейнером заданий с VS Code.
Если вы зарегистрировали события tensorflow для задания, вы можете использовать TensorBoard для отслеживания метрик при выполнении задания.
Завершение задания
После завершения интерактивного обучения вы также можете перейти на страницу сведений о задании, чтобы отменить задание, которое выпустит вычислительный ресурс. Кроме того, используйте az ml job cancel -n <your job name>
интерфейс командной строки или ml_client.job.cancel("<job name>")
пакет SDK.
Присоединение отладчика к заданию
Чтобы отправить задание с присоединенным отладчиком и приостановленным выполнением, можно использовать debugpy и VS Code (debugpy
необходимо установить в среде задания).
Примечание.
Рабочие области с поддержкой приватного канала в настоящее время не поддерживаются при присоединении отладчика к заданию в VS Code.
- Во время отправки задания (через пользовательский интерфейс, ИНТЕРФЕЙС командной строки или пакет SDK) используйте команду debugpy для запуска скрипта Python. Например, на следующем снимке экрана показан пример команды, которая использует debugpy для подключения отладчика для скрипта tensorflow (
tfevents.py
можно заменить именем скрипта обучения).
После отправки задания подключитесь к VS Code и выберите встроенный отладчик.
Используйте конфигурацию отладки "Удаленное подключение", чтобы подключиться к отправленной задаче и передать путь и порт, настроенный в команде отправки задания. Эти сведения также можно найти на странице сведений о задании.
Задайте точки останова и просмотрите выполнение задания, как и в локальном рабочем процессе отладки.
Примечание.
Если вы используете debugpy для запуска задания, задание не будет выполняться, если вы не присоедините отладчик в VS Code и выполните скрипт. Если это не сделано, вычислительные ресурсы будут зарезервированы, пока задание не будет отменено.
Следующие шаги
- Узнайте больше о том, как и где можно развернуть модель.