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


Операции рабочей нагрузки ИИ в Azure

При создании и переходе рабочих нагрузок ИИ в рабочую среду важно, чтобы рабочие нагрузки были полностью оснащены для поддержки этих рабочих нагрузок, таких как любая другая рабочая нагрузка. Так как у ваших рабочих групп может быть ограниченный опыт работы с технологиями ИИ, важно обучать их на этих технологиях и интегрировать рабочие нагрузки ИИ в рабочие процессы в начале процесса. Объединение групп операций и данных в начале разработки рабочей нагрузки ИИ для содействия взаимному пониманию процессов каждой команды. Эта ранняя совместная работа имеет решающее значение, так как обе команды должны тесно работать для эффективной поддержки рабочей нагрузки искусственного интеллекта. Команды данных зависят от команд операций для предоставления надежных сигналов работоспособности и интерактивных оповещений. Группы операций зависят от команд данных, которые помогают диагностировать потенциальные проблемы и устранять фактические проблемы в соответствии с операционными стандартами. Это партнерство помогает обеспечить плавную и эффективную производительность системы.

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

Рекомендации

Ниже приведена сводка рекомендаций, приведенных в этой статье.

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

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

Включение компонентов рабочей нагрузки ИИ в методики безопасного развертывания
Объявите методики DevOps по тестированию и автоматизации. Применяйте методики DevOps при создании, развертывании и эксплуатации рабочей нагрузки ИИ в рабочей среде. Рабочая нагрузка должна обеспечить наблюдаемость и тестирование с помощью реальных входных данных пользователей в рабочей среде. Это можно обеспечить только в безопасном режиме, если сильный процесс DevOps и упрощенная автоматизация позволяют быстро развертывать, исправить ошибки и тестирование A/B.

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

Внедрение рекомендаций по документации

Расширение платформы наблюдаемости

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

Чтобы оценить работоспособность модели, требуется полный обзор конкретных метрик качества. Измерения качества обычно включают метрики, такие как свежесть модели, правильность вывода и задержка отклика. Однако необходимо сотрудничать с специалистами по обработке и анализу данных, чтобы установить конкретные метрики, определяющие качество рабочей нагрузки. Недетерминированный характер рабочих нагрузок ИИ делает мониторинг качества особенно важным, так как эти измерения могут неожиданно измениться в любое время после развертывания. Рекомендации по наблюдаемости:

  • Обратитесь к специалистам по обработке и анализу данных, чтобы определить метрики качества.

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

  • Реализуйте хорошо разработанные оповещения о доступности и качествах, с которыми могут понять и принять меры.

  • Кодифицируйте стандартные операционные процедуры, определяющие, как команды операций реагируют на оповещения о качестве, например, работа с командами данных для исследования и устранения потенциальных сбоев.

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

Включение компонентов рабочей нагрузки ИИ в методики безопасного развертывания

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

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

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

  • Для кода оркестрации используйте флаги функций или сине-зеленые развертывания.

В зависимости от приложения, платформы данных и конкретной сетевой топологии может потребоваться использовать решение шлюза, например Шлюз приложений Azure или Azure Front Door.

Инструменты

Машинное обучение Azure поддерживает развертывание сине-зеленого цвета в собственном коде со встроенным разделением трафика.

Не изобретайте велосипед

Так как конечные точки вывода в Сети по сути микрослужбы являются микрослужбами, они работают как полностью автономные компоненты рабочей нагрузки с собственными данными и кодом, которые служат определенной функции в рабочем процессе. По этой причине следует рассматривать конечные точки вывода через Интернет, как и другие критически важные микрослужбы, имеющие собственные жизненные циклы. Вы можете обновлять конечные точки вывода по сети по отдельности. Однако, как и другие микрослужбы в большей рабочей нагрузке, они должны эффективно работать вместе. Таким образом, при развертывании обновлений следует определять приоритеты тестирования интеграции. Убедитесь, что развертывания не негативно влияют на другие службы, такие как обслуживание моделей и оркестратор. Кроме того, конечные точки вывода пакетной службы часто тесно связаны с вычислением обработки заданий и включаются в конвейер данных. В таких случаях следует рассматривать их как часть более крупного решения вместо микрослужб.

Поддержка тестирования в рабочей среде

Группы операций, скорее всего, не будут разрабатывать или выполнять тестирование рабочей нагрузки ИИ. Однако они должны поддерживать тестирование рабочей нагрузки ИИ с помощью мониторинга, оповещения и исследования, так как тестирование требуется в рабочей среде. Из-за недетерминированной природы ИИ тестирование в рабочей среде необходимо, чтобы обеспечить выполнение рабочей нагрузки должным образом с течением времени. Группа операций должна тесно сотрудничать с командой рабочей нагрузки для эффективного отслеживания и диагностики результатов аномальных тестов и в соответствии с операционными стандартами. Чтобы убедиться, что операции могут поддерживать тестирование и что рабочие нагрузки могут выполнять тестирование, обе команды должны соответствовать их процессам для совместной работы. Обучение по тестированию действий в непроизводственных средах помогает ознакомиться с порядком операций команды.

Автоматизация операционных методик, когда это возможно

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

По возможности повторно используйте существующие средства автоматизации для выполнения новых задач автоматизации для рабочей нагрузки ИИ. Например, если вы уже используете Azure Pipelines или GitHub Workflows, продолжайте использовать их для развертывания кода оркестрации вместо использования отдельного средства. Тем не менее, избегайте чрезмерной инженерии в усилиях, чтобы использовать только одно средство автоматизации. Если некоторые задачи или задания не подходят для выбранного инструмента, выберите более подходящий инструмент вместо создания пользовательского решения, которое добавляет ненужные сложности.

Примечание.

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

Использование методик DevOps

На ранних этапах разработки рабочей нагрузки стандартизируйте использование методов DevOps в процессах разработки. Для всех сред, кроме изолированных сред, строго определенных и применяемых стандартов следует управлять всем жизненным циклом разработки. Соблюдайте эти стандарты, строго запрещая любые действия по развертыванию вручную. Все развертывания, будь то обновления, исправления или новые развертывания ресурсов, должны выполняться с помощью непрерывной интеграции и конвейера непрерывного развертывания, который соответствует безопасным методикам развертывания. Хорошие методы гигиены DevOps должны включать:

  • Управление версиями: используйте управление версиями для всех ресурсов кода как можно больше. Управление версиями является краеугольным камнем DevOps и хорошими методами управления изменениями и жизненно важно для плавной совместной работы. Примените управление версиями к пакетам библиотеки, включая пакеты SDK и образы контейнеров. Будьте последовательны в использовании определенной версии пакетов библиотек в жизненном цикле разработки программного обеспечения (SDLC). Различные версии библиотек, например XGBoost или scikit-learn в различных средах разработки, могут привести к вариациям поведения рабочей нагрузки. То же самое верно для управления версиями моделей. Убедитесь, что версии модели согласованы в SDLC, чтобы не тестировать одну версию модели в предварительной среде и выпускать другую версию в рабочей среде.

  • Простая схема именования версий: используйте простую схему именования версий, чтобы гарантировать, что вы всегда используете последнюю утвержденную версию данного ресурса. Ресурсы, относящиеся к ИИ, могут включать:

    • Код записной книжки.
    • Код оркестратора.
    • Код задания обработки данных.
    • Машинное обучение код задания.
    • Модель.
  • Средства, которые можно использовать в эксплуатацию: некоторые инструменты отлично подходят для экспериментирования, но не предназначены для эксплуатации. Это ограничение может затруднить или невозможно интегрировать их в операционную автоматизацию. Например, записные книжки являются хорошим инструментом для экспериментирования и анализа аналитических данных, но они не являются хорошим инструментом для разработки рабочих конвейеров. Завершив экспериментирование, вытащите логику из этих средств и вставьте его в пакет Python, который можно использовать для кода задания.

Внедрение рекомендаций по документации

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

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

  • История процесса обучения: подробные сведения о том, как вы прибыли в текущую утвержденную конфигурацию, задокументируя, почему вы выбрали определенные гиперпараметры, температуры, весы и другие параметры. Включите другие конфигурации, которые вы проверили, и изменения поведения, которые вы наблюдали на протяжении всего процесса обучения. Эта информация помогает предотвратить повторение неудачных или неэффективных конфигураций.

  • Сведения о хранилище функций: документируйте, какие функции имеют лучшую прогнозную мощность и как вы сделали это определение.

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

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

Инструменты

Воспользуйтесь преимуществами автоматической настройки и записи журнала с помощью MLFlow и Машинное обучение.

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