Эта статья была первоначально размещена на нашем сайте компании. Платформа для разработчиков Lakera позволяет командам машинного обучения создавать отказоустойчивые модели компьютерного зрения.

Создание продуктов компьютерного зрения (CV) — это весело и увлекательно, это волшебно, когда вы запускаете первые демоверсии и видите результаты своими глазами. Тем не менее, также утомительно и заведомо сложно доводить модели компьютерного зрения до производства. Захватывающая фаза происходит в начале любого нового проекта. Чаще всего у вас мало данных для обучения и тестирования моделей, и вы полагаетесь на предварительно обученные модели с открытым исходным кодом, чтобы сделать свои первые шаги.

В этот момент ваша основная задача, вероятно, состоит в том, чтобы получить доказательство концепции (POC), которое демонстрирует производительность вашей модели CV на небольшом наборе тестовых данных с помощью вашей любимой метрики (например, точность, полнота, mAP, кривая ROC, и т. д). Это совершенно понятно и правильно. Тем не менее, это также место, где это быстро становится опасным.

Настоящая работа начинается после POC; Основная цель POC — оценить объем работы, необходимой для создания производственной модели, определить, что для этого необходимо, и оценить шансы на успех. Я говорю по опыту, когда говорю, что достичь целевого показателя на тестовом наборе — это легко. Мы все это знаем. Тем не менее, слишком часто чрезмерная зависимость от одной, двух или трех совокупных метрик приводила меня к следующему:

  • Будьте слишком оптимистичны в отношении производительности моей модели CV.
  • Обещайте слишком много того, что может быть выполнено в определенные сроки, и тратьте впустую ресурсы.
  • Сбор данных неправильного типа.

Короче говоря, даже на этапе POC мы должны тщательно оценить статус-кво наших моделей машинного обучения и должным образом их протестировать. Что это должно включать? Это зависит от продукта, но как минимум должно включать (в дополнение к вашим целевым показателям оценки):

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

Раньше эти процессы требовали много работы, но с появлением специального программного обеспечения для тестирования машинного обучения, такого как MLTest от Lakera, эти оценки стали такими же простыми, как обучение новой модели.

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

Большинство программных проектов ИИ застряли в ловушке прототипирования или неэффективны в работе.

Анализ Gartner в 2022 году показал, что только 53% проектов проходят путь от прототипов искусственного интеллекта (ИИ) до производства.

Почему это так?

Разработчики не обращают внимания на надежность модели.

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

Увеличение данных может решить некоторые проблемы, но не все. Чтобы знать, какие дополнения добавлять и какие данные собирать, важно сначала понять надежность ваших моделей и протестировать ее как часть разработки как можно раньше.

Качество данных недостаточное.

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

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

Заинтересованным сторонам бизнеса трудно понять ограничения продукта.

Мы все были там: менеджер по продукту, генеральный директор, технический директор или кто-то еще спрашивал, будет ли ваша модель компьютерного зрения работать при определенных условиях. Что ты говоришь? «Эм, наверное?». Если вы не уверены в эффективности своей модели, заинтересованные стороны, удаленные на один уровень от технологии, будут потеряны, как и клиенты, которым они продают.

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

Протестируйте заранее и пожинайте плоды.

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

MLTest от Lakera предоставляет каждой команде разработчиков компьютерного зрения инфраструктуру тестирования мирового уровня. Наш продукт дает полное представление о производительности вашей модели и качестве ваших данных — автоматически в рамках существующих процессов разработки. Зарегистрируйтесь, чтобы протестировать свою модель сегодня!