

В следующем списке представлены проверенные подходы к разработке программных систем с компонентами машинного обучения (ML).Список составлен на основе консультаций с командами ML-разработчиков и анализа соответствующей научной и внеиздательской литературы. Мы непрерывно ведем глобальный опрос команд ML-разработчиков, чтобы оценивать степень внедрения этих подходов в реальные проекты.Собранные подходы сгруппированы по шести категориям, изображенным на схеме выше, и перечислены в списке ниже.Каждому подходу поставлены в соответствие сложность, эффекты от его внедрения и реализуемые с его помощью требования к достоверности моделей ML.
Данные
«Кто контролирует конвейер данных, тот контролирует и производственный конвейер для машинного обучения». — Чип Хьюэн (Chip Huyen)
Проверка всех внешних источников данных на здравый смысл
Проверка входных данных на полноту, сбалансированность и равномерное распределение
Проверка тренировочных данных на социальные предубеждения
Написание многоразовых скриптов для очистки и слияния данных
Разметка данных в рамках жестко контролируемого процесса
Исключение дискриминационных атрибутов данных из числа признаков модели
Применение методологий конфиденциального машинного обучения
Обеспечение доступности наборов данных в общей инфраструктуре (частной или публичной)
Обучение
«Даже многократно проведенный эксперимент не сможет подтвердить мою правоту, а доказать, что я не прав, можно и одним экспериментом». — Альберт Эйнштейн
Четкая формулировка цели обучения и донесение этой цели до всех участников команды
Оценка цели обучения посредством легко измеримых и наглядных показателей
Тестирование всего кода для извлечения признаков
Назначение владельца каждому признаку и документирование его обоснования
Активное удаление или архивация неиспользуемых признаков
Применение интерпретируемых моделей в любой подходящей ситуации
Независимая экспертиза скриптов обучения
Проведение экспериментов с параллельным обучением
Автоматизация генерации и отбора признаков
Автоматизация оптимизации гиперпараметров
Автоматизация конфигурации алгоритмов или структуры модели
Непрерывная оценка качества и эффективности модели
Оценка и контроль предубеждений в подгруппах
Управление версиями данных, моделей, конфигураций и скриптов обучения
Уведомление команды о статусе и результатах экспериментов
Код
«В настоящее время нельзя считаться экспертом в области ИИ без фундаментальных навыков программной инженерии». — Грейди Буч (Grady Booch)
Выполнение автоматизированных регрессионных тестов
Применение системы непрерывной интеграции
Проверка качества кода методом статического анализа
Контроль безопасности приложений
Развертывание
«Если ваша модель не развернута в производственной среде, разве можно сказать, что она существует?» — Аноним
Автоматизация развертывания модели
Реализация теневого развертывания
Непрерывный мониторинг поведения развернутых моделей
Выполнение проверок на отклонение результатов работы модели в разных средах
Реализация автоматического отката моделей в производственной среде
Протоколирование прогнозов производственных моделей с указанием версии модели и входных данных
Внедрение аудиторских следов
Команда
«Чтобы идти быстро, отправляйтесь в одиночку; но чтобы зайти далеко, идите вместе». — Африканская пословица (предположительно)
Применение платформы для совместной разработки
Ведение общего списка невыполненных работ
Налаживание коммуникаций, согласование и совместное выполнение работ с другими участниками команды
Выбор альтернатив посредством четко обозначенного внутрикомандного процесса
Управление
«Там, где большая власть, там и большая ответственность». — Уинстон Черчилль
Следование ценностям «этики ИИ»
Проведение оценок риска
Принудительное соблюдение принципов справедливости и конфиденциальности
Информирование пользователей об использовании машинного обучения
Объяснение результатов и решений пользователям
Предоставление безопасных каналов для неудобных вопросов
Проведение аудита вашего приложения
Материал подготовлен в рамках курса «MLOps».
Всех желающих приглашаем на бесплатный интенсив «end2end Fraud Detection». На занятии мы:
- Cформулируем бизнес цели и метрика проекта.
- Загрузим данные в HDFS и проведем разведывательный анализ данных с помощью spark.
- Выстроим каскад метрик, формулируем задачу для ML.
- Обучим модель и проверяем гипотезы по улучшению качества.
- Автоматизируем переобучение на новых данных и сохранение артефактов с помощью Airflow и MLFlow.
>> РЕГИСТРАЦИЯ
