Начало работы с интерактивным обучением (предварительная версия) в Microsoft Foundry

Important

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

Important

Для интерактивного обучения требуется явное разрешение на доступ. Запросите доступ через форму предварительной регистрации и дождитесь утверждения перед созданием обучающего сеанса.

В этом кратком руководстве вы клонируете репозиторий примеров и запустите рецепт обучения с подкреплением (RL) на задачах GSM8K по математике. Рецепт создает ответы, оценивает их правильность и обновляет адаптер низкоранговой адаптации (LoRA) для Qwen3.8-27B в Microsoft Foundry.

Вы запускаете драйвер Python локально; Foundry выполняет операции модели. Этот короткий запуск проверяет, что обучение, оценка и сохранение контрольных точек работают. Это не бенчмарк качества модели, и вам не нужен локальный GPU.

Если у вас нет подписки Azure, создайте бесплатную учетную запись.

Prerequisites

  • Проект Foundry с утвержденным предварительным доступом к интерактивному обучению и вместимостью для Qwen/Qwen3.8-27B. Проверьте поддерживаемые модели и регионы.
  • Роль "Пользователь Foundry " для обучения или роль владельца Foundry , если вы также развертываете дообученную модель. См. сведения об управлении доступом на основе ролей для Microsoft Foundry.
  • Python 3.11 или более поздней версии, Git и локальный каталог, доступный для записи.
  • Используйте Azure CLI для команды входа ниже.
  • Сетевой доступ для скачивания пакетов Python, общедоступного набора данных и токенизатора модели.
  • Утвержденный бюджет для загрузки модели, обучения, сэмплирования и оценки.

Клонируйте репозиторий с примерами

Клонируйте microsoft-foundry/fine-tuning и откройте его руководство по интерактивному обучению:

git clone https://github.com/microsoft-foundry/fine-tuning.git
cd fine-tuning/interactive_training

Сохраните этот каталог открытым для оставшихся команд. Он содержит pyproject.toml поваренной книги и пакет Python.

Установка сборника рецептов

Создайте виртуальную среду и установите cookbook. Команды Linux и Windows используют индекс пакета cpu Torch для зависимостей на стороне драйвера.

python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e . \
    --index-url https://pypi.org/simple \
    --extra-index-url https://download.pytorch.org/whl/cpu

Ссылка: Установка Cookbook.

Проверьте установку без создания удаленного сеанса:

python -m pip check
python -m interactive_training.recipes.math_rl.train_azure --help

Не ожидайте неработающих зависимостей и справку по рецептам, в которой перечислены project_endpoint, max_steps и max_train_examples.

Настройте проект и войдите в систему

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

az login
az account set --subscription "<subscription-id>"

Справочник. Вход с помощью Azure CLI.

Скопируйте эндпоинт проекта из вашего проекта Foundry. Используйте URL-адрес проекта, а не URL-адрес развертывания модели или только имя узла учетной записи. Замените <project> и <account> значениями вашего проекта:

export AZURE_AI_PROJECT_ENDPOINT=\
"https://<account>.services.ai.azure.com/api/projects/<project>"

Рецепт по умолчанию использует DefaultAzureCredential, если не задано AZURE_AI_API_KEY. Другие настроенные учетные данные можно выбрать перед учетными данными CLI. Если задана переменная key, она имеет приоритет над входом через Azure CLI.

Запустите рецепт

Запустите рецепт GSM8K с двумя итерациями обучения, 16 примерами обучения и восемью отложенными примерами оценки. Рецепт создает сеанс, выбирает ответы, вычисляет вознаграждения, обновляет адаптер и сохраняет контрольные точки.

Warning

Эта команда создает сеанс удаленного обучения и может повлечь расходы. max_steps=2 ограничивает количество обучающих итераций, а не время загрузки модели, вызовы оценки, общее количество токенов или затраты. Продолжайте работу только при наличии утвержденного бюджета.

python -m interactive_training.recipes.math_rl.train_azure \
    project_endpoint="$AZURE_AI_PROJECT_ENDPOINT" \
    model_name="Qwen/Qwen3.8-27B" renderer_name=qwen3_8_low_reasoning \
    env=gsm8k learning_rate=2e-5 temperature=1.0 max_tokens=1200 \
    lora_rank=32 group_size=4 groups_per_batch=8 \
    loss_fn=importance_sampling seed=42 \
    max_steps=2 max_train_examples=16 max_test_examples=8 \
    eval_every=1 save_every=1 \
    log_path=./runs/first-math-check behavior_if_log_dir_exists=raise

Ссылка: Краткое руководство по шаблону Math RL.

Шаблон использует аргументы key=value, а не --key value. Оставьте терминал и сетевое подключение открытыми до завершения выполнения.

Каждая итерация использует восемь запросов с четырьмя ответами на запрос. max_tokens=1200 предоставляет бюджет завершения для рассуждений и окончательного ответа; ответы по-прежнему могут быть усечены.

Результаты помещаются в каталог first-math-check в разделе runs. Команда не перезаписывает существующий каталог. Выберите новое значение log_path для другого независимого запуска; не удаляйте результаты, чтобы обойти ошибку.

Проверьте, что выполнено успешно

Посмотрите в ./runs/first-math-check/, относительно каталога cookbook:

Этап Evidence Что это доказывает
Настройка лаунчера run_meta.json записывается; идентификатор сеанса может изначально иметь значение null. Запускается локальная настройка, а не после того, как Azure подтвердит сеанс.
Модель загружена Консоль Session ready: session_id=...; azure.session_id обновлена. Создание сеанса завершено.
Цикл запущен config.json, metrics.jsonl, метрики обучения и HTML траектории. Выполняются операции выборки, классификации и обновления.
Сохранённое состояние checkpoints.jsonl сохранил(а) state_path/sampler_path записи. Операции сохранения завершены; не полагайтесь на имя контрольной точки, напечатанное до завершения сохранения.
Нормальное завершение final строка журнала после обученных батчей, итоговые метрики на отложенной выборке и успешное завершение процесса. bounded workflow завершается; проверьте предупреждения и проверьте очистку отдельно.

Для этого нового синхронного запуска GSM8K начальная оценка выполняется до первого обновления; Окончательная оценка следует окончательному сохранению. Проверьте test/env/all/correct и test/env/all/total_episodes; проверка любых предупреждения о пропущенной оценке. Нулевая оценка может быть следствием реального сбоя форматирования или исчерпания лимита токенов даже при работе инфраструктуры. Отсутствие метрик — это не нулевая оценка.

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

Просмотрите локальные артефакты:

python dashboard_server.py --root ./runs
# Open http://127.0.0.1:8000/

Ссылка: Запустить панель мониторинга.

Оставьте панель мониторинга на адресе loopback по умолчанию, так как она не имеет проверки подлинности и может отображать запросы и ответы. Нажмите клавиши CTRL+C в терминале на панели управления, чтобы остановить ее; это не завершит ваш удаленный обучающий сеанс.

Очистите ресурсы

Конфигурация пытается закрыть сеанс обучения при выходе из цикла. Проверьте наличие предупреждений очистки; само по себе выведенное сообщение Session closed не подтверждает, что удаленные вычислительные ресурсы выпущены.

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

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

Попробуйте другие рецепты

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

Следуйте инструкциям по настройке и набору данных каждого сценария. Подтвердите доступ к модели и утвержденный бюджет перед началом еще одного прогона.