Эту неделю я провел в прекрасном городе Праге, посещая конференцию SEAA 2018. Основная причина моего присутствия заключалась в том, что у меня была возможность представить статью, которую я написал в соавторстве с коллегами из Peltarion, о проблемах разработки программного обеспечения, связанных с глубоким обучением. Peltarion предлагает потрясающую платформу для создания систем глубокого обучения, и если вас интересуют AI/ML/DL, вам действительно стоит проверить их платформу.
Команда Peltarion, с которой я написал статью, имеет многолетний опыт создания систем глубокого обучения, они вышли из успешных (и теперь уже крупных) стартапов в Швеции и работали с множеством высокопоставленных клиентов со всего мира. Их опыт и идеи послужили отличной основой для статьи, в которой определены ключевые проблемы разработки программного обеспечения, связанные с созданием критически важных систем глубокого обучения производственного качества.
Удивительно, но хотя многие компании экспериментируют с глубоким обучением и создают прототипы с помощью таких инструментов, как TensorFlow и PyTorch, немногие понимают, что проблем, связанных с созданием такого прототипа и его производством, много, и они могут привести к провалу всей инициативы. Это не пустая угроза, поскольку у нас есть несколько примеров компаний, пытающихся действовать в одиночку без надлежащей платформы. Проблемы разработки программного обеспечения глубокого обучения реальны и сложны.
Хотя вы можете скачать слайды здесь и документ здесь, я решил дать краткий обзор тем, которые я представил. Мы выделяем три категории проблем, связанных с разработкой, производством и организацией.
Мы обсуждаем пять проблем развития:
- Управление экспериментами: как отслеживать все контекстуальные факторы (например, аппаратное обеспечение, платформа и т. д.) при проведении множества экспериментов.
- Ограниченная прозрачность: нейронные сети мало что дают в понимании того, почему и как они работают.
- Устранение неполадок: большие библиотеки, ленивое выполнение и отсутствие инструментов чрезвычайно усложняют устранение дефектов.
- Ограничение ресурсов: большие наборы данных и сложные модели приводят к использованию распределенных архитектур, что еще больше усложняет управление экспериментами и устранение неполадок, а также увеличивает затраты, необходимые знания и время.
- Тестирование: тестирование данных очень сложно, и для него мало инструментов. Кроме того, тестирование моделей и базовой инфраструктуры очень сложно.
Выявленные нами производственные проблемы включают в себя:
- Управление зависимостями. Аппаратное обеспечение графического процессора и программные платформы совершенствуются и развиваются очень быстро, а программное обеспечение часто кодирует контекстные знания из соображений производительности.
- Мониторинг и ведение журнала: модели часто часто переобучаются, и поведение может измениться. Различить ошибки и улучшения сложно.
- Непреднамеренные циклы обратной связи: реальный мир может адаптироваться к модели, а не наоборот.
И, наконец, организационные проблемы, которые мы обсуждаем, следующие:
- Оценка трудозатрат: мы принципиально не знаем, сколько времени потребуется на разработку приемлемой модели (и произойдет ли это вообще).
- Конфиденциальность и безопасность данных: поскольку мы часто не знаем, как работают нейронные сети, трудно гарантировать, что в сети не хранятся никакие личные или личные данные.
- Культурные различия: у специалистов по данным и разработчиков программного обеспечения часто очень разные мотивы и способы работы.
В заключение, современные инструменты, такие как TensorFlow и PyTorch, позволяют очень легко создавать прототипы глубокого обучения. Построение критически важных систем качества производства из этих прототипов оказывается серьезной задачей разработки программного обеспечения, и в документе и презентации мои коллеги из Peltarion и я представляем ключевые проблемы разработки, производства и организации. Конечно, само собой разумеется, что Пелтарион предлагает платформу, которая решает многие, если не все эти проблемы, и предлагает — то, что мы называем — оперативный ИИ. Однако цель этой статьи не в том, чтобы быть коммерческим предложением, а в том, чтобы повысить осведомленность. Разработка систем глубокого обучения — это сложно!
Чтобы получать больше информации раньше, подпишитесь на мою рассылку по адресу [email protected] или следите за мной на janbosch.com/blog, LinkedIn (linkedin.com/in/janbosch) или Twitter ( @ЯнБош).