Для понимания феномена искусственного интеллекта можно подойти к явлению с разных сторон. Выше мы кратко рассмотрели некоторые аспекты развития технологий, составляющих основу ИИ. В данной лекции постараемся ответить на другой вопрос. Как данные технологии используются в бизнесе, какие продукты создаются на основе ИИ, какие компании и ресурсы для этого требуются, в каких индустриях ИИ дает наибольшую отдачу, как ИИ влияет на успешность отдельных компаний, отраслей и целых стран?
Бизнес — это та сила, которая в существенной мере является стимулом и целью развития технологий, анализ бизнеса позволяет лучше понять перспективы и траекторию развития техники. Поэтому развитие ИИ невозможно рассмотреть не обратившись к теме бизнеса на его основе. Для этого нужно ответить на массу вопросов. Какие формируются рынки, ассоциированные с ИИ? Из какой совокупности сегментов состоит ИИ-рынок? Какие компании его развивают? Какие факторы стимулируют развитие этого рынка и какие тормозят? Какие направления развиваются быстрее? В какие направления более целесообразно вкладывать средства? Какие компании, отрасли, страны в большей степени преуспели в создании систем ИИ, и как их можно ранжировать по этому показателю? Это далеко не полный перечень вопросов, которые аналитики пытаются изучать, чтобы описать развитие ИИ с точки зрения бизнеса.
Многие аналитические компании оперируют понятием «рынок ИИ», хотя единой точки зрения на это понятие нет. ИИ-рынок рассчитывается на основе совокупности ИИ-проектов. Поэтому прежде, чем обсуждать понятие рынок ИИ, давайте поговорим о жизненном цикле ИИ-проектов.
Рассмотрим, какие существуют проекты по построению ИИ, какие игроки в подобных проектах задействованы, каковы их роли.
Экосистема компаний, участвующих в создании ИИ-решений
В данном разделе речь пойдет о типах компаний, которые участвуют в бизнесе по построению ИИ-решений. Большинство этих компаний можно классифицировать по двум принципам. Первый — это классификация по этапам жизненного цикла типового ИИ-проекта (от компаний, задействованных на этапе планирования проекта, до тех, кто внедряет и обслуживает ИИ-модели). Второй — по принадлежности к уровню технологического стека (от поставщиков специализированного железа до поставщиков отраслевых приложений).
Начнем с типового проекта в области ИИ и рассмотрим стадии его жизненного цикла, а также ответим на вопрос — какие компании участвуют в создании такого рода проектов.
Типовой ИИ-проект, его этапы и разработчики
Несмотря на то, что ИИ — это термин многогранный и вариантов ИИ-проектов может быть множество (об этом пойдет речь позднее в данной лекции), тем не менее существует понятие типового ИИ-проекта и жизненного цикла типового ИИ-проекта.
Заметим, что в самом первом приближении о жизненном цикле ИИ-проекта мы уже начали разговор на рис. 1.30, говоря об этапах обучения нейронной сети и применения готовой модели. В данной лекции рассмотрим стадии жизненного цикла более подробно.
Согласно трактовке специалистов Labelyourdata, типовой ИИ-проект в общем случае включает три стадии — «планирование и сбор данных», «разработка и обучение» и «развертывание и обслуживание модели» (рис. 3.1).
Рис. 3.1. Ключевые этапы жизненного цикла типового ИИ-ML-проекта. Источник: адаптировано по материалам Labelyourdata.com
Этап планирования проекта и сбора данных
В концепции рис. 3.1 проект начинается с формулировки проблемы и бизнес-анализа проекта. На этих этапах необходимо дать ответ на вопрос — какая решается бизнес-задача, обосновать целесообразность применения методов машинного обучения, оценить и спланировать необходимые кадровые и инфраструктурные ресурсы.
Примерный список вопросов, на которые необходимо дать ответ при проведении бизнес-анализа проекта, представлен на рис. 3.2.
Рис. 3.2. Вопросы, на которые необходимо дать ответ при проведении бизнес-анализа проекта. Источник: Lean DS
Заметим, что далеко не все ИИ-проекты являются успешными. И именно на этапе планирования важно оценить риски и причины, которые могут затормозить внедрение ИИ на конкретном предприятии.
Полезно изучить отраслевой опыт, обратиться к консалтинговым компаниям, проанализировать опросы специалистов, указывающих на типичные проблемы при внедрении ИИ-проектов. Результаты одного из таких опросов представлены на рис. 3.3. Интересно отметить, что в рассматриваемом опросе респонденты в качестве основных барьеров на первом месте отмечают не отсутствие данных или проблемы с их качеством (о важности этого аспекта говорят все аналитики по ИИ), а наличие культурных и организационных барьеров при внедрении ИИ.
Рис. 3.3. Ответы респондентов на вопрос о наиболее значимых трудностях при внедрении ИИ. Источник: Signally.ai
Данные других опросов свидетельствуют также о таких распространенных барьерах на пути реализации ИИ-проектов как трудности в приобретении профильных навыков и знаний, связанных с ИИ, проблемы, связанные с конкуренцией ИИ-проектов с другими проектами в компании, сложности в решении вопросов обеспечения безопасности и защиты систем на базе ИИ, отсутствие лидерства и поддержки инициатив по ИИ со стороны руководства.
Без надлежащего планирования и анализа рассмотренных выше рисков трудно рассчитывать на успех проекта.
Следующий этап на рис. 3.1 — это этап подготовки данных, он включает получение сырых данных и их обработку для создания датасета. Иногда могут использоваться готовые датасеты для обучения модели.
Говоря о подготовке данных, обычно различают такие этапы, как очистка данных (обработка пропущенных значений, обработка выбросов и дубликатов), преобразование (масштабирование, стандартизация, изменение частоты дискретизации), отбор признаков включая понижение размерности и обработку сильно коррелированных признаков), извлечение признаков (в том числе извлечение признаков из текстовых данных, из даты и времени), разметка (о которой поговорим чуть подробнее).
Особенно хотелось бы уделить внимание процессу разметки данных. Этот процесс может осуществляться вручную сотрудниками компании либо отдан на аутсорсинг таким сервисам, как, например, Яндекс.Толока. Еще более эффективным может оказаться внедрение операций разметки данных в бизнес-процессы компании, чтобы сотрудники неявным образом были вовлечены в разметку в процессе своих трудовых обязанностей. В некоторых случаях для сокращения потребности в размеченных данных используют генерацию таких данных на основе 3D-моделей или приемы transfer learning, когда используется обучение на больших имеющихся в открытом доступе датасетах, с последующим дообучением модели на данных предприятия.
Подготовка данных во многих случаях требует специальных знаний для определения того, какие характеристики данных являются критичными. Как уже было отмечено ранее, самым трудоемким этапом является сбор данных, их очистка и разметка.
Разработка модели и обучение
Как только получен первый датасет, можно приступать к разработке моделей машинного обучения. Этап включает в себя работы по проектированию метрик качества работы моделей, созданию и обучению моделей машинного обучения (настройку параметров моделей), настройку гиперпараметров моделей, сравнение разных моделей друг с другом по качеству.
Развертывание и мониторинг
Модели ИИ должны быть развернуты на оборудовании, оптимизированном под ИИ-нагрузку. Это могут быть внутренние ресурсы предприятия, периферийные узлы или облачная инфраструктура. При этом следует отметить, что обычно специальное аппаратное обеспечение требуется только для обучения, но не для применения. Бывают, конечно, требовательные к ресурсам модели, но это скорее редкость. Особенно в промышленности.
После развертывания модели требуется ее поддержка в условиях производства, где модель взаимодействует с реальными наборами данных. Часть проблем выявляется именно на стадии использования модели. Часто обученные модели деградируют во времени, поскольку найденные в исторических данных закономерности устаревают. Здесь нужно упомянуть такое понятие как Data Drift — ситуация, при которой из-за каких то внешних причин постепенно меняется характер входных данных модели, из-за чего снижаютсяее эффективность и точность прогнозирования. Соответственно, отдельное внимание требуется для обнаружения подобных проблем и их устранения на основе периодического дообучения модели на более свежих наборах данных.
Распределение ресурсов и времени в типовом ИИ-проекте
Для того чтобы представить трудоемкость отдельных этапов типового ИИ-проекта, полезно обратиться к статистическим данным. Подобную статистику можно найти в публикациях аналитической компании Cognilytica, специализирующейся в области изучения ИИ-рынка (см. рис. 3.4).
Как видно из сравнения рисунков (рис. 3.1 — рис. 3.4), пока не существует общепринятой таксономии в описании этапов ИИ-проектов, разные аналитики используют свое деление и наименования, при этом нетрудно наложить одну терминологию на другую.
В отличие от схемы Labelyourdata (рис. 3.1), Cognilytica не рассматривает этап «формулирования проблемы» и «бизнес-анализа проекта», а начинает цикл типового проекта непосредственно со стадии анализа и сбора данных (рис. 3.4).
Рис. 3.4. Соотношение временных затрат на выполнение ключевых этапов типового ИИ-ML-проекта. Источник: Cognilytica
Первым шагом (согласно рис. 3.4) рассматривается процесс идентификации данных, который, как показано на рисунке, занимает около 5%. На данном этапе идет определение источников данных, которые будут использоваться для обучения разрабатываемой модели.
Говоря о задачах, связанных с распознаванием изображений, можно использовать разные источники. Если область распознавания не является узкоспециализированной, то можно воспользоваться свободно распространяемыми общедоступными датасетами, что позволяет экономить деньги и время.
Если готовых датасетов для рассматриваемой задачи нет — создаются собственные, которые (в случае если речь идет о распознавании изображений) могут быть получены с помощью веб-скреппинга, с помощью фотоаппаратов, мобильных телефонов, камеры видео-наблюдения и т. д. Существуют специализированные компании, которые профессионально выполняют подобные работы на коммерческой основе.
Следующий этап, который занимает около 10%, — это агрегация данных. Поскольку данные поступают из разных источников или находятся в разных местах хранения, то на этапе агрегации, перед тем как с данными можно будет производить какие-то действия, они должны быть объединены в одной базе данных. При этом производится необходимое переформатирование данных, приведение их к единому виду. Работа достаточно рутинная, но необходимая, поскольку требуется разобраться, где какие данные находятся, в каком формате и что необходимо выбрать.
Этап очистки — один из наиболее длительных — 25%. Важность данного этапа характеризует популярная фраза «garbage in, garbage out» (мусор на входе — мусор на выходе). В данных могут содержаться ошибки. Например, пропуски значений, ошибочные записи, выбросы, несогласованные данные. Очистка данных подразумевает выявление и удаление ошибок и несоответствий в данных с целью улучшения качества датасета.
Разметка данных — это процесс идентификации необработанных данных (изображений, текстовых файлов, видео и т. д.) и добавления меток, на основе которых модель могла бы обучаться в терминах задачи обучения с учителем. Данный этап также длительный и требует порядка 25% времени. В рассмотренных нами в первой лекции примерах речь шла про метки, указывающие, изображена ли на фотографии кошка или собака, метки могут указывать, есть ли на рентгеновском снимке опухоль и где она расположена, есть ли на фотографии шлифа трещина, присутствует ли в аудиозаписи определенное слово и так далее. Разметка данных — это трудоемкий процесс. Массив данных может содержать десятки тысяч сэмплов, и вручную произвести процедуру разметки порой просто невозможно.
Проекты, связанные с распознаванием объектов или изображений, в том числе в приложениях для беспилотного транспорта, становятся все более распространенными рабочими нагрузками и требуют все больше усилий по разметке данных. Для выполнения этой работы все чаще используется автоматизация, опять-таки основанная на машинном обучении. По данным компании Cognilytica, к 2024 году более 30% текущих задач по разметке данных будут автоматизированы или выполняться системами искусственного интеллекта. На рынке существуют специализированные программы для разметки данных, позволяющие осуществлять детекцию и сегментацию объектов, классифицировать документы.
Во многих проектах процесс создания обучающих данных — это длительная и затратная процедура. Часто для решения задач подготовки данных имеет смысл обратиться к профильным компаниям, имеющим средства автоматизации, играющие решающее значение для соблюдения сроков проекта.
Для того чтобы сделать разметку более эффективной, используют модели машинного обучения для автоматической маркировки данных, которые сначала обучаются на подмножестве исходных данных, размеченных человеком, а потом автоматически предсказывают метки для новых данных (рис. 3.5).
Рис. 3.5. Схема автоматической разметки данных.
В тех случаях, когда модель разметки менее уверена в своих результатах, она передает данные человеку. Созданные человеком метки затем возвращаются обратно в модель разметки, чтобы она могла учиться и улучшать свои возможности по автоматической разметке следующего набора исходных данных. Со временем модель позволяет автоматически размечать все больше и больше данных.
На схеме использован термин «Активное обучение» — это вариант машинного обучения, в котором алгоритм обучения может запрашивать метки новых точек данных с желаемыми результатами.
Количество данных, на которых обучается модель, — это важный фактор. Обучение модели на большом количестве хорошо размеченных данных — это основа для получения точных прогнозов.
Иногда естественно полученных данных бывает недостаточно. Тогда можно сгенерировать новые синтетические данные, которые бы были похожи на исходные с точки зрения решаемой задачи. Если объем данных для обучения ограничен, их можно дополнить возможными вариациями, которые могут встретиться в реальной жизни путем генерации этих вариаций искусственно. Процесс создания дополнительных обучающих данных из имеющихся путем их модификации называется аугментацией данных (data augmentation).
Например, если нам необходимо увеличить в размере датасет с изображениями кошек и собак, то его можно увеличить вдвое просто отзеркалив каждую фотографию. С точки зрения алгоритма машинного обучения, мы получим попиксельно другие изображения, но с тем же самым смыслом. Другими популярными примерами преобразований изображений являются: поворот изображения на некоторый угол, добавление шума, смещение относительно центра, изменение угла обзора, преобразования в различные цветовые схемы, размытие и другие приемы. Применение комбинаций этих преобразований позволяет увеличивать размеры датасетов в десятки раз, однако не следует ожидать от данной процедуры такого же роста качества, как если бы использовались дополнительные естественные данные.
Согласно оценкам компании Cognilytica, этап «аугментация данных» составляет около 15% от рассматриваемого цикла.
После того как данные приведены в пригодный для использования вид, разработчики переходят к разработке ML-алгоритма (на данный этап на рис. 3.4 отнесено всего 3% времени), далее следуют обучение (10%) и этап настройки (5%).
Мы не будем разделять разработку алгоритма, обучение и настройку, поскольку они связаны между собой.
В большинстве случаев на данных этапах процедура сводится к процессу выбора алгоритма, исходя из цели обучения и требований к данным. Разработка принципиально новых моделей и архитектур, как правило, выходит за рамки коммерческого применения ИИ и проводится только большими компаниями, имеющими свои лаборатории ИИ.
Как правило, на этой стадии разработчики пробуют несколько алгоритмов и выбирают лучший по результатам. Это может быть выбор между классическими алгоритмами и нейросетевым подходом или выбор подходящей архитектуры нейросети. На этом этапе происходит настройка гиперпараметров, сравнивается качество работы различных алгоритмов на одних и тех же данных.
Этот этап требует выбора и применения методов моделирования, обучения модели, установки и настройки гиперпараметров модели.
На данной стадии также возможно привлечение внешних компаний, которые оказывают услуги по разработке моделей машинного обучения.
Алгоритмы машинного обучения учатся на примерах, и чем больше качественных данных предоставляется алгоритму, тем лучше модель будет находить закономерности в данных. Одна из проблем, которой важно избежать, — это так называемое переобучение (overfitting) — ситуация, когда модель может делать точные прогнозы для данных, на которых она была обучена, но не способна обобщать данные, с которыми она раньше не сталкивалась (которые не участвовали в процессе обучения).
Чтобы избежать подобной ситуации, данные разделяют на три части (обучающие, проверочные и тестовые). Данные для обучения модели — это большая часть данных, которые используются для обучения моделей.
Валидационные данные — данные, которые модель не видела. Эти данные служат для настройки модели — для подгонки гиперпараметров. Тестовые данные — это данные, которые не были предоставлены модели ни во время обучения, ни во время настройки и используются для оценки и сравнения настроенных моделей. Эти данные используются для проверки, насколько успешно происходит процесс обобщения модели на тех данных, которые ей ранее не были показаны.
Финальная стадия — это операционализация, которая, согласно рис. 3.4, занимает всего лишь 2%. Даже после того, как модель обучена, она не готова к внедрению, пока не будет пройдена стадия операционализации, то есть модель не будет развернута в бизнес-приложении, не начнет анализировать данные и делать прогнозы.
Операционализация подразумевает выполнение ряда задач, включая выбор варианта развертывания и обслуживания модели машинного обучения, выбор приемлемого диапазона вероятности для определения прогнозов, расчет потребной вычислительной мощности для модели, оценку модели для проверки правильности ее адаптации к реальным данным, мониторинг производительности модели, анализ результатов и ошибок модели и ее повторное обучение при необходимости.
Если дата-сайнс-команды отвечают за разработку и обучение модели, то ввод в эксплуатацию моделей машинного обучения обычно осуществляется MLOps-командами и инженерами заказчика.
На рис. 3.1 жизненный цикл машинного обучения представлен в виде последовательности действий с одним итерационным циклом на стадии разработки и обучения. Однако даже на стадии операционализации мониторинг модели может показывать ненадлежащие результаты и возвращать разработчиков на более ранние стадии для того, чтобы попробовать различные модели или даже обновить набор обучающих данных. Фактически любой из этапов жизненного цикла может вернуть разработку проекта на более ранний этап.
Мы уже отметили выше, что не существует единой точки зрения по поводу наименований этапов типового ИИ-проекта и стандартного перечня работ на каждом этапе. Например, авторы рис. 3.6 перечисляют примерно те же этапы, что и на рис. 3.1 и 3.4, но используют несколько отличный набор терминов, а также упоминают ряд дополнительных пунктов, связанных со сбором, хранением и очисткой данных.
Рис. 3.6. Иерархия потребностей в дата-сайнс-приложениях. Источник: Data Flair
Сравнение рисунков 3.1, 3.4 и рис. 3.6 позволяет еще раз затронуть вопрос таксономии. На рис. 3.1 и 3.4 речь шла о типовом ИИ/ ML-проекте, где все этапы трактуются как часть ИИ-проекта, а на рис. 3.6 лишь только самый верхний слой пирамиды отнесен к ИИ, в то время как все остальные этапы обозначены как подготовительные. По сути, вопрос о том, какая часть пирамиды рис. 3.6 относится к ИИ/ML-проекту, а какая является подготовкой к нему, остается открытым. Отсутствие общепринятой точки зрения на этот вопрос — это одна из причин того, что разные аналитики по-разному оценивают экосистему компаний, создающих ИИ-решения, и по-разному оценивают объем рынка ИИ.
Сравнение рис. 3.4 и рис. 3.6 наглядно показывает, что набор задач, которые необходимо решить при создании ИИ-проекта, может рассматриваться как в узком, так и в широком смысле.
При этом очевидно, что, трактуя понятие ИИ-проект в широком смысле, мы должны рассматривать не только задачи, решаемые в рамках основных этапов, показанных на рис. 3.6, но также и многие дополнительные, которые, например, иллюстрирует рис. 3.7.
На данном рисунке показано, что разработчики ИИ-проекта должны обеспечить наличие оптимальной ИТ-инфраструктуры (аппаратного и программного обеспечения, которое наиболее эффективно отрабатывает нагрузки, типичные для ИИ). На рисунке 3.7 отмечены специализированные процессоры GPU, TPU, нейропроцессоры и т. п., о которых речь пойдет далее в этой лекции. Необходимо обеспечить безопасность и надежность создаваемого решения, его интерпретируемость, предусмотреть отсутствие предвзятости, нарушения норм этики и т. п. Каждая из этих задач подразумевает наличие отдельной профессиональной экспертизы и соответствующих типов компаний, оказывающих перечисленные сервисы.
Рис. 3.7. Типовая архитектура ИИ-ML-проекта. Источник: Artificial Intelligence Short History, Present Developments, and Future Outlook — Final Report — 2021-04-16
Заметим также, что понятие «типовой проект» зависит от масштаба внедрения, от размера компании, от ее зрелости с точки зрения внедрения ИИ-решений, от того, какой есть опыт в организации по выполнению подобного рода проектов (внедряет компания проект своими силами или ориентируется на аутсорсинг).
Выше мы рассмотрели логику построения отдельного ИИ-проекта. Для того чтобы не просто реализовать единичный ИИ-проект, а внедрить практику применения ИИ в обработке данных на предприятии, нужны определенные организационные меры, в ряде случаев требующие привлечения сторонних организаций, которые помогут выработать стратегию внедрения технологий ИИ, выбрать необходимый инструментарий, проработают варианты построения необходимой инфраструктуры, помогут эти решения построить и поддерживать.
На разных этапах построения ИИ-решений на предприятии решаются разные задачи, требующие привлечения компаний с разными компетенциями. В таблице 3.1 показаны основные составляющие, необходимые для внедрения ИИ в организации на разных этапах зрелости построенной ИИ-инфраструктуры.
Мырассмотрелирядсхем,поясняющих,какиетипызадачвозникают при построении ИИ-решений. Это позволяет понять, какие ресурсы нужны для построения подобного рода проектов и какие компании могут привлекаться со стороны рынка для реализации ИИ-проектов. Это позволяет говорить о том, какая экосистема поставщиков необходима для построения ИИ-проекта — консультанты, поставщики данных, поставщики программного и аппаратного обеспечения, системные интеграторы для построения внутренней инфраструктуры, поставщики сервисов из облака и т. п.
Заметим, что понятие «типовой ИИ-проект» в той форме, как его рассматривают на рис. 3.1, 3.4, дает неполное впечатление об экосистеме компаний, занятых в создании ИИ-решений.
Действительно, ИИ-компаниями называют также и научные организации, занятые разработкой теоретических вопросов (например, проект на стыке изучения нейробиологии и ИИ или проект по созданию новых архитектур, ведущих к созданию сильного ИИ), и аналитические компании, занятые консалтингом в области построения ИИ-решений, и компании, занятые внедрением ИИ-технологий в те или иные программные приложения, и компании, занятые в области разработки умной робототехники, созданием программных платформ для разработки ИИ-решений, разработкой, созданием приложений с использованием ИИ для нужд разных отраслей, перечень легко продолжить. В широком смысле большинство компаний, занятых в подобных проектах, могут рассматриваться как участники эко-системы по созданию ИИ.
Мы очертили большой круг задач и компаний, их выполняющих. Естественно, существуют сложности оценки вклада отдельных компаний в ИИ-рынок, и перед аналитиками неизбежно возникает задача выработки критерия отнесения последних к ИИ-компаниям и ответа на вопрос — какие компании должны быть отнесены к экосистеме ИИ, а какие фирмы в этот перечень включаться не должны. И, к сожалению, разные аналитики решают эти вопросы по-разному. Как это делают ведущие аналитические агентства, расскажем в следующем разделе.
Для понимания феномена искусственного интеллекта можно подойти к явлению с разных сторон. Выше мы кратко рассмотрели некоторые аспекты развития технологий, составляющих основу ИИ. В данной лекции постараемся ответить на другой вопрос. Как данные технологии используются в бизнесе, какие продукты создаются на основе ИИ, какие компании и ресурсы для этого требуются, в каких индустриях ИИ дает наибольшую отдачу, как ИИ влияет на успешность отдельных компаний, отраслей и целых стран?
Бизнес — это та сила, которая в существенной мере является стимулом и целью развития технологий, анализ бизнеса позволяет лучше понять перспективы и траекторию развития техники. Поэтому развитие ИИ невозможно рассмотреть не обратившись к теме бизнеса на его основе. Для этого нужно ответить на массу вопросов. Какие формируются рынки, ассоциированные с ИИ? Из какой совокупности сегментов состоит ИИ-рынок? Какие компании его развивают? Какие факторы стимулируют развитие этого рынка и какие тормозят? Какие направления развиваются быстрее? В какие направления более целесообразно вкладывать средства? Какие компании, отрасли, страны в большей степени преуспели в создании систем ИИ, и как их можно ранжировать по этому показателю? Это далеко не полный перечень вопросов, которые аналитики пытаются изучать, чтобы описать развитие ИИ с точки зрения бизнеса.
Многие аналитические компании оперируют понятием «рынок ИИ», хотя единой точки зрения на это понятие нет. ИИ-рынок рассчитывается на основе совокупности ИИ-проектов. Поэтому прежде, чем обсуждать понятие рынок ИИ, давайте поговорим о жизненном цикле ИИ-проектов.
Рассмотрим, какие существуют проекты по построению ИИ, какие игроки в подобных проектах задействованы, каковы их роли.
Экосистема компаний, участвующих в создании ИИ-решений
В данном разделе речь пойдет о типах компаний, которые участвуют в бизнесе по построению ИИ-решений. Большинство этих компаний можно классифицировать по двум принципам. Первый — это классификация по этапам жизненного цикла типового ИИ-проекта (от компаний, задействованных на этапе планирования проекта, до тех, кто внедряет и обслуживает ИИ-модели). Второй — по принадлежности к уровню технологического стека (от поставщиков специализированного железа до поставщиков отраслевых приложений).
Начнем с типового проекта в области ИИ и рассмотрим стадии его жизненного цикла, а также ответим на вопрос — какие компании участвуют в создании такого рода проектов.
Типовой ИИ-проект, его этапы и разработчики
Несмотря на то, что ИИ — это термин многогранный и вариантов ИИ-проектов может быть множество (об этом пойдет речь позднее в данной лекции), тем не менее существует понятие типового ИИ-проекта и жизненного цикла типового ИИ-проекта.
Заметим, что в самом первом приближении о жизненном цикле ИИ-проекта мы уже начали разговор на рис. 1.30, говоря об этапах обучения нейронной сети и применения готовой модели. В данной лекции рассмотрим стадии жизненного цикла более подробно.
Согласно трактовке специалистов Labelyourdata, типовой ИИ-проект в общем случае включает три стадии — «планирование и сбор данных», «разработка и обучение» и «развертывание и обслуживание модели» (рис. 3.1).
Рис. 3.1. Ключевые этапы жизненного цикла типового ИИ-ML-проекта. Источник: адаптировано по материалам Labelyourdata.com
Этап планирования проекта и сбора данных
В концепции рис. 3.1 проект начинается с формулировки проблемы и бизнес-анализа проекта. На этих этапах необходимо дать ответ на вопрос — какая решается бизнес-задача, обосновать целесообразность применения методов машинного обучения, оценить и спланировать необходимые кадровые и инфраструктурные ресурсы.
Примерный список вопросов, на которые необходимо дать ответ при проведении бизнес-анализа проекта, представлен на рис. 3.2.
Заметим, что далеко не все ИИ-проекты являются успешными. И именно на этапе планирования важно оценить риски и причины, которые могут затормозить внедрение ИИ на конкретном предприятии.
Полезно изучить отраслевой опыт, обратиться к консалтинговым компаниям, проанализировать опросы специалистов, указывающих на типичные проблемы при внедрении ИИ-проектов. Результаты одного из таких опросов представлены на рис. 3.3. Интересно отметить, что в рассматриваемом опросе респонденты в качестве основных барьеров на первом месте отмечают не отсутствие данных или проблемы с их качеством (о важности этого аспекта говорят все аналитики по ИИ), а наличие культурных и организационных барьеров при внедрении ИИ.
Данные других опросов свидетельствуют также о таких распространенных барьерах на пути реализации ИИ-проектов как трудности в приобретении профильных навыков и знаний, связанных с ИИ, проблемы, связанные с конкуренцией ИИ-проектов с другими проектами в компании, сложности в решении вопросов обеспечения безопасности и защиты систем на базе ИИ, отсутствие лидерства и поддержки инициатив по ИИ со стороны руководства.
Без надлежащего планирования и анализа рассмотренных выше рисков трудно рассчитывать на успех проекта.
Следующий этап на рис. 3.1 — это этап подготовки данных, он включает получение сырых данных и их обработку для создания датасета. Иногда могут использоваться готовые датасеты для обучения модели.
Говоря о подготовке данных, обычно различают такие этапы, как очистка данных (обработка пропущенных значений, обработка выбросов и дубликатов), преобразование (масштабирование, стандартизация, изменение частоты дискретизации), отбор признаков включая понижение размерности и обработку сильно коррелированных признаков), извлечение признаков (в том числе извлечение признаков из текстовых данных, из даты и времени), разметка (о которой поговорим чуть подробнее).
Особенно хотелось бы уделить внимание процессу разметки данных. Этот процесс может осуществляться вручную сотрудниками компании либо отдан на аутсорсинг таким сервисам, как, например, Яндекс.Толока. Еще более эффективным может оказаться внедрение операций разметки данных в бизнес-процессы компании, чтобы сотрудники неявным образом были вовлечены в разметку в процессе своих трудовых обязанностей. В некоторых случаях для сокращения потребности в размеченных данных используют генерацию таких данных на основе 3D-моделей или приемы transfer learning, когда используется обучение на больших имеющихся в открытом доступе датасетах, с последующим дообучением модели на данных предприятия.
Подготовка данных во многих случаях требует специальных знаний для определения того, какие характеристики данных являются критичными. Как уже было отмечено ранее, самым трудоемким этапом является сбор данных, их очистка и разметка.
Разработка модели и обучение
Как только получен первый датасет, можно приступать к разработке моделей машинного обучения. Этап включает в себя работы по проектированию метрик качества работы моделей, созданию и обучению моделей машинного обучения (настройку параметров моделей), настройку гиперпараметров моделей, сравнение разных моделей друг с другом по качеству.
Развертывание и мониторинг
Модели ИИ должны быть развернуты на оборудовании, оптимизированном под ИИ-нагрузку. Это могут быть внутренние ресурсы предприятия, периферийные узлы или облачная инфраструктура. При этом следует отметить, что обычно специальное аппаратное обеспечение требуется только для обучения, но не для применения. Бывают, конечно, требовательные к ресурсам модели, но это скорее редкость. Особенно в промышленности.
После развертывания модели требуется ее поддержка в условиях производства, где модель взаимодействует с реальными наборами данных. Часть проблем выявляется именно на стадии использования модели. Часто обученные модели деградируют во времени, поскольку найденные в исторических данных закономерности устаревают. Здесь нужно упомянуть такое понятие как Data Drift — ситуация, при которой из-за каких то внешних причин постепенно меняется характер входных данных модели, из-за чего снижаютсяее эффективность и точность прогнозирования. Соответственно, отдельное внимание требуется для обнаружения подобных проблем и их устранения на основе периодического дообучения модели на более свежих наборах данных.
Распределение ресурсов и времени в типовом ИИ-проекте
Для того чтобы представить трудоемкость отдельных этапов типового ИИ-проекта, полезно обратиться к статистическим данным. Подобную статистику можно найти в публикациях аналитической компании Cognilytica, специализирующейся в области изучения ИИ-рынка (см. рис. 3.4).
Как видно из сравнения рисунков (рис. 3.1 — рис. 3.4), пока не существует общепринятой таксономии в описании этапов ИИ-проектов, разные аналитики используют свое деление и наименования, при этом нетрудно наложить одну терминологию на другую.
В отличие от схемы Labelyourdata (рис. 3.1), Cognilytica не рассматривает этап «формулирования проблемы» и «бизнес-анализа проекта», а начинает цикл типового проекта непосредственно со стадии анализа и сбора данных (рис. 3.4).
Рис. 3.4. Соотношение временных затрат на выполнение ключевых этапов типового ИИ-ML-проекта. Источник: Cognilytica
Первым шагом (согласно рис. 3.4) рассматривается процесс идентификации данных, который, как показано на рисунке, занимает около 5%. На данном этапе идет определение источников данных, которые будут использоваться для обучения разрабатываемой модели.
Говоря о задачах, связанных с распознаванием изображений, можно использовать разные источники. Если область распознавания не является узкоспециализированной, то можно воспользоваться свободно распространяемыми общедоступными датасетами, что позволяет экономить деньги и время.
Если готовых датасетов для рассматриваемой задачи нет — создаются собственные, которые (в случае если речь идет о распознавании изображений) могут быть получены с помощью веб-скреппинга, с помощью фотоаппаратов, мобильных телефонов, камеры видео-наблюдения и т. д. Существуют специализированные компании, которые профессионально выполняют подобные работы на коммерческой основе.
Следующий этап, который занимает около 10%, — это агрегация данных. Поскольку данные поступают из разных источников или находятся в разных местах хранения, то на этапе агрегации, перед тем как с данными можно будет производить какие-то действия, они должны быть объединены в одной базе данных. При этом производится необходимое переформатирование данных, приведение их к единому виду. Работа достаточно рутинная, но необходимая, поскольку требуется разобраться, где какие данные находятся, в каком формате и что необходимо выбрать.
Этап очистки — один из наиболее длительных — 25%. Важность данного этапа характеризует популярная фраза «garbage in, garbage out» (мусор на входе — мусор на выходе). В данных могут содержаться ошибки. Например, пропуски значений, ошибочные записи, выбросы, несогласованные данные. Очистка данных подразумевает выявление и удаление ошибок и несоответствий в данных с целью улучшения качества датасета.
Разметка данных — это процесс идентификации необработанных данных (изображений, текстовых файлов, видео и т. д.) и добавления меток, на основе которых модель могла бы обучаться в терминах задачи обучения с учителем. Данный этап также длительный и требует порядка 25% времени. В рассмотренных нами в первой лекции примерах речь шла про метки, указывающие, изображена ли на фотографии кошка или собака, метки могут указывать, есть ли на рентгеновском снимке опухоль и где она расположена, есть ли на фотографии шлифа трещина, присутствует ли в аудиозаписи определенное слово и так далее. Разметка данных — это трудоемкий процесс. Массив данных может содержать десятки тысяч сэмплов, и вручную произвести процедуру разметки порой просто невозможно.
Проекты, связанные с распознаванием объектов или изображений, в том числе в приложениях для беспилотного транспорта, становятся все более распространенными рабочими нагрузками и требуют все больше усилий по разметке данных. Для выполнения этой работы все чаще используется автоматизация, опять-таки основанная на машинном обучении. По данным компании Cognilytica, к 2024 году более 30% текущих задач по разметке данных будут автоматизированы или выполняться системами искусственного интеллекта. На рынке существуют специализированные программы для разметки данных, позволяющие осуществлять детекцию и сегментацию объектов, классифицировать документы.
Во многих проектах процесс создания обучающих данных — это длительная и затратная процедура. Часто для решения задач подготовки данных имеет смысл обратиться к профильным компаниям, имеющим средства автоматизации, играющие решающее значение для соблюдения сроков проекта.
Для того чтобы сделать разметку более эффективной, используют модели машинного обучения для автоматической маркировки данных, которые сначала обучаются на подмножестве исходных данных, размеченных человеком, а потом автоматически предсказывают метки для новых данных (рис. 3.5).
Рис. 3.5. Схема автоматической разметки данных.
В тех случаях, когда модель разметки менее уверена в своих результатах, она передает данные человеку. Созданные человеком метки затем возвращаются обратно в модель разметки, чтобы она могла учиться и улучшать свои возможности по автоматической разметке следующего набора исходных данных. Со временем модель позволяет автоматически размечать все больше и больше данных.
На схеме использован термин «Активное обучение» — это вариант машинного обучения, в котором алгоритм обучения может запрашивать метки новых точек данных с желаемыми результатами.
Количество данных, на которых обучается модель, — это важный фактор. Обучение модели на большом количестве хорошо размеченных данных — это основа для получения точных прогнозов.
Иногда естественно полученных данных бывает недостаточно. Тогда можно сгенерировать новые синтетические данные, которые бы были похожи на исходные с точки зрения решаемой задачи. Если объем данных для обучения ограничен, их можно дополнить возможными вариациями, которые могут встретиться в реальной жизни путем генерации этих вариаций искусственно. Процесс создания дополнительных обучающих данных из имеющихся путем их модификации называется аугментацией данных (data augmentation).
Например, если нам необходимо увеличить в размере датасет с изображениями кошек и собак, то его можно увеличить вдвое просто отзеркалив каждую фотографию. С точки зрения алгоритма машинного обучения, мы получим попиксельно другие изображения, но с тем же самым смыслом. Другими популярными примерами преобразований изображений являются: поворот изображения на некоторый угол, добавление шума, смещение относительно центра, изменение угла обзора, преобразования в различные цветовые схемы, размытие и другие приемы. Применение комбинаций этих преобразований позволяет увеличивать размеры датасетов в десятки раз, однако не следует ожидать от данной процедуры такого же роста качества, как если бы использовались дополнительные естественные данные.
Согласно оценкам компании Cognilytica, этап «аугментация данных» составляет около 15% от рассматриваемого цикла.
После того как данные приведены в пригодный для использования вид, разработчики переходят к разработке ML-алгоритма (на данный этап на рис. 3.4 отнесено всего 3% времени), далее следуют обучение (10%) и этап настройки (5%).
Мы не будем разделять разработку алгоритма, обучение и настройку, поскольку они связаны между собой.
В большинстве случаев на данных этапах процедура сводится к процессу выбора алгоритма, исходя из цели обучения и требований к данным. Разработка принципиально новых моделей и архитектур, как правило, выходит за рамки коммерческого применения ИИ и проводится только большими компаниями, имеющими свои лаборатории ИИ.
Как правило, на этой стадии разработчики пробуют несколько алгоритмов и выбирают лучший по результатам. Это может быть выбор между классическими алгоритмами и нейросетевым подходом или выбор подходящей архитектуры нейросети. На этом этапе происходит настройка гиперпараметров, сравнивается качество работы различных алгоритмов на одних и тех же данных.
Этот этап требует выбора и применения методов моделирования, обучения модели, установки и настройки гиперпараметров модели.
На данной стадии также возможно привлечение внешних компаний, которые оказывают услуги по разработке моделей машинного обучения.
Алгоритмы машинного обучения учатся на примерах, и чем больше качественных данных предоставляется алгоритму, тем лучше модель будет находить закономерности в данных. Одна из проблем, которой важно избежать, — это так называемое переобучение (overfitting) — ситуация, когда модель может делать точные прогнозы для данных, на которых она была обучена, но не способна обобщать данные, с которыми она раньше не сталкивалась (которые не участвовали в процессе обучения).
Чтобы избежать подобной ситуации, данные разделяют на три части (обучающие, проверочные и тестовые). Данные для обучения модели — это большая часть данных, которые используются для обучения моделей.
Валидационные данные — данные, которые модель не видела. Эти данные служат для настройки модели — для подгонки гиперпараметров. Тестовые данные — это данные, которые не были предоставлены модели ни во время обучения, ни во время настройки и используются для оценки и сравнения настроенных моделей. Эти данные используются для проверки, насколько успешно происходит процесс обобщения модели на тех данных, которые ей ранее не были показаны.
Финальная стадия — это операционализация, которая, согласно рис. 3.4, занимает всего лишь 2%. Даже после того, как модель обучена, она не готова к внедрению, пока не будет пройдена стадия операционализации, то есть модель не будет развернута в бизнес-приложении, не начнет анализировать данные и делать прогнозы.
Операционализация подразумевает выполнение ряда задач, включая выбор варианта развертывания и обслуживания модели машинного обучения, выбор приемлемого диапазона вероятности для определения прогнозов, расчет потребной вычислительной мощности для модели, оценку модели для проверки правильности ее адаптации к реальным данным, мониторинг производительности модели, анализ результатов и ошибок модели и ее повторное обучение при необходимости.
Если дата-сайнс-команды отвечают за разработку и обучение модели, то ввод в эксплуатацию моделей машинного обучения обычно осуществляется MLOps-командами и инженерами заказчика.
На рис. 3.1 жизненный цикл машинного обучения представлен в виде последовательности действий с одним итерационным циклом на стадии разработки и обучения. Однако даже на стадии операционализации мониторинг модели может показывать ненадлежащие результаты и возвращать разработчиков на более ранние стадии для того, чтобы попробовать различные модели или даже обновить набор обучающих данных. Фактически любой из этапов жизненного цикла может вернуть разработку проекта на более ранний этап.
Мы уже отметили выше, что не существует единой точки зрения по поводу наименований этапов типового ИИ-проекта и стандартного перечня работ на каждом этапе. Например, авторы рис. 3.6 перечисляют примерно те же этапы, что и на рис. 3.1 и 3.4, но используют несколько отличный набор терминов, а также упоминают ряд дополнительных пунктов, связанных со сбором, хранением и очисткой данных.
Сравнение рисунков 3.1, 3.4 и рис. 3.6 позволяет еще раз затронуть вопрос таксономии. На рис. 3.1 и 3.4 речь шла о типовом ИИ/ ML-проекте, где все этапы трактуются как часть ИИ-проекта, а на рис. 3.6 лишь только самый верхний слой пирамиды отнесен к ИИ, в то время как все остальные этапы обозначены как подготовительные. По сути, вопрос о том, какая часть пирамиды рис. 3.6 относится к ИИ/ML-проекту, а какая является подготовкой к нему, остается открытым. Отсутствие общепринятой точки зрения на этот вопрос — это одна из причин того, что разные аналитики по-разному оценивают экосистему компаний, создающих ИИ-решения, и по-разному оценивают объем рынка ИИ.
Сравнение рис. 3.4 и рис. 3.6 наглядно показывает, что набор задач, которые необходимо решить при создании ИИ-проекта, может рассматриваться как в узком, так и в широком смысле.
При этом очевидно, что, трактуя понятие ИИ-проект в широком смысле, мы должны рассматривать не только задачи, решаемые в рамках основных этапов, показанных на рис. 3.6, но также и многие дополнительные, которые, например, иллюстрирует рис. 3.7.
На данном рисунке показано, что разработчики ИИ-проекта должны обеспечить наличие оптимальной ИТ-инфраструктуры (аппаратного и программного обеспечения, которое наиболее эффективно отрабатывает нагрузки, типичные для ИИ). На рисунке 3.7 отмечены специализированные процессоры GPU, TPU, нейропроцессоры и т. п., о которых речь пойдет далее в этой лекции. Необходимо обеспечить безопасность и надежность создаваемого решения, его интерпретируемость, предусмотреть отсутствие предвзятости, нарушения норм этики и т. п. Каждая из этих задач подразумевает наличие отдельной профессиональной экспертизы и соответствующих типов компаний, оказывающих перечисленные сервисы.
Рис. 3.7. Типовая архитектура ИИ-ML-проекта. Источник: Artificial Intelligence Short History, Present Developments, and Future Outlook — Final Report — 2021-04-16
Заметим также, что понятие «типовой проект» зависит от масштаба внедрения, от размера компании, от ее зрелости с точки зрения внедрения ИИ-решений, от того, какой есть опыт в организации по выполнению подобного рода проектов (внедряет компания проект своими силами или ориентируется на аутсорсинг).
Выше мы рассмотрели логику построения отдельного ИИ-проекта. Для того чтобы не просто реализовать единичный ИИ-проект, а внедрить практику применения ИИ в обработке данных на предприятии, нужны определенные организационные меры, в ряде случаев требующие привлечения сторонних организаций, которые помогут выработать стратегию внедрения технологий ИИ, выбрать необходимый инструментарий, проработают варианты построения необходимой инфраструктуры, помогут эти решения построить и поддерживать.
На разных этапах построения ИИ-решений на предприятии решаются разные задачи, требующие привлечения компаний с разными компетенциями. В таблице 3.1 показаны основные составляющие, необходимые для внедрения ИИ в организации на разных этапах зрелости построенной ИИ-инфраструктуры.
Мырассмотрелирядсхем,поясняющих,какиетипызадачвозникают при построении ИИ-решений. Это позволяет понять, какие ресурсы нужны для построения подобного рода проектов и какие компании могут привлекаться со стороны рынка для реализации ИИ-проектов. Это позволяет говорить о том, какая экосистема поставщиков необходима для построения ИИ-проекта — консультанты, поставщики данных, поставщики программного и аппаратного обеспечения, системные интеграторы для построения внутренней инфраструктуры, поставщики сервисов из облака и т. п.
Заметим, что понятие «типовой ИИ-проект» в той форме, как его рассматривают на рис. 3.1, 3.4, дает неполное впечатление об экосистеме компаний, занятых в создании ИИ-решений.
Действительно, ИИ-компаниями называют также и научные организации, занятые разработкой теоретических вопросов (например, проект на стыке изучения нейробиологии и ИИ или проект по созданию новых архитектур, ведущих к созданию сильного ИИ), и аналитические компании, занятые консалтингом в области построения ИИ-решений, и компании, занятые внедрением ИИ-технологий в те или иные программные приложения, и компании, занятые в области разработки умной робототехники, созданием программных платформ для разработки ИИ-решений, разработкой, созданием приложений с использованием ИИ для нужд разных отраслей, перечень легко продолжить. В широком смысле большинство компаний, занятых в подобных проектах, могут рассматриваться как участники эко-системы по созданию ИИ.
Мы очертили большой круг задач и компаний, их выполняющих. Естественно, существуют сложности оценки вклада отдельных компаний в ИИ-рынок, и перед аналитиками неизбежно возникает задача выработки критерия отнесения последних к ИИ-компаниям и ответа на вопрос — какие компании должны быть отнесены к экосистеме ИИ, а какие фирмы в этот перечень включаться не должны. И, к сожалению, разные аналитики решают эти вопросы по-разному. Как это делают ведущие аналитические агентства, расскажем в следующем разделе.