Настройка сред для среды разработки и рабочей среды
В DevOps среда ссылается на коллекцию ресурсов. Эти ресурсы используются для развертывания приложения или проектов машинного обучения для развертывания модели.
Использование сред для непрерывной поставки
Количество сред, с которыми вы работаете, определяется вашей организацией. Как правило, существует по крайней мере две среды: разработка или dev и рабочая среда или prod. Кроме того, между ними можно добавлять другие среды, например промежуточную или предварительную (pre-prod) среду.
Стандартный подход при непрерывной поставке:
- Экспериментируйте с обучением модели в среде разработки.
- Переместите лучшую модель в промежуточную или предварительную среду для развертывания и тестирования этой модели.
- Наконец, переместите модель в рабочую среду для развертывания модели, чтобы конечные пользователи могли использовать ее.
Примечание.
В этом модуле рассмотрим интерпретацию сред DevOps. Обратите внимание, что в Машинном обучение Azure также используются среды терминов для описания коллекции пакетов Python, необходимых для выполнения скрипта. Эти две концепции сред не зависят друг от друга. Дополнительные сведения о средах Машинного обучения Azure.
Организация сред Машинного обучения Azure
При реализации MLOps и масштабном использовании моделей машинного обучения рекомендуется работать в отдельных средах на разных этапах.
Образы, которые ваша команда использует в среде разработки, предварительной подготовки и в рабочей среде. Необязательно все члены вашей команды могут иметь доступ ко всем средам. Специалисты по обработке и анализу данных могут работать только в среде разработки и не использовать данные рабочей среды, а инженеры по машинному обучению могут развертывать модели в предварительной и рабочей средах и использовать данные рабочей среды.
Наличие отдельных сред упрощает управление доступом к ресурсам. Затем каждую среду можно связать с отдельной рабочей областью Машинного обучения Azure.
В Azure используется управление доступом на основе ролей (RBAC) для предоставления коллегам требуемого уровня доступа к подмножеству ресурсов, с которыми они должны работать.
Кроме того, можно использовать только одну рабочую область Машинного обучения Azure. При использовании одной рабочей области для среды разработки и рабочей среды потребуется меньше ресурсов Azure и меньше затрат на управление. Однако RBAC применяется как к среде dev, так и к среде prod, что может означать, поэтому пользователям может предоставляться слишком широкий или слишком урезанный доступ к ресурсам.
Совет
Подробнее о Рекомендациях по организации ресурсов Машинного обучения Azure.
Для работы со средами на разных этапах разработки модели можно ориентироваться на среду при использовании Azure Pipeline или на рабочий процесс при использовании GitHub Actions.
Среды Azure DevOps
Для работы со средами в Azure DevOps сначала необходимо создать среды. Затем можно указать, в какой среде необходимо выполнить развертывание в Azure Pipeline.
- В Azure DevOps раскройте меню Pipelines.
- Выберите Среды.
- Создайте новую среду.
- Присвойте имя своей среде.
- Выберите Нет для ресурсов. Вы будете работать в определенной рабочей области Машинного обучения Azure в самом конвейере.
- Нажмите кнопку создания.
После создания сред в Azure DevOps и разных рабочих областей Машинного обучения Azure, связанных с каждой средой, в файле YAML Azure Pipelines можно указать, в какой среде необходимо выполнить развертывание:
trigger:
- main
stages:
- stage: deployDev
displayName: 'Deploy to development environment'
jobs:
- deployment: publishPipeline
displayName: 'Model Training'
pool:
vmImage: 'Ubuntu-18.04'
environment: dev
strategy:
runOnce:
deploy:
steps:
- template: aml-steps.yml
parameters:
serviceconnectionname: 'spn-aml-workspace-dev'
Значение в environment
YAML-файле, dev
указывающее, что модель обучена в среде разработки. Через подключение службы указывается, какую рабочую область Машинного обучения Azure нужно использовать для обучения модели.
Совет
Подробнее о создании сред и целевой среде с использованием Azure DevOps.
Среды GitHub
Чтобы использовать среды с GitHub Actions, сначала необходимо создать среду. Затем можно использовать среду в рабочем процессе.
Чтобы создать среду в репозитории GitHub (репозиторий):
- Перейдите на вкладку Параметры в репозитории.
- Выберите Среды.
- Создайте новую среду.
- Введите имя.
- Выберите Настройка среды.
Чтобы связать среду с определенной рабочей областью Машинного обучения Azure, можно создать секрет среды, чтобы предоставить доступ только этой среде к рабочей области Машинного обучения Azure.
Чтобы использовать среду в рабочем процессе, можно добавить среду, в которой необходимо выполнить развертывание, указав ее в файле YAML:
name: Train model
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
environment:
name: dev
steps:
- name: check out repo
uses: actions/checkout@v2
- name: install az ml extension
run: az extension add -n ml -y
- name: azure login
uses: azure/login@v1
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
- name: set current directory
run: cd src
- name: run pipeline
run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws
В этом примере секрет AZURE_CREDENTIALS
содержит сведения о подключении к рабочей области Машинного обучения Azure, используемого для этой среды.
Совет
Подробнее о создании и использовании среды с использованием GitHub Actions.