Эту неделю я провел в прекрасном городе Праге, посещая конференцию SEAA 2018. Основная причина моего присутствия заключалась в том, что у меня была возможность представить статью, которую я написал в соавторстве с коллегами из Peltarion, о проблемах разработки программного обеспечения, связанных с глубоким обучением. Peltarion предлагает потрясающую платформу для создания систем глубокого обучения, и если вас интересуют AI/ML/DL, вам действительно стоит проверить их платформу.

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

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

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

Мы обсуждаем пять проблем развития:

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

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

  • Управление зависимостями. Аппаратное обеспечение графического процессора и программные платформы совершенствуются и развиваются очень быстро, а программное обеспечение часто кодирует контекстные знания из соображений производительности.
  • Мониторинг и ведение журнала: модели часто часто переобучаются, и поведение может измениться. Различить ошибки и улучшения сложно.
  • Непреднамеренные циклы обратной связи: реальный мир может адаптироваться к модели, а не наоборот.

И, наконец, организационные проблемы, которые мы обсуждаем, следующие:

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

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

Чтобы получать больше информации раньше, подпишитесь на мою рассылку по адресу [email protected] или следите за мной на janbosch.com/blog, LinkedIn (linkedin.com/in/janbosch) или Twitter ( @ЯнБош).