Итак, вы знаете, что вам нужно машинное обучение / разработка искусственного интеллекта. Почему бы просто не сделать это самому? Что ж, краткий ответ заключается в том, что у специалистов больше опыта, чем у специалистов широкого профиля, и поэтому они могут снизить ваши риски и усилия. Более длинный ответ - знать, где спрятаны фугасы и как выглядят хорошие требования. Я эксперт по машинному обучению и работаю по контракту в качестве консультанта с компаниями в США и Канаде. У меня также есть значительный опыт развития бизнеса. Обобщая уроки, которые я извлек из работы в поле, давайте поговорим о найме консультанта по ИИ.

Если ваш проект не финансируется, лучше всего попытаться сотрудничать с университетской лабораторией, чтобы получить первые результаты. Предположим для этой статьи, что ваш проект представляет собой стандартный случай внедрения ИИ в бизнесе для улучшения предложения основных продуктов. Следовательно, это « маленький R; big D » НИОКР. Некоторые проекты, особенно стартапы, имеют большой рейтинг; большой D », и это тема для другого раза. А пока давайте придерживаться предположения, что у вас есть команда и клиенты на сервере, и вы хотите добавить некоторые передовые возможности искусственного интеллекта.

Вы ищете консультанта по ИИ. Давайте теперь более конкретно о том, что искать. Вам нужен консультант, который больше, чем специалист по данным. Вам нужна инженерия. Проекты машинного обучения редко включают только часть науки о данных. Вам необходимо агрегировать данные и преобразовать их в правильный формат, чтобы ИИ мог учиться. Иногда проект включает оборудование, беспроводную связь и сеть. Это облако и Интернет вещей (IoT). Также полезно нанять консультанта, который понимает последствия ваших требований для бизнеса, вроде консультанта по вопросам управления. Вам нужен ресурс, который может рассказать о бюджетировании, планировании и архитектуре решения, зная, как выглядит масштабное развертывание машинного обучения. Также рекомендуется привлекать гранты везде, где вы можете, так как область машинного обучения является очень передовой, и ваши исследования и разработки должны соответствовать требованиям некоторых программ государственного финансирования (в Канаде это Mitacs, ВВЦ , НСЕРЭ и др. И т. Д.).

Еще один аспект найма консультанта для реализации вашей программы ИИ - это наращивание потенциала. Вы хотите встроить в свою компанию некоторую общую инфраструктуру, чтобы обеспечить возможность выполнения будущих проектов машинного обучения и привить знания в вашей команде (-ах) DevOps, чтобы поддерживать и расширять код, введенный консультантом (насколько это возможно / практично). Встраивание возможностей искусственного интеллекта в компанию может быть процессом управления программами и создания команды, так же как и программным / аппаратным проектом. Он часто включает заседания совета директоров, увязывающие эти цели с ключевыми показателями эффективности (KPI), и встречи с заинтересованными сторонами. Это разумная идея, чтобы во время разработки проекта руководитель (-ы), менеджер (-ы) по продукту и старший разработчик (-ы) находились в одной комнате. Я подготовил много предложений, пообщался с инвесторами и ключевыми лидерами мнений, представил продукт широкой аудитории. Нет двух одинаковых встреч. Вот почему хорошо иметь на вашей стороне специалиста, когда вы решите внедрить в своей компании ИИ.

Операции и большие данные

«Фортуна благоволит подготовленному уму» (Луи Пастер).

Спросите любого потенциального консультанта об их недавней истории работы. Даже при наличии соглашений о неразглашении информации они могут поделиться некоторой информацией, на которую не распространяется эмбарго. Например, на «Опишите недавний проект, который вы выполнили для крупного клиента» можно ответить «Я недавно завершил проект, связанный с архитектурой и развертыванием решения ИИ для больших данных для клиента из США. . Это было локальное решение, начиная с базового сервера инфраструктуры с сервером Ubuntu с графическими процессорами и заканчивая службой, способной поддерживать многие тысячи транзакций в секунду. Результатом остались довольны. Я спрошу их, могу ли я поделиться с вами более подробной информацией ». Такого ответа и следовало ожидать. В моем случае у меня есть публично проверяемые патенты, статьи и докторская степень, чтобы клиенты могли понять уровень моей работы. Моя последняя работа по машинному обучению будет представлена ​​в июле 2017 года в Ницце, Франция («Рекомендуемая система неконтролируемого глубокого обучения для пользователей персональных компьютеров» и «Рекомендательная система визуального глубокого обучения для пользователей персональных компьютеров»).

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

Большая часть моей работы находится под очень строгим соглашением о неразглашении, поэтому я привел здесь примеры из моей академической работы или работы, находящейся в открытом доступе, чтобы проиллюстрировать, как я работаю с клиентами на практике. Но ... Не позволяйте консультанту прятаться за соглашениями о неразглашении. Особенно, если они не могут предоставить вам утверждения, подобные приведенным выше, ваш консультант должен иметь общедоступный профиль, в котором указано, откуда они исходят. Например, рецензируемые публикации, соответствующие университетские степени, патенты, панельные дискуссии, команда и т. Д. Используя себя в качестве примера, я получил степень магистра по вопросу о том, какие части программного обеспечения следует ускорять на аппаратном уровне с учетом аппаратных ограничений. Моя докторская степень заключалась в том, чтобы рекомендовать действия пользователям с неконтролируемым обучением. Все это собрано вместе, чтобы рассказать клиенту правдоподобное повествование. Посмотрите на веб-сайт консультации. Это мило или это просто адрес электронной почты и пустая страница? Само собой разумеется, что консультант должен быть включен. Более того, веб-сайт их компании - хороший способ оценить, насколько на самом деле организован консультант. Делают ли они что-то в основном за деньги (например, кодируют файлы cookie) или они узко ориентированы? Например, в нашем случае мы занимаемся Интернетом вещей и искусственным интеллектом, и все.

Ожидайте столкновения с процессом. Консультанты любят процесс. Ожидайте, что благодаря сбору требований и сессиям доской вы сможете глубоко погрузиться в то, как будет структурировано решение, прежде чем писать какой-либо код. Вы должны обсудить, как будет использоваться система, и экономическое обоснование того, как она будет продаваться покупателю. Консультант должен вместе с вами составить план, который называется Отчет о работе (SOW), с основными этапами и результатами, а затем заручиться поддержкой заинтересованных сторон.

Каждый консультант рассматривает риск по-своему. Мой подход к архитектуре решений - это организация. В начале своей карьеры я работал непосредственно в операциях, а центры обработки данных и сетевые операции - это очень серьезные места, которые по-прежнему заставляют меня останавливаться. Если один человек выберет неправильный аккорд в операциях или внедрит одну ошибку на эти серверы, тогда каждый клиент может обратиться в службу поддержки. Это среда с высоким давлением. В ответ на это давление я придерживаюсь традиционного подхода к системной архитектуре для команд разработчиков, начиная с разработки, интеграции и производства, и включая варианты отката, проверку развертывания с помощью QA и регулярное резервное копирование VPS в каждом центре распределения для снижения рисков. По возможности я рекомендую клиентам использовать облако, чтобы избежать такого рода операционных рисков.

Я большой поклонник облачных решений. Код машинного обучения работает на графических процессорах, которые иногда дешевле купить и запустить, чем запускать на AWS. Ключевое значение, которое я привожу в таблицу, - это способность понимать и проектировать архитектуру программного обеспечения, а также необходимое оборудование. Совет, который вам нужен, - когда переходить в облако. Не все клиенты слушают, но все консультанты должны быть в состоянии помочь вам решить, где построить вашу систему (облачную или локальную). Я регулярно предоставляю оборудование GPU в клиентскую инфраструктуру, будь то облако на базе AWS, в выделенной стойке в центре обработки данных или локально на частном предприятии клиента. Я понимаю установку и развертывание оборудования GPU в производственной среде. Особые технологии, о которых стоит упомянуть, - это Nginx для обслуживания и балансировки нагрузки, мемоизация для кэширования результатов для уменьшения как задержки, так и ненужных вычислений, репликация и индексирование для снижения нагрузки на таблицы базы данных с высоким трафиком, а также системы распределенных запросов, такие как noSQL. Лично я предпочитаю postgres, хотя я работал с t-SQL (SQL-сервером), mySQL и Sqlite. Опыт научил меня нормализовать таблицы и прислушиваться к мнению администратора базы данных, потому что он умнее всех остальных, когда дело касается баз данных, и выжимать производительность из данных вне базы данных с помощью предварительной обработки везде, где это возможно. Любой хороший консультант сделает подобные ограничительные заявления, заявив, что не во всем разбирается. Если консультант всегда заявляет о своей экспертизе, независимо от темы, то вам стоит волноваться.

Любой нанятый вами консультант по ИИ должен понимать безопасность. Они часто касаются ваших самых конфиденциальных данных. Благодаря моему участию в нескольких проектах по работе с большими данными я развил интуитивное понимание облачной автоматизации, которое согласуется с потребностями безопасности. Я рассматриваю облако, частное или публичное, как систему управления VPS. Многие базовые технологии, от аутентификации (например, Oauth2) и авторизации (например, шаблон управления доступом на основе ролей) до SSL и межсетевых экранов, необходимы для того, чтобы поддерживать производственную систему для компании. Я делаю это часто, с нуля, и я знаком с системами безопасности, включающими оборудование и программное обеспечение (См. Утвержденные патенты), а также с моделями угроз и политиками безопасности, которые связаны с безопасной разработкой проекта, подобного тому, который описан в публикации для этого. позиция. Например, внесение IP-адресов в белый и черный списки, аутентификация PPK, аутентификация на основе токенов RSA и т. Д. Конечно, любая система настолько сильна, насколько сильны люди, которые ее используют. Обучение персонала соблюдению политик безопасности имеет важное значение для поддержания инфраструктуры безопасности.

Машинное обучение

Давайте теперь углубимся в ключевую тему этого обсуждения. А именно, может ли консультант разработать и внедрить систему машинного обучения в соответствии с вашими потребностями? Как вы можете сказать?

Как я описал в недавнем посте, опыт машинного обучения найти сложно. Общие знания быстро достигают разработчиков, и это превосходно, но более глубокие экспертные знания сложнее получить из короткого онлайн-курса или онлайн-видео. Не поймите меня неправильно, я люблю эти ресурсы и настоятельно рекомендую их, но их недостаточно, чтобы дать вашей команде разработчиков необходимые навыки. Оглядываясь назад на свои файлы, я прошел свой первый университетский курс искусственного интеллекта на последнем курсе бакалавриата в 2006 году, до того, как это стало всеобщей модой. Параллельно с усилиями, необходимыми для получения докторской степени по машинному обучению на неполной ставке с 2009 по 2017 год, я выполнял ряд очень интересных работ, связанных с машинным обучением, начиная с моей работы в Zip. ca (Momentous Corp), где я разработал рекомендательные системы и провел исследования операций (например, целочисленное линейное программирование, комбинаторные оптимизации, задача о рюкзаке, проблема перегрузки и другие). Моя задача в Zip, Калифорния, заключалась в том, чтобы найти хорошее распределение DVD для клиентов, учитывая список желаний клиентов и наличие DVD в каждом центре распространения. Эта работа напрямую конкурировала с канадским netflix.

С консультантом, которого вы не знаете, всегда старайтесь начать с небольшого подтверждения концепции, чтобы доказать себе, что этот консультант знает свое дело. Работайте с консультантом, чтобы придумать проект, который принесет мало пользы. То, что они могут быстро реализовать без особых усилий по разработке (например, на основе существующего кода, который у них уже есть, и данных, которые вы уже собрали). Если этот первый шаг пройдет успешно, вы можете уверенно переходить к большему объему проекта.

Не стоит особо задумываться о том, какие инструменты использует консультант, если они являются отраслевым стандартом. Я выполняю большую часть своей работы по машинному обучению на python, и мои предпочтительные фреймворки - Tensorflow 1.0 и scikit-learn. Иногда использую Керас. Почти всегда мой код работает на графическом процессоре. По возможности я повторно использую существующие модели машинного обучения, а не строю их с нуля. Ожидайте, что консультант покажет вам, как сэкономить время и деньги, повторно используя существующий код AI.

Попросите консультанта описать развертывание в общих чертах. Пример, который я привел бы для проекта обработки изображений, выглядит примерно так: «Я использовал сверточные нейронные сети (CNN) и контролируемое обучение для различения классов изображений на основе помеченных данных. Например, различение ран на пациенте, обнаружение различий между продуктами на основе внешнего вида и другие подобные задачи классификации изображений. В производстве я бы использовал VPS с поддержкой графического процессора и сервер, такой как Flask, и балансировщик нагрузки (nginx), чтобы сделать эти модели высокопроизводительными. Обучение полной CNN может занять много времени, и поэтому в качестве первого шага к знакомству с наблюдаемыми функциями я использовал перенос обучения из существующей CNN, чтобы увидеть, насколько хорошо интересующие функции в помеченном кластере данных соответствуют желаемым категориям. Помимо обучения с учителем, я развернул модели обучения без учителя, когда недостаточно маркированных данных для обучения с учителем. Иногда уменьшение размерности подходит для обучения без учителя (например, для кластеризации я использую t-SNE, а иногда PCA или K-means) ».

В то время как для проекта обработки текста я бы ответил примерно так: «Я очень большой поклонник моделей встраивания слов. Для этого типа задач я использую word2vec и / или GloVe, либо с Tensorflow, либо непосредственно в python, и использую существующие модели, такие как векторы новостей Google и википедию, или создаю свою собственную модель на основе текстового корпуса или набора данных клиента. Есть много других моделей машинного обучения, которые мы можем рассмотреть более подробно, в том числе генеративные модели, такие как RNN и LSTM, и новые модели обучения, такие как анализ настроений и многое другое ».

Заключение

Надеюсь, эта статья поможет вам решить, с кем работать консультантом по машинному обучению. Основная идея заключается в том, что вы нанимаете консультанта по ИИ, чтобы он был больше, чем специалист по данным. Вы хотите, чтобы они оказали помощь в разработке всей системы от требований до развертывания и помогли в наращивании потенциала, чтобы ваши внутренние ресурсы в команде (-ах) DevOps могли поддерживать инфраструктуру и код ИИ. Ожидайте, что у консультанта будет какой-то процесс для работы с вами, в том числе Техническое задание, которое устанавливает четкие ожидания. Задайте перспективному консультанту сложные вопросы и убедитесь, что вы получили какую-то недавнюю историю работы и подтверждение высокого уровня, что они понимают риски, безопасность и облачные компоненты вашего проекта. Попросите их описать развертывание в общих чертах и ​​постарайтесь убедить их повторно использовать существующий код ИИ, где это возможно, сэкономив вам деньги и время. Узнайте о государственных грантах и ​​о том, как они применяются в вашем проекте. Наконец, даже если консультант кажется отличным, начните с небольшого подтверждения концепции, чтобы убедиться, что он оправдает ваши ожидания.

Удачного кодирования!

-Даниэль
[email protected] ← Передай привет.
Lemay.ai
1 (855) LEMAY-AI

Другие статьи, которые могут вам понравиться: