Прогнозирование рейтинга фильма с помощью Vertex AI AutoML

1. Введение

В этой лаборатории кода мы создадим модель прогнозирования оценки фильма с помощью Vertex AI AutoML и запустим конечную точку развернутой модели из облачных функций Java. Модель обучается на данных, хранящихся в BigQuery и зарегистрированных в Vertex AI. Перечень услуг можно разделить на два раздела:

  1. Создание и развертывание модели ML
  2. Триггер для прогнозирования с помощью API ML

Создание модели машинного обучения:

  1. Данные получены из CSV в BigQuery.
  2. Данные BigQuery интегрированы в Vertex AI для создания моделей AutoML
  3. Модель развернута в реестре моделей Vertex AI для создания API конечных точек.

Триггер для прогнозирования с помощью API ML:

  1. Облачные функции Java для запуска вызова конечной точки развернутой модели AutoML, которая принимает детали фильма по запросу из пользовательского интерфейса и возвращает прогнозируемый балл фильма.

Ниже приведен общий обзор архитектуры приложения:

5ae50607c0f2db20.png

Применение указанной выше архитектуры выходит за рамки данной кодовой лаборатории, но если вы хотите также разработать клиентское приложение, обратитесь к блогу .

Давайте углубимся в этапы реализации.

Что ты построишь

Вы создадите

  • Набор данных BigQuery, содержащий компоненты таблицы и модели.
  • Модель Vertex AI AutoML (создание и развертывание)
  • Облачные функции Java Trigger для прогнозирования с использованием API ML

2. Требования

  • Браузер, например Chrome или Firefox.
  • Проект Google Cloud с включенной оплатой

Ниже приведены предварительные условия:

Создайте свой проект

  1. В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.
  2. Убедитесь, что для вашего облачного проекта включена оплата. Узнайте, как проверить, включена ли оплата в проекте .
  3. Перейдите в BigQuery , чтобы включить API. Вы также можете открыть веб-интерфейс BigQuery напрямую, введя следующий URL-адрес в браузере: https://console.cloud.google.com/bigquery.

Активировать Cloud Shell

  1. Вы будете использовать Cloud Shell , среду командной строки, работающую в Google Cloud, в которую предварительно загружен bq : в Cloud Console нажмите «Активировать Cloud Shell» в правом верхнем углу: 6757b2fb50ddcc2d.png
  2. После подключения к Cloud Shell вы увидите, что вы уже прошли аутентификацию и что для проекта уже установлен идентификатор вашего проекта. Выполните следующую команду в Cloud Shell, чтобы подтвердить, что вы прошли аутентификацию:
gcloud auth list
  1. Выполните следующую команду в Cloud Shell, чтобы убедиться, что команда gcloud знает о вашем проекте.
gcloud config list project
  1. Если ваш проект не установлен, используйте следующую команду, чтобы установить его:
gcloud config set project <PROJECT_ID>

Обратитесь к документации по командам и использованию gcloud.

3. Подготовка данных обучения

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

4. Создание и загрузка набора данных

Набор данных BigQuery – это набор таблиц. Все таблицы в наборе данных хранятся в одном и том же месте данных. Вы также можете прикрепить настраиваемые элементы управления доступом, чтобы ограничить доступ к набору данных и его таблицам.

  1. В Cloud Shell используйте команду bq mk , чтобы создать набор данных под названием «movies».
bq mk --location=<<LOCATION>> movies

Установите местоположение в регионе (Азия-Юг1). Не забудьте также установить его в качестве региона для шага VERTEX AI (оба экземпляра должны находиться в одном регионе).

  1. Убедитесь, что у вас готов файл данных (.csv). Выполните следующие команды в Cloud Shell, чтобы клонировать репозиторий и перейти к проекту:
git clone <<repository link>>

cd movie-score
  1. Используйте команду bq load, чтобы загрузить файл CSV в таблицу BigQuery (обратите внимание, что вы также можете загрузить его напрямую из пользовательского интерфейса BigQuery):
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
  1. Запрос одним из трех способов:

Мы можем взаимодействовать с BigQuery тремя способами, мы попробуем два из них: а. Веб -интерфейс BigQuery б. Команда bq c. API

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

Для выполнения запросов я использовал рабочую область BigQuery Web SQL. Рабочая область SQL выглядит следующим образом:

109a0b2c7155e9b3.png

Используя команду bq:

bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

5. Использование данных BigQuery в Vertex AI AutoML

Используйте данные из BigQuery, чтобы напрямую создать модель AutoML с помощью Vertex AI. Помните, что мы также можем выполнить AutoML из самого BigQuery, зарегистрировать модель в VertexAI и предоставить конечную точку. Обратитесь к документации BigQuery AutoML . Однако в этом примере мы будем использовать Vertex AI AutoML для создания нашей модели.

Создание набора данных Vertex AI

Перейдите к Vertex AI из Google Cloud Console, включите Vertex AI API, если это еще не сделано, разверните данные и выберите «Наборы данных», нажмите «Создать набор данных», выберите тип данных ТАБЛИЧНЫЙ и параметр «Регрессия/классификация» и нажмите «Создать»:

4104c75c34cbd2d9.png

Выберите источник данных

На следующей странице выберите источник данных. Выберите опцию «Выбрать таблицу или представление из BigQuery» и выберите таблицу из BigQuery в поле «Путь к BigQuery» ОБЗОР. Нажмите Продолжить.

Помните: экземпляр BigQuery и наборы данных Vertex AI должны находиться в одном и том же регионе, чтобы таблица BigQuery отображалась в Vertex AI.

b787ef18dbca4cff.png

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

Обучение модели

  1. После создания набора данных вы должны увидеть страницу «Анализ» с возможностью обучения новой модели. Нажмите на это:

bf095263d57106de.png

  1. Оставьте «Цель» как «Классификация», выберите параметр AutoML на первой странице и нажмите «Продолжить»: e50597bc3f29894c.png
  2. Дайте вашей модели имя и выберите имя целевого столбца как «Оценка» в раскрывающемся списке и нажмите «Продолжить».
  3. Также обратите внимание, что вы можете выбрать опцию «Экспорт набора тестовых данных в BigQuery», которая позволяет легко и эффективно просматривать набор тестов с результатами в базе данных без дополнительного уровня интеграции или необходимости перемещать данные между сервисами.
  4. На следующей странице у вас есть возможность выбрать любые необходимые вам параметры расширенного обучения и часы, в течение которых вы хотите установить модель для обучения. Обратите внимание: возможно, вам стоит обратить внимание на цены, прежде чем увеличивать количество узловых часов, которые вы хотите использовать для обучения.

Нажмите «Начать обучение», чтобы начать обучение новой модели.

e72b004a17849bd.png

Оцените, разверните и протестируйте модель

После завершения обучения вы сможете нажать «Обучение» (под заголовком «Разработка модели» в меню слева) и просмотреть свое обучение, указанное в разделе «Конвейеры обучения». Нажмите на нее, чтобы попасть на страницу реестра моделей. Вы должны быть в состоянии:

  1. Посмотреть и оценить результаты обучения 4767b4bbd7cf93fa.png
  2. Разверните и протестируйте модель с помощью конечной точки API.

После развертывания модели создается конечная точка API, которую можно использовать в вашем приложении для отправки запросов и получения в ответ результатов прогнозирования модели.

95fb4495618174f0.png

Прежде чем перейти к этому разделу, обязательно запишите идентификатор конечной точки развернутой модели, местоположение и другие сведения в разделе конечной точки Vertex AI.

6. Облачная функция Java для запуска вызова ML

Помните, как у нас есть конечная точка и другие детали на этапе развертывания машинного обучения? Мы собираемся использовать это здесь, и поскольку мы используем облачные функции Java, мы будем использовать pom.xml для обработки зависимостей. Мы используем библиотеку google-cloud-aiplatform для использования API конечной точки Vertex AI AutoML.

  1. Найдите облачные функции в консоли Google Cloud и нажмите «Создать функцию».
  2. Введите данные конфигурации, такие как среда, имя функции, регион, триггер (в данном случае HTTPS), аутентификация по вашему выбору, включите «Требовать HTTPS» и нажмите «Далее/Сохранить».

a68272022df062f2.png

  1. На следующей странице выберите «Среда выполнения» (Java 11), «Исходный код» (встроенный или загруженный) и начните редактирование.

13df616369ca5951.png

  1. Скопируйте файлы Java и pom.xml из репозитория и вставьте соответствующие файлы во встроенный редактор. Если вы используете локальный редактор (рекомендуется), затем клонируйте источник из репозитория.
  2. Измените идентификатор проекта, идентификатор конечной точки, местоположение и конечную точку в исходном файле .java для этого примера, но обратите внимание, что лучше всего использовать Secret Manager для хранения учетных данных.
  3. В рамках этой лаборатории кода закомментируйте части MongoDB в классе .java в скопированном исходном коде.

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

7. Очистка

Чтобы избежать списания средств с вашей учетной записи Google Cloud за ресурсы, используемые в этом посте, выполните следующие действия:

  1. В консоли Google Cloud перейдите на страницу «Управление ресурсами».
  2. В списке проектов выберите проект, который хотите удалить, и нажмите «Удалить».
  3. В диалоговом окне введите идентификатор проекта и нажмите «Завершить работу», чтобы удалить проект.

8. Поздравления

Поздравляем! Вы успешно создали и развернули модель прогнозирования оценки фильма в Vertex AI AutoML и запустили развернутую модель из облачных функций.