Благодаря мощной экосистеме AI Platform почти все рабочие процессы моделирования можно выполнять в Google Cloud.

Введение

Это Минори, @GDE ML из Японии.
Многие из вас используют Jupyter Lab (Notebook) или бесплатный Google Colab для разработки, сохраняя при этом свои данные в BigQuery. С этим есть некоторые неудобства. Например, аутентификация, необходимая для подключения к BigQuery из локальной сети. С Colab вам нужно поместить данные на Google Диск и смонтировать их, что является утомительным процессом. Если вы используете GCE для запуска Jupyter, вам придется использовать туннелирование ssh для подключения, что неудобно, когда ssh отключен.

Решение всех проблем — это… ноутбуки Google Cloud AI Platform!

Преимущества заключаются в следующем
・Авторизованный доступ к ресурсам в проекте (GCS, BigQuery и т. д.)
・Вы можете загружать таблицы BigQuery во фрейм данных pandas, написав SQL с помощью простых волшебных команд.
・Вы можете увеличить количество процессоров и памяти, если вам нужно больше вычислений.
・Вы можете обучать модели с помощью BigQuery ML или AutoML в одну строку. (Эта статья как раз об этом!)

Итак, что такое таблицы AutoML?

AutoML Tables — это инструмент автоматического моделирования, о котором все говорили некоторое время назад. Как я цитировал из своего выступления на саммите Google Developers ML Summit 20 Tokyo, он выбирает лучший алгоритм из сложных моделей DL. Если вы уже используете такие инструменты моделирования, как DataRobot или H2O.ai, стоит рассмотреть этот продукт. Он все еще находится в бета-версии, но я уверен, что в GA будет добавлено больше функций.

Это фото я сделал, когда Джефф Дин приехал в Токио на ML Summit 2019 Tokyo. Это показывает (почти) невозможность для человека создать такой сложный уровень DL. Но AutoML Tables делает это возможным. Машина все пробует и никогда не устает.



Раньше он поддерживал только Auto ML Vision (классификацию изображений) в начале. Теперь он поддерживает табличные данные в Google Cloud Next ’19. Подробности см. выше. Такой мощный инструмент, который может использовать каждый, сразу дает мне почувствовать, что мы действительно живем в эпоху демократизации данных.

Давайте глубже заглянем внутрь AutoML.

Некоторое время назад Google AI анонсировал поиск моделей как OSS, который должен работать в Google Cloud Auto ML. Статья ниже.



В статье говорится, что концепция поиска модели использует «жадный» поиск Beam для нескольких тренажеров (даже попробуйте RNN, такие как LSTM), настраивает глубину слоев и соединение и, в конечном итоге, создает ансамбли. Он создает модель, написанную на TensorFlowFinally.

В статье подробно не описано, что он пытается сделать. Итак, давайте попробуем запустить поиск модели. Код доступен здесь.



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

Вот пример, который я действительно пробовал.

Я запустил его с терминала 8CPU AI Platform Notebook. Мы можем узнать, что на самом деле делает поиск модели, только из журнала. Тем не менее, я был удивлен, увидев, что поиск модели пытается настроить гиперпараметры, соединения слоев, скорость обучения, нормализацию, функции активации и даже ансамбль. Вы также можете видеть, что файлы .pb были сгенерированы. Это означает, что модели AutoML могут быть немедленно развернуты и квантизированы для периферии на платформе ИИ. Это хорошо спроектированная экосистема.

Моделирование с помощью AutoML из блокнотов AI Platform

В этой статье мы попытаемся выполнить эту задачу, загрузив данные из BigQuery — › проектирование функций — › обучение моделей прогнозирования с помощью таблиц AutoML, используя только записные книжки платформы AI. AutoML можно легко обучить из веб-интерфейса, но в этой статье я покажу вам, как использовать блокноты.

Создание экземпляра ноутбуков

Во-первых, давайте создадим экземпляр Notebooks. Вы можете создать его одним щелчком мыши.

На выбор предлагается множество настраиваемых контейнеров, включая CUDA, TensorFlow, PyTorch и даже экземпляр с графическим процессором. Так что вы можете настроить среду глубокого обучения в течение минуты. Также доступны Apache Spark и Apache Hive. Conda включена, поэтому вы можете использовать «conda», чтобы добавить нужные вам библиотеки из консоли в Jupyter Lab. (Контейнер кажется основанным на Debian)

Нажмите «Создать», и ваш экземпляр будет готов через несколько десятков секунд. Здесь мы создали ноутбуки в регионе Токио, и здесь вы можете свободно выбирать тип процессора. Счета основаны на размере экземпляра GCE. Если вы регулярно используете GCE, вы знаете, что это очень недорого.

Теперь давайте запустим Notebooks.

Если вы запустите экземпляр и щелкните красный кружок, Jupyter Lab запустится через несколько секунд. Конечно, вы также можете получить доступ к ноутбукам в том же экземпляре в то же время, если вы являетесь авторизованным участником проекта.

Загрузка данных из BigQuery

Блокноты AI Platform имеют клиентские библиотеки BigQuery и расширения, включенные с самого начала. В этом примере мы загрузим данные такси Нью-Йорка, которые доступны в виде общедоступного набора данных из BigQuery. Он содержит такие данные, как точки посадки и высадки, количество людей, используемое шоссе и т. д., а также стоимость проезда на такси. Эти данные составляют примерно 18 ГБ.



Давайте быстро загрузим 1000 наборов данных из имени набора данных «bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018» в файл pandas df.

Вам нужно сделать это только для загрузки данных в фреймворк данных. Если набор данных находится в том же проекте, его можно загрузить без явного указания идентификатора проекта.

Когда вы находитесь в пандах DataFrame, вы можете строить графики, просматривать статистику и выполнять проектирование функций, как обычно в Jupyter. Обработанный DataFrame также можно экспортировать в таблицу BigQuery, используя «df.to_gbq». Если у вас есть большие данные, вы можете поместить их обратно в BigQuery, а затем снова обработать их, чтобы вы могли гибко выбирать, использовать ли pandas или BigQuery.

Моделирование с помощью BigQuery ML

BigQuery ML может обучать/предсказывать модели, от базовых моделей до глубоких моделей, с помощью однострочного SQL.



BigQuery ML поддерживает следующие типы моделей:

Линейная регрессия
Бинарная логистическая регрессия
Мультиклассовая логистическая регрессия
Кластеризация K-средних
Матричная факторизация
Временные ряды (Auto ARIMA)
Boosted Tree (на основе XGBoost)
Глубокая нейронная сеть (DNN)
Таблицы AutoML
TensorFlow импорт модели

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

Моделирование с помощью таблиц AutoML в ноутбуках

BigQuery ML может обучать AutoML запросам, а это значит, что мы можем моделировать в Notebook, запуская обучающие задания с помощью волшебных команд. Формат запроса следующий

Вы можете указать модель классификации или регрессию, переменные, которые вы хотите прогнозировать, бюджетный час и т. д. Все параметры, которые можно указать в пользовательском интерфейсе AutoML Tables, такие как целевые функции оптимизации (MAXIMIZE_AU_ROC, MINIMIZE_LOG_LOSS, MAXIMIZE_AU_PRC, MINIMIZE_RMSE, MINIMIZE_MAE, MINIMIZE_RMSLE ) можно указать здесь. Вы можете выбрать переменные, которые хотите использовать в предложении AS для загрузки переменных в модель. Это очень разумно.

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

Обратите внимание, что существует ограничение на текущее состояние моделирования с помощью запросов.
При использовании инструкций CREATE MODEL для моделей AutoML Tables необходимо соблюдать следующие правила:

  • Входные данные для таблиц AutoML должны содержать от 1000 до 100 миллионов строк и иметь размер менее 100 ГБ.
  • AXT и CMEK в настоящее время не поддерживаются.
  • Модели не отображаются в пользовательском интерфейсе AutoML Tables и недоступны для пакетных или интерактивных прогнозов AutoML Tables.
    ・Модель не отображается в пользовательском интерфейсе AutoML Tables и не может использоваться для пакетного или онлайн-прогнозирования в AutoML Tables.

Если вы прогнозируете более 100 миллионов строк, используйте таблицы AutoML из веб-интерфейса, а если вы хотите выполнить пакетный прогноз или развернуть его для онлайн-прогнозирования. На самом деле задание, которое я бросил здесь, не отображается в пользовательском интерфейсе модели AutoML Tables, поэтому кажется, что BigQuery ML и таблицы AutoML независимы. Я с нетерпением жду, чтобы увидеть это слияние в будущем.

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

Теперь вы можете импортировать данные из BigQuery, манипулировать ими в Notebooks, экспортировать их в BigQuery и выполнять моделирование и прогнозирование с помощью AutoML только с блокнотами AI Platform.

Сводка

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

Мощные продукты Google Cloud, такие как

・BigQuery: сверхбыстрая инфраструктура данных
・AutoML: высокоточный инструмент автоматического моделирования
・Записные книжки на платформе AI: Jupyter для быстрого доступа к ресурсам в Google Cloud.

Комбинируя их, мы можем быстро реализовать эффективные итерации разработки признаков, моделирования, оценки и прогнозирования для повышения точности. Платформа ИИ очень хорошо продумана и в настоящее время совершенствуется и развивается. Если вы специалист по обработке и анализу данных или инженер данных, вам, безусловно, стоит попробовать!

Спасибо за чтение!

Минори @ GDE ML
https://twitter.com/helmetti