Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описан полный путь проекта машинного обучения (ML) — от первоначального определения рамок до вывода в промышленную эксплуатацию, а также поддержание его эффективной работы с течением времени. Код, данные и модели проходят три широких этапа: разработка, промежуточное развертывание и производство. Каждый этап имеет различные цели и требования:
- Область использования и определение успешности
- Изучение и понимание данных
- Подготовка данных и функций
- Обучайте модели и отслеживайте эксперименты
- Evaluate
- Регистрация, этапы и тестовые модели
- Развертывание в рабочей среде
- Мониторинг и переобучение
1. Область использования и определение успешности
Прежде чем что-либо создавать, согласуйте, что именно должна делать модель и как вы поймёте, что она работает.
- Что такое целевой объект прогнозирования, и какой класс проблемы машинного обучения означает: классификация, регрессия, прогнозирование, рекомендации, ранжирование, обнаружение аномалий или что-то другое?
- Какие входные данные доступны и достаточно ли для изучения целевого шаблона?
- Какие метрики определяют успех: точность, AUC, точность k или бизнес-ключевых показателей эффективности?
- Каковы требования к обслуживанию и рабочей среде: задержка, пропускная способность и свежесть данных?
- Какие заинтересованные лица должны подписаться на производственные развертывания? Каковы их требования к объяснимости?
Предыдущие требования не определяют конкретный метод машинного обучения. Вы можете начать моделирование с более простого подхода, например градиентных деревьев, и позже решите, что требуются более мощные методы глубокого обучения.
2. Изучение и понимание данных
Перед подготовкой функций или обучением модели изучите данные, чтобы понять ее структуру, качество и связь с целевым объектом прогнозирования. Разведочный анализ данных (EDA) — это процесс обобщения и визуализации набора данных, чтобы выявить распределения, корреляции, пропущенные значения и выбросы, которые влияют на последующие решения при построении моделей.
На раннем этапе определите, как убедиться, что у вас есть корректные тестовые данные, не использованные при обучении. Даже во время EDA остерегайтесь принятия решений по моделированию на основе тестовых данных.
EDA отвечает на вопросы, которые сообщают о остальной части жизненного цикла:
- Какие входные данные наиболее прогнозируют целевой объект, и какие из них недоступны во время обслуживания?
- Есть ли пропущенные значения, выбросы или асимметричные распределения, которые требуют очистки или преобразования?
- Достаточно ли большой набор данных и достаточно ли репрезентативный, чтобы узнать целевой шаблон?
Azure Databricks упрощает EDA с помощью интерактивных инструментов, инструментов для совместной работы и инструментов с поддержкой ИИ. Изучайте свои данные с помощью чата на естественном языке, пользовательских интерфейсов или кода, а также сотрудничайте благодаря совместному редактированию в реальном времени и обмену кодом через Git:
- Записные книжки предоставляют совместные пространства для изучения, визуализации и документации.
- Панели мониторинга предоставляют исследование на основе SQL и визуализации.
- Genie Chat предоставляет полностраничный интерфейс естественного языка для получения вопросов о данных.
- Genie Code может выполнять полностью автоматизированную EDA или выступать в качестве интерактивного помощника.
3. Подготовка данных и функций
С помощью понятных данных преобразуйте необработанные источники и преобразования, определенные во время EDA, в функции моделей машинного обучения. Оцените конвейеры данных для обучения и обслуживания, включая скорость, объем, свежесть и владение источниками данных. Граница между инженерией данных (подготовкой и преобразованием данных) и инженерией признаков (созданием входных признаков для моделей машинного обучения) размыта. В Azure Databricks инженерия данных и машинное обучение совместно используют один и тот же уровень платформы и управления в каталоге Unity, поэтому данные, подготовленные одной командой, могут быть доступны сразу же как функции для другого, без перемещения данных или дублированных конвейеров.
Выполните поиск существующих определений данных и функций:
- Ознакомьтесь с данными и функциями, доступными в каталоге Unity. Если в вашей организации уже используются соответствующие модели, воспользуйтесь отслеживанием происхождения данных в Unity Catalog, чтобы выявить источники данных и признаки, используемые в этих моделях.
- Поиск рабочей области поможет вам узнать, какие управляемые данные, модели или приложения уже существуют.
Создайте и управляйте новыми ресурсами по мере необходимости:
- Дополнительные сведения о средствах приема и инженерии данных см. в статье " Проектирование данных с помощью Databricks" , в том числе конструктор Lakeflow для интерфейса искусственного интеллекта без кода.
- Используйте хранилище компонентов для определения и управления функциями в качестве многократно используемых, управляемых ресурсов. Одни и те же определения признаков используются как при обучении, так и в продуктивной среде, с поддержкой пакетной и потоковой загрузки данных, а также пакетного обслуживания и обслуживания в реальном времени.
Используйте Genie Code для ускорения обнаружения и подготовки данных путем просмотра каталога Unity для обнаружения соответствующих таблиц, предложения преобразований функций и создания начального кода для приема и конвейеров функций.
4. Обучение моделей и отслеживание экспериментов
Приложения для обработки и анализа данных и машинного обучения используют множество различных подходов, каждый из которых имеет собственные требования к алгоритмам и библиотекам машинного обучения, требованиям к вычислениям и рабочим процессам. Azure Databricks предоставляет гибкие среды и вычислительные ресурсы для разных рабочих нагрузок с унифицированным отслеживанием экспериментов в MLflow.
Среды и вычислительные ресурсы
По умолчанию бессерверные вычисления используются как для интерактивных записных книжек, так и для автоматизированных заданий. Бессерверные вычисления запускаются мгновенно и автоматически масштабируются вверх и вниз в зависимости от вашей рабочей нагрузки.
Для ускорения с помощью GPU подключите GPU к бессерверной вычислительной среде и используйте среду выполнения ИИ, предварительно настроенную для обучения и инференса на GPU.
Для рабочих нагрузок ЦП и GPU можно также использовать классические вычисления с средой выполнения Databricks для Машинное обучение.
Настройте любую из предыдущих сред с помощью библиотек машинного обучения. В средах, часто настроенных для приложений машинного обучения, используйте отслеживание MLflow для записи зависимостей, проверки воспроизводимости и предотвращения отклонений в обучении.
Отслеживание MLflow
Используйте MLflow, управляемый Azure Databricks для отслеживания экспериментов и регистрации метаданных модели:
- Организуйте журналы проекта в экспериментах, с сохранёнными запусками для обучения или оценки.
- При каждом запуске регистрируйте параметры, метрики и артефакты автоматически или вручную.
- Во время эксперимента сравнивайте выполнение в пользовательском интерфейсе MLflow , чтобы найти оптимальную конфигурацию.
- Регистрируйте модели с помощью MLflow, чтобы сохранять артефакты модели с полной историей происхождения: какой набор данных, какой код и какая среда использовались для создания этой модели. Эти метаданные упрощают развертывание моделей в рабочей среде, а также аудит и устранение неполадок.
Начало работы с моделированием
Genie Code может создать полный блокнот ML на основе описания задачи прогнозирования на естественном языке, включая выбор признаков из Feature Store, обучение модели и отслеживание в MLflow.
Также см. ресурсы для настройки гиперпараметров, примеры обучения модели и Ray в Databricks.
Сведения о глубоком обучении и обучении классических моделей машинного обучения с ускорением на GPU см. в примерах ноутбуков для среды выполнения ИИ.
5. Оценка
Во время разработки определите метрики оценки качества на основе требований, определённых на этапе определения объёма работ:
- Базовые метрики могут быть общими метриками машинного обучения, такими как точность, AUC, RMSE или метрики, относящиеся к домену.
- Оценка также может включать производные метрики, такие как предвзятость и справедливость между сегментами населения, измеряемые путем сравнения базовых метрик в сегментах данных.
Определите метрики с помощью выбранной библиотеки машинного обучения или фреймворка, с помощью встроенного модуля метрик MLflow или собственной логики. Для всех метрик регистрируйте метрики в запусках MLflow, чтобы связать их с соответствующими моделями. Метрики, которые вы определяете во время разработки и обучения, можно использовать позже в качестве метрик для мониторинга рабочей среды.
6. Регистрация, этапы и тестовые модели
После обучения модели машинного обучения или конвейера зарегистрируйте её в реестре моделей MLflow в Unity Catalog, чтобы упростить контроль и управление по мере подготовки модели к промышленной эксплуатации. Зарегистрированная модель имеет версии, каждая из которых связана с исходным запуском обучения, в результате которого она была создана. Версии модели позволяют безопасно выстраивать процессы развертывания: можно протестировать новую версию в среде тестирования, прежде чем развернуть ее в продуктивной среде, откатиться к предыдущей версии, если качество ухудшится, и вести полный журнал аудита того, что и когда было развернуто.
Прежде чем новая версия модели обслуживает рабочий трафик, протестируйте версию в промежуточном режиме в реалистичных условиях:
-
Пометьте версию-кандидат модели с помощью псевдонимов (
Staging,Production), чтобы обозначить этап жизненного цикла без переименования артефактов. - Проведите интеграционные тесты в среде стейджинга: убедитесь, что сервисный эндпоинт запускается, задержка соответствует требованиям, а выходные данные имеют корректный формат.
- Выполните A/B- или теневые тесты на рабочих данных, чтобы проверить производительность до полного переключения.
- Сбор подписок заинтересованных лиц на основе результатов оценки.
Это описание чрезмерно упрощает практики развертывания и операционные процессы машинного обучения (MLOps). Дополнительные сведения о MLOps см. в рабочих процессах MLOps на Azure Databricks.
7. Развертывание в рабочей среде
После промежуточной проверки продвигайте и развертывайте модель в рабочей среде, чтобы создать прогнозы для реальных входных данных. Azure Databricks поддерживает два основных шаблона обслуживания:
- Обслуживание в режиме реального времени. Развертывание модели в качестве конечной точки REST с низкой задержкой с помощью службы моделей для вариантов использования, требующих решений с низкой задержкой, таких как перехват мошенничества во время транзакции, динамическая персонализация или динамическая цена.
-
Пакетный вывод:
ai_queryобеспечивает эффективный пакетный вывод для пользовательских моделей, развернутых как конечные точки Model Serving. Можно также использовать пользовательский код с пользовательскими функциями Apache Spark (UDF) (пример) илиmlflow.pyfuncдля пакетного вывода. Пакетные конвейеры записывают результаты в таблицы Delta для подчиненных приложений, панелей мониторинга или конвейеров. Этот шаблон обрабатывает ежедневные прогнозы, ночные обновления рекомендаций и другие периодические задания.
Оба шаблона используют один и тот же артефакт обученной модели. Обучите модель один раз и развертывайте её для пакетного или потокового обслуживания из одной и той же зарегистрированной версии, с тем же управлением и отслеживанием происхождения.
Genie Code может создавать код для развертывания и помочь устранить проблемы с обслуживанием, объяснить поведение конечной точки и ускорить итерацию при обновлении или повторном развертывании моделей.
8. Мониторинг и переобучение
Промышленные системы машинного обучения могут со временем деградировать по мере того, как меняется поведение пользователей или изменяются конвейеры обработки данных. Непрерывно отслеживайте рабочие данные и прогнозы моделей:
- Записывайте входные и выходные данные ваших развернутых моделей. При обслуживании в реальном времени таблицы инференса обеспечивают автоматическое журналирование без изменений в коде вашей модели. Для пакетной обработки ваши конвейеры обычно читают данные из таблиц Delta под управлением Unity Catalog и записывают данные в них.
- Передайте эти журналы в мониторинг качества данных, который отслеживает качество данных, дрейф признаков и распределение предсказаний с течением времени. Если у вас есть эталонные данные или данные обратной связи, вы можете объединить эти данные с журналами обработки запросов, чтобы вычислить метрики качества предсказаний.
- Используйте пользовательский интерфейс мониторинга и оповещения об обнаружении аномалий , чтобы активировать эскалацию или переобучение до заметного снижения качества.
Подробнее о промышленном ML см. в статье Рабочие процессы MLOps в Azure Databricks.
Дополнительные ресурсы
- Возможности Azure Databricks для науки о данных и машинного обучения — возможности Azure Databricks на каждом этапе этого жизненного цикла
- Рабочие процессы MLOps в Azure Databricks — справочное руководство по производственным рабочим процессам MLOps
- Управление жизненным циклом модели в каталоге Unity — управление версиями моделей и управление жизненным циклом в каталоге Unity