Зачастую получаю запросы в формате: «Хочу чтобы система сама определяла лучший гардероб для пользователя» - «Хочу попробовать внедрить компьютерное зрения за тем чтобы следить за моими сотрудникам» - «…приложение само должно подставлять мебель в комнате» и так далее…
Начнем с того что определение искусственного интеллекта не совсем совпадает с представлениям пользователей, есть некий образ - волшебный магический ящик который должен решать все поставленные задачи. Со стороны своего опыта я бы дал другое определение искусственного интеллекта - это скорее набор подходов для решения конкретных задач в сферах: компьютерного зрения и генерации изображений, обработка естественных языков, аналитические модели определяющие закономерности с помощью заранее загруженных данных и специальных алгоритмов (Список не исчерпывающий можно углубиться, но в львиной доли случаев эти области комбинируются и реализуют новые исследовательские области)
Если по разработки web-приложений мы можем разбить техническое задание на составление работы серверной части приложения, где хранятся данные и преобразуются с помощью прямого человеческого вмешательства через интерфейсы (…нажатие тех или иных кнопок, заполнение форм и их выдачу…), то формат создания и применение искусственного интеллекта практически всегда сводится к выборку инструментариев, различных моделей где на выходе имеются не очевидные критерии того что модель приняла приемлемое решение для конечного пользователя.
![Гарантировать точность крайне сложно Гарантировать точность крайне сложно](https://habrastorage.org/getpro/habr/upload_files/c08/bf3/0df/c08bf30dffb739974fa446e81d6784f0.png)
Пример проработки гипотезы связанный с внедрением ИИ
В текущем примере не говорится об системах где критерии работоспособности системы жестко определенны и все сводится к подбору алгоритма который будет базироваться на математической модели где результат проверки работоспособности можно свести к выполнению математических действий в рамках одного или двух листов бумаги которые приведут к конкретным цифрам или метрикам.
Субъективный опыт пользователей практически всегда дает отпечаток на то что можно считать корректной работой той или иной модели. Подход который активно применяется в создании продуктов отходит от потребностей конечного пользователя, без учета тех или иных возможностей технологий (по моему мнению это краеугольным камнем который сводит применение искусственного интеллекта к тому что все делается долго, дорого и неблагодарно). Технологические возможности на текущем этапе должны так же влиять на пользовательский опыт. Возьмем сферу разработки виртуальных ассистентов (цифровая реплика оператора который закрывает человека на то или иное целевое действие). Есть понимание того что в контексте работы формируется конкретные сценарии продаж по которому ведется человек, но бывают и исключительные случаи работы с клиентами, где среднеуровневый оператор не владеет нужными данными для того чтобы решить конкретную проблему человека. Что в этом случае предпринимается? Клиент выводится на оператора следующего уровня который уже будет вести человека индивидуально.
Так же существует понимание того что более 90% запросов можно структурировать и подвести под ответы по некоторой штатной инструкции. В данной ситуации качественно снизить нагрузку могут и нейронные сети, где на каждый запрос пользователя формируется очень понятная линия поведения оператора без сложных интерпретаций результатов. Как пример классические сценарии продаж (расскажите о товаре и услуге и как приобрести товар) - все это поддается автоматизации. Как внедрить решение в данном случае? Определить контур основных сценариев продаж где формируется львиная доля запросов, запросы которые выходят области сценариев - переводить на операторов высшего уровня.
На данном этапе очень важно обозначить ограничения вашей модели и те зоны где система должна гарантировать результативность. Если в Вашем представлении не будет существовать данных представлений, то гарантировать что решение будет закрывать четко поставленные задачи будет находится под большими сомнениями. Предложенный подход будет оправдывать себя во всех сферах искусственного интеллекта.
![Если отойти на 2 метра от монитора и иметь не самое лучшее зрение, даже для человека возникнут трудности Если отойти на 2 метра от монитора и иметь не самое лучшее зрение, даже для человека возникнут трудности](https://habrastorage.org/getpro/habr/upload_files/d9b/8cb/864/d9b8cb864fc70d6107c88ad53ddf6d60.jpg)
Этапы реализации
Ограничивая области применимости вашего решения и определяя критерии того что конечное решение подходит под требования подходим к инструментарию.
Опять же обратимся к предыдущему примеру, в контексте работы с виртуальными ассистентами очевидная зона ИИ это обработка естественных языков. Данная зона на текущем этапе сводится к классификации текста, определение тональности, выделение ключевых выражений, сущностей. Существуют модели которые с некоторой точностью могут определить на сколько схожи те или иные предложения, существуют модели которые выделят в сообщениях некоторые ключевые сущности (имена, адреса, время и т.д), так же комбинируя модели которые будут группировать сообщения по определенному смыслу (похожести) и формировать зависимости между сообщениями - создавать контексты.
Модель формирования ответов оператора сводится:
Определение групп сообщений с некоторой точностью
Определить ключевые сущности в диалогах (имена, адреса и т.д)
Определение связок ответов на сообщения по контексту (то есть определить на сколько те или сообщения влияют на то какой ответ будет выдаваться рекомендательной системой)
Каждый из этих этапов работает с некоторой определенной точностью и сложив все ошибки - мы можем оценить на сколько в целом модель будет работать в конкретном случае.
Дальнейшее сопровождение и улучшение моделей
Рассмотрим тот вариант, где после применённых подходов был получен приемлемый результат для конечного пользователя, очевидно что каждую локальную модель можно улучшать, комбинировать подходы или рассматривать новые ветки технологий что предлагает научное сообщество. Организую некоторое ядро которое решает задачу хотя бы на базовом уровне - возможно прогнозировать улучшение отдельных элементов системы и понять как в целом решения будут влиять на всю систему в целом.
Выводы
По данному примеру хотелось сформировать общее понимание того как создаются решения на базе искусственного интеллекта. Общий формат с постановкой задач состоит из определения зон применимости решения, далее анализ текущего мирового опыта в смежных областях (компьютерное зрение, обработка естественных языков и т.д) - определение структуры решения разбивая задачи на интуитивно понятные подзадачи, в конце концов оценка работоспособности решения в боевом проекте.
![Общий контур создания решений ИИ Общий контур создания решений ИИ](https://habrastorage.org/getpro/habr/upload_files/aae/9e7/f72/aae9e7f72e0a2832f06df5877413215c.png)
Так же хотелось бы поделиться опытом формирования команд в сферах ИИ и организации процесса исследований и разработок (Research and development). Данную тематику предлагаю раскрыть в следующем блоке.