Руководство для начинающих по безболезненному машинному обучению в Google Cloud

Создание приложений на базе искусственного интеллекта может быть болезненным. Я знаю. Я перенес много этой боли, потому что вознаграждение за использование этой технологии часто стоит страданий.

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

В этом посте я расскажу вам о некоторых из моих любимых безболезненных инструментов Google Cloud AI и поделюсь советами по быстрому созданию приложений на основе AI. Давай перейдем к делу.

Используйте предварительно обученные модели

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

Но для многих распространенных случаев этого делать не нужно. Вместо создания собственной модели с нуля вы можете воспользоваться преимуществами предварительно обученных моделей, которые были созданы, настроены и обслуживаются кем-то другим. API Google Cloud AI - один из примеров.

API-интерфейсы Cloud AI позволяют использовать машинное обучение для таких вещей, как:

Модели машинного обучения, которые используются в этих API-интерфейсах, аналогичны тем, которые используются во многих приложениях Google (например, Фото). Они обучены огромным массивам данных и зачастую обладают поразительной точностью! Например, когда я использовал Video Intelligence API для анализа моих семейных видео, он смог обнаружить такие специфические ярлыки, как свадебный душ, свадьба, игры с битой и мячом и даже улыбающийся ребенок. . »

API-интерфейсы Cloud AI работают… ну… в облаке. Но если вам нужно бесплатное и автономное решение, TensorFlow.js и ML Kit предоставляют множество предварительно обученных моделей, которые вы можете запускать прямо в браузере или на мобильном устройстве. В TensorFlow Hub есть еще больший набор предварительно обученных моделей TensorFlow.

Простые пользовательские модели с AutoML

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

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

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

Он работает с изображениями (AutoML Vision), видео (AutoML Video), языком (AutoML Natural Language и AutoML Translation), документами и табличными данными (AutoML Tables), как вы можете найти в база данных или электронная таблица.

Несмотря на то, что интерфейс AutoML прост, создаваемые им модели зачастую впечатляюще высокого качества. Под капотом AutoML обучает различные модели (например, нейронные сети), сравнивая разные архитектуры и параметры и выбирая наиболее точные комбинации.

Использовать модели AutoML в вашем приложении очень просто. Вы можете либо разрешить Google разместить модель для вас в облаке и получить к ней доступ через стандартный REST API или клиентскую библиотеку (Python, Go, Node, Java и т. Д.), Либо экспортировать модель в TensorFlow, чтобы использовать ее в автономном режиме.

Так что это более или менее упрощает обучение модели. Но откуда взять большой набор обучающих данных?

Никогда не маркируйте свои данные

Я серьезно.

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

Если нет, я задаю себе тот же вопрос о наборах данных. Практически любой набор данных, который вы можете себе представить, существует на Kaggle, сайте для размещения наборов данных и соревнований. От твитов о COVID-19 до списка местоположений Chipotle и сборника фейковых новостей на Kaggle часто можно найти хотя бы какой-нибудь набор данных, который позволит вам подготовить доказательства. Концептуальная модель для вашей проблемы. Google Dataset Search также является полезным инструментом для поиска наборов данных, которые будут запрашивать как Kaggle, так и другие источники.

Иногда, конечно, вы должны маркировать свои собственные данные. Но прежде чем нанять сотни стажеров, подумайте об использовании службы маркировки данных от Google. Чтобы использовать этот инструмент, вы описываете, как вы хотите, чтобы ваши данные были помечены, а затем Google отправляет их группам специалистов по маркировке. Полученный в результате маркированный набор данных можно напрямую подключить к AutoML или другим моделям AI Platform для обучения.

От модели к полезному приложению

Часто создание (или поиск) работающей модели машинного обучения не является сложной частью проекта. Это позволяет другим членам вашей команды использовать эту модель на своих собственных данных. Мы часто сталкивались с этой проблемой в Google Cloud AI, поэтому мы решили добавить интерактивные демонстрации на страницы наших продуктов API, чтобы вы могли загружать наши API и быстро их опробовать.

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

  • Добавить ML в Google Таблицы. * Приложения G Suite, такие как Таблицы, Документы и Формы, легко расширяются с помощью JavaScript с помощью платформы Скрипт приложений. Например, вы можете построить модель классификации текста, которая запускается каждый раз, когда вы добавляете строку в Google Sheet. Или вы можете создать форму Google, которая позволяет загружать изображения, анализировать их с помощью модели машинного обучения, а затем записывать результаты в таблицу Google.
  • Облачное хранилище Google + Cloud Functions Duo. Большинство проектов машинного обучения - это данные на входе, данные на выходе. Вы загружаете некоторые входные данные - изображение, видео, аудиозапись, фрагмент текста и т. Д. - и модель выполняет на них прогнозы (выходные данные). Отличный способ прототипирования этого типа проекта - Облачное хранилище и Облачные функции. Облачное хранилище похоже на папку в облаке: место для хранения данных всех форматов. Облачные функции - это инструмент для запуска блоков кода в облаке без использования выделенного сервера. Вы можете настроить их для совместной работы, если файл, загруженный в облачное хранилище, будет запускать облачную функцию.

Я использовал эту настройку недавно, когда создавал конвейер AI для документов.

Когда документ загружается в корзину облачного хранилища, он запускает облачную функцию, которая анализирует документ по типу и перемещает его в новую корзину. Это запускает новую облачную функцию, которая использует API естественного языка для анализа текста документа. Ознакомьтесь с полным кодом здесь.

Следующие шаги

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

Первоначально опубликовано на https://daleonai.com 19 октября 2020 г.