На этой неделе мне выпала возможность выступить на инициативном семинаре, организованном Исследовательским центром ИИ Чалмерса (КАФЕДРА). Ключевое сообщение в моей презентации (см. видео здесь) заключалось в том, что работа с искусственным интеллектом (ИИ) и, в частности, с машинным и глубоким обучением (МО/ГО) представляет собой серьезную задачу разработки программного обеспечения, которая сильно недооценивается компаниями, начинающими экспериментируйте с машинным и глубоким обучением.

Хотя я обсуждал некоторые проблемы в предыдущем сообщении в блоге, мы продолжили исследования в этой области и собрали дополнительные данные, касающиеся конкретных проблем. Кроме того, мы разработали модель, которая показывает, как компании обычно развиваются при внедрении AI/ML/DL. На рисунке ниже показаны этапы, через которые обычно проходят компании. В этом и следующих постах я намерен обсудить проблемы, связанные конкретно с каждым шагом. Это основано на статье, которая недавно была принята к публикации в материалах конференции XP 2019.

Как показано на рисунке, первый шаг, которым занимается большинство компаний, — это эксперименты и прототипирование. При этом работа над моделями машинного и глубокого обучения ведется исключительно внутри компании и без какой-либо привязки к продуктам и услугам, которые компания предлагает своим клиентам. Работа практически с любыми подходами ML/DL происходит по схеме, показанной на рисунке ниже. В самом простом представлении здесь четыре этапа, т. е. сборка наборов данных (или каналов данных), создание моделей, обучение и оценка и, наконец, развертывание. Есть два итерационных процесса. Внутренний цикл связан с типичными действиями по созданию модели, ее обучению, оценке и последующей настройке модели с целью повышения точности и снижения частоты ошибок. Внешний цикл иллюстрирует периодическое или непрерывное переобучение моделей на основе самых последних данных и последующее непрерывное развертывание моделей в работе.

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

Для этапа «сборки наборов данных» (который на более поздних этапах становится этапом конвейеров данных) сама деятельность по сборке правильных наборов данных для целей обучения и проверки часто оказывается серьезной проблемой. Хотя все компании склонны тонуть в данных, эти данные часто имеют неясную семантику, и способ их сбора часто неясен, в результате чего наборы данных не обязательно репрезентативны для операционных данных, которые будут использоваться во время операций. В качестве точки данных: компания, которую я недавно посетил, заявила, что более 90% всех усилий в команде по анализу данных было направлено на сбор наборов данных и настройку надежных конвейеров данных. Хотя это легко недооценить, это серьезная проблема.

Этап «создание моделей» связан с созданием моделей ML/DL, которые хорошо работают с данными, которыми характеризуется предметная область. Поскольку хорошо работающая модель сильно зависит от характеристик входных данных, любые проблемы на предыдущем шаге автоматически влияют на качество модели. Кроме того, особенно на этом раннем этапе, часто компании испытывают нехватку талантов с опытом, что усугубляет ситуацию.

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

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

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

Ссылка: Люси Эллен Лвакатаре, Айсвария Радж, Ян Бош, Хелена Холмстрём Олссон и Ивица Црнкович, Классификация проблем разработки программного обеспечения для систем машинного обучения: эмпирическое исследование, XP 2019 (ожидается), 2019.

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