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

1. Введение

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

  1. Создание и развертывание моделей машинного обучения
  2. Запуск для прогнозирования с использованием API машинного обучения.

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

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

Запуск для прогнозирования с использованием API машинного обучения:

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

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

5ae50607c0f2db20.png

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

Давайте перейдем к этапам реализации.

Что вы построите

Вы создадите

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

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

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

Ниже перечислены необходимые условия:

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

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

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

  1. Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud и поставляемую с предустановленным bq : В консоли Cloud нажмите «Активировать 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. Подготовка обучающих данных

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

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

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

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

Укажите местоположение в регионе (asia-south1). Не забудьте указать его также в качестве региона для шага 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. Выполните запрос одним из 3 способов:

Взаимодействовать с BigQuery можно тремя способами, мы попробуем два из них: а) через веб- интерфейс BigQuery; б) с помощью команды bq; в) через 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, включите API Vertex AI, если это еще не сделано, разверните раздел «Данные» и выберите «Наборы данных», нажмите «Создать набор данных», выберите тип данных «ТАБЛИЧНЫЙ» и параметр «Регрессия/классификация», затем нажмите «Создать».

4104c75c34cbd2d9.png

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

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

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

b787ef18dbca4cff.png

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

Обучите модель

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

bf095263d57106de.png

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

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

e72b004a17849bd.png

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

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

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

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

95fb4495618174f0.png

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

6. Java Cloud Function для запуска машинного обучения.

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

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

a68272022df062f2.png

  1. На следующей странице выберите Runtime (Java 11), Source Code (Inline or upload) и начните редактирование.

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 и запустили развернутую модель из Cloud Functions.