Честное руководство по созданию вашего первого проекта искусственного интеллекта в профессиональной среде без эгоизма.

После опубликованной на прошлой неделе статьи Использование глубокого обучения для объяснения сумасшедшего ралли фондового рынка в 2020 году я получил много личных запросов от друзей, которые хотели получить 101-уровневую информацию об использовании глубокого обучения в бизнесе и о том, как именно пойти об этом в профессиональной среде. Кроме того, прошлой ночью во время постпрандиальной прогулки с моим зятем я подслушал еще одну группу из трех миллениалов в Бангалоре, обсуждающих, как они планируют потратить рупий. 350 000 (около 5000 долларов или 6-месячная зарплата для среднего программиста) для изучения «Науки о данных».

Эти два события заставили меня задуматься о мифах и реальности науки о данных, машинного обучения и глубокого обучения. В сегодняшней шумихе так много решений, которые представляют собой старую добрую автоматизацию Excel, классифицируются как «роботизированная автоматизация». Сколько простых линейных регрессий, которые можно было бы выполнить с помощью Excel, выполняются с использованием чрезмерно сложной реализации Tensor Flow («AI») со стохастическим градиентным спуском. К сожалению, как показал крах оценки стартапов, большинство людей не слишком долго обманываются нереализованным потенциалом ИИ. Не у всех компаний есть ресурсы Google, Amazon и Microsoft для создания сверхмощного ИИ. Проекты проще с более простыми целями.

Итак, вот небольшое руководство, состоящее из 2 частей, о том, как вы могли бы реализовать свой первый проект Deep Learning / AI для своей компании. Цель части 1 — демистифицировать проекты ИИ и показать реализацию в форме POC. Во второй части мы расширим это, чтобы создать полнофункциональный производственный ИИ. к концу этого блога вы должны понять, что вам не нужно иметь докторскую степень или стать специалистом по данным в высокооплачиваемой онлайн-академии, чтобы хорошо реализовать проект ИИ.

Поймите заявление о цели, данное начальником, и преобразуйте его в свою цель

«Создайте решение на основе искусственного интеллекта, которое позволит нам анализировать отзывы клиентов»

Это был однострочный мандат для вас. Будет здорово расширить его, чтобы полностью понять и осмыслить то, что он хочет. Я бы переписал цель следующим образом:

«Создать решение на основе ИИ, которое позволит нам анализировать отзывы клиентов, которые мы получаем на нашем онлайн-канале, а также о посещениях наших магазинов и социальных сетей»

Ваш первый шаг должен заключаться в том, чтобы понять, чего хочет ваш босс. «Понимание» означает — пожалуйста, предоставьте хороший анализ бизнеса, которого я еще не знаю. Эти открытые вопросы обычно заканчиваются провалом проекта. ИИ не сможет вам помочь, если вы не знаете, что вам нужно делать.

На индивидуальном уровне, по моему опыту, типичными приложениями глубокого обучения и ИИ были:

A. Решите бизнес-проблему, чтобы использовать ИИ, чтобы дать вашему работодателю преимущество

B. Получите известность в LinkedIn и Twitter и наслаждайтесь славой

C. Получите следующую работу с более высокой зарплатой, чтобы ваша девушка любила вас больше

D. Получите дорогую машину с графическим процессором, чтобы похвастаться перед друзьями

Вы должны решить, что из этого ваше.

Понимать временные рамки и получать бай-ины

Если вы делаете проект ИИ для решения бизнес-задачи, то предположите, что на создание высококачественной производственной системы уйдет 5–6 месяцев. Как правило, это не должно быть вашей первой попыткой глубокого обучения только потому, что специалист по обработке и анализу данных может увлечь вас исключительно долгой поездкой. После того, как вы выполнили пару проектов POC (доказательство концепции), поняли основные компоненты проекта ИИ в производстве, хорошей идеей будет заняться полноценным проектом ИИ/глубокого обучения.

Если вы выполняете проект по всем остальным причинам (от B до D), вы должны стремиться завершить проект в течение 1-2 месяцев с непроизводственной системой оценок, которая продемонстрирует функцию, которая впоследствии может быть преобразована в более крупный проект. . Это то, что я обычно называю проектами POC, и во время блокировки я сделал почти 20 из них «на всякий случай». Это для хвастовства.

Соберите команду и аппаратные ресурсы

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

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

2. Программист HTML5/JavaScript. Это один из навыков, который всегда будет требоваться для любого проекта — с искусственным интеллектом или без него. Он или Она — человек, который создаст ту часть системы, которую увидит ваш начальник и внешний мир. Убедитесь, что это здорово.

3. Python/Django Coder — я всегда рекомендую использовать Python/Django, так как он имеет огромную базу доступных ресурсов (как библиотек, так и программистов), а так как многие библиотеки Python написаны на C, он обеспечивает достойную производительность со стабильностью С.

4. Разработчик IoT (если ваш проект взаимодействует с некоторым оборудованием IoT)

5. AI/ML / специалист по данным

6. Безопасность данных (иначе вы можете просто внедрить решение на AWS, GCloud или Azure, если это разрешено политикой вашей компании, и покончить с этой ролью)

Вы заметите, что я не включил в проектную команду специалиста по UI/UX. То есть по 2 причинам.

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

Б. Если они действительно хороши, лучше нанять их на несколько дней и получить максимальную отдачу от их навыков.

Управление проектами

Теперь у вас есть цель проекта, бай-ин и команда, которая вам нужна. Затем вам нужно привести команду в соответствие с вами, вашим начальством и целями вашей компании. Это самая важная первая встреча, которая у вас, вероятно, будет. Вам нужно очень четко объяснить, почему команда собралась вместе и каковы их роли. Как правило, AI/Data Scientist выступает в роли примадонны. В типичных утверждениях могут отсутствовать «глубокое обучение», «кластеризация k-средних», «перенос обучения», «оптимизатор Адама», «функции активации» и т. д. В большинстве случаев они ничего не значат в реальном мире. Это похоже на бетономешалку на стройке, поражающую людей знанием формулы гипса.

Вот шаблон для первой презентации:

Слайд 1. Представьте проблему и спонсора. (Объяснить проблему, лично спонсора и важность для него)

Слайд 2. Представьте цель проектной группы (будь то POC или производственный проект)

Слайд 3. Расскажите о роли каждого члена команды (не забывайте о важности той части проекта, которая не связана с искусственным интеллектом)

Слайд 4. Представьте ожидаемые сроки

Часть 5 (самая важная). Объясните, что поставлено на карту — в случае неудачи

Остальные слайды могут соответствовать политике вашей компании.

Теория и ракетостроение

До сих пор мы только говорили о создании проекта и обеспечении этой основы для разработки успешного проекта ИИ.

Напомним: в примере, который мы разрабатывали, цель проекта состоит в том, чтобы:

Создать решение на основе ИИ, которое позволит нам анализировать отзывы клиентов, которые мы получаем на нашем онлайн-канале, а также о посещениях наших магазинов и социальных сетей

Теперь мы вносим часть проекта, связанную с искусственным интеллектом. Как мы внедряем ИИ и глубокое обучение. Во-первых, мы построим проект как доказательство концепции проекта, который должен быть завершен в течение 1-2 месяцев. Далее мы расширим его, чтобы сделать его более профессиональным. :

Проект проверки концепции (POC):

Нам необходимо создать анализатор отзывов клиентов, который будет использовать информацию из наших онлайн-каналов, а также из социальных сетей, чтобы давать рекомендации руководству о встрече с клиентами до запуска вашего продукта. Большую часть из них можно создать путем копирования и вставки из Интернета. В этом нет ничего плохого. Это буквально «Перенос обучения» в действии. :) Пожалуйста, не забывайте указывать имена людей, на чьи гитхабы вы совершаете набеги.

A. Сбор обучающих данных из чат-ботов:

Для начала у вас есть доступ к сообщениям в чат-боте, созданном вашей компанией. Данные сами по себе практически бесполезны. Он не помечен и не сопоставлен с выходными данными. Ваша первая задача будет заключаться в том, чтобы сделать данные пригодными для использования.

B. Сбор данных из каналов социальных сетей

Twitter, Instagram, Facebook и т. д. предоставляют API для извлечения данных из своих каналов социальных сетей. Хотя заманчиво использовать эти данные, обычно данные могут быть ошеломляющими. Итак, главное — понять, чего вы хотите, и, соответственно, ограничить область исследования. https://developer.twitter.com/en/docs/tweets/search/api-reference

C. Создайте профиль клиента

Используйте кластеризацию K-средних для кластеризации ответов клиентов в соответствии с параметрами, определенными во время построения данных. https://www.geeksforgeeks.org/k-means-clustering-introduction/

D. Создайте аналитику настроений

Используйте NLP от AWS для токенизированных данных, собранных для проведения анализа настроений. https://aws.amazon.com/getting-started/hands-on/analyze-sentiment-comprehend/

E. Извлеките намерение, построив рекуррентную нейронную сеть на данных чат-бота. https://towardsdatascience.com/personality-for-your-chatbot-with-recurrent-neural-networks-2038f7f34636

F. Создайте хороший уровень представления выходных данных. Это может быть сделанная на заказ HTML-страница, созданная специально для демонстрации проделанной работы. Слои представления объектов DOM в стиле D3 традиционно выглядели впечатляюще. https://d3js.org/

Временные рамки для завершения этого обычно составляют 1–2 месяца от начала до конца. Из-за характера вырезания и вставки в этой реализации к концу у вас будет проект, выполненный для конкретного варианта использования. Но это не будет чем-то, что может изменить правила игры в долгосрочной перспективе. Далее мы рассмотрим, как превратить эти краткосрочные проекты типа POC в полностью достойную систему.

Производственный проект

Производственная система — это в основном все вышеперечисленное, выполненное гораздо более стабильно, с вашим собственным кодом для написания более глубокой и лучшей системы. Это будет подробно рассмотрено во второй части этого блога вместе с реализацией. Затем мы завершим это календарем, который я составил, основываясь на своем опыте того, как вы наращиваете свой набор навыков в области ИИ, не посещая дорогие онлайн-или офлайн-курсы. Будьте готовы к тому, что ваша кривая обучения будет похожа на кривую Даннинга-Крюгера. Наслаждаться!!