1. Обзор
В этой лабораторной работе вы обучите модель с помощью BigQuery Machine Learning , а затем экспортируете и развернете эту модель в Vertex AI . Это новейший продукт искусственного интеллекта, предлагаемый в Google Cloud.
Что вы узнаете
Вы узнаете, как:
- Обучение модели с помощью машинного обучения BigQuery (BQML)
- Экспортируйте свою модель BQML в облачное хранилище.
- Разверните обученный BQML в Vertex AI
- Получайте прогнозы по вашей развернутой модели
Общая стоимость запуска этой лаборатории в Google Cloud составляет около 2 долларов США .
2. Знакомство с Vertex AI
В этой лаборатории используются новейшие продукты искусственного интеллекта, доступные в Google Cloud. Vertex AI интегрирует предложения машинного обучения в Google Cloud в единый процесс разработки. Раньше модели, обученные с помощью AutoML, и пользовательские модели были доступны через отдельные сервисы. Новое предложение объединяет оба API в одном API, а также другие новые продукты. Вы также можете перенести существующие проекты на Vertex AI. Если у вас есть какие-либо отзывы, пожалуйста, посетите страницу поддержки .
Vertex AI включает в себя множество различных продуктов для поддержки комплексных рабочих процессов машинного обучения. Эта лабораторная работа будет сосредоточена на продуктах, перечисленных ниже: прогнозирование и блокноты.
3. Настройте свою среду
Для запуска этой лаборатории кода вам понадобится проект Google Cloud Platform с включенной оплатой. Чтобы создать проект, следуйте инструкциям здесь .
Шаг 1. Включите API Compute Engine.
Перейдите к Compute Engine и выберите «Включить» , если он еще не включен. Это понадобится вам для создания экземпляра блокнота.
Шаг 2. Включите API Vertex AI.
Перейдите в раздел Vertex AI в облачной консоли и нажмите «Включить Vertex AI API» .
Шаг 3. Создайте экземпляр блокнотов
Мы будем использовать Блокноты для получения прогнозов после развертывания нашей модели. В разделе Vertex AI облачной консоли нажмите «Ноутбуки»:
Оттуда выберите «Новый экземпляр» . Затем выберите тип экземпляра TensorFlow Enterprise 2.3 без графических процессоров :
Используйте параметры по умолчанию и нажмите «Создать» . После создания экземпляра выберите «Открыть JupyterLab» :
4. Обучение модели BigQuery ML
BigQuery ML позволяет обучать собственные модели машинного обучения, используя данные, хранящиеся в BigQuery. Вы можете обучать модели и получать прогнозы на основе SQL. В этой лабораторной работе мы будем использовать общедоступный набор данных в BigQuery, чтобы спрогнозировать вероятность неисполнения обязательств по платежу по кредитной карте.
Шаг 1. Создайте набор данных BigQuery в своем проекте.
Чтобы обучить модель в BigQuery ML, вам необходимо создать в проекте набор данных для хранения этой модели. Нажмите на свой проект в левой строке меню и выберите «Создать набор данных» :
В поле «Идентификатор набора данных» введите cc_default
. Остальные поля оставьте как есть и нажмите «Создать набор данных» .
Шаг 2. Запустите запрос CREATE MODEL.
В редакторе запросов BigQuery запустите следующий запрос CREATE MODEL
, чтобы создать и обучить модель BigQuery ML на общедоступном наборе данных, который мы будем использовать. Обязательно замените your-project
на имя вашего облачного проекта:
CREATE OR REPLACE MODEL
`your-project.cc_default.logistic_model` OPTIONS(model_type='LOGISTIC_REG',
input_label_cols=['default_payment_next_month']) AS
SELECT
limit_balance,
sex,
education_level,
marital_status,
age,
pay_0,
pay_2,
pay_3,
pay_4,
pay_5,
pay_6,
bill_amt_1,
bill_amt_2,
bill_amt_3,
bill_amt_4,
bill_amt_5,
bill_amt_6,
pay_amt_1,
pay_amt_2,
pay_amt_3,
pay_amt_4,
pay_amt_5,
pay_amt_6,
default_payment_next_month
FROM
`bigquery-public-data.ml_datasets.credit_card_default`
Это создаст модель логистической регрессии , которая выводит числовое значение в диапазоне от 0 до 1, что указывает на то, что выполнение займет около минуты. Когда он завершится, вы увидите модель в своем наборе данных:
Вы можете нажать на модель, чтобы просмотреть ее показатели обучения и оценки.
5. Экспортируйте модель BigQuery ML.
Имея обученную модель BQML, мы можем использовать синтаксис SQL BQML для получения прогнозов или экспортировать модель для ее развертывания в другом месте. Здесь мы экспортируем нашу модель, чтобы можно было развернуть ее в Vertex AI для масштабируемого обслуживания модели и получения прогнозов.
Шаг 1. Создайте корзину облачного хранилища для вашей модели.
В сведениях о модели нажмите «Экспортировать модель» :
Вам будет предложено ввести местоположение Google Cloud Storage (GCS), куда вы хотите экспортировать ресурсы вашей модели. Если у вас еще нет сегмента GCS, не волнуйтесь! Мы собираемся его создать. Сначала нажмите «Обзор» :
Затем нажмите значок + , чтобы создать новый сегмент:
Присвойте ему уникальное имя (имена сегментов хранилища должны быть глобально уникальными). Нажмите Продолжить . На следующем шаге в разделе «Тип местоположения» выберите «Регион» и выберите любой из регионов из раскрывающегося списка:
Используйте класс хранения по умолчанию и в разделе «Контроль доступа» убедитесь, что выбран параметр «Униформа» :
Нажмите «Продолжить» и используйте значения по умолчанию для остальных параметров. Затем нажмите Создать .
Шаг 2. Экспортируйте модель BQML.
После создания нового сегмента введите model-assets
(или что угодно) в поле «Имя» и нажмите «Выбрать» :
Затем нажмите «Экспорт» . Это создаст задание в BigQuery для экспорта вашей модели в формате SavedModel TensorFlow в указанный вами вновь созданный сегмент GCS. Экспорт займет около минуты.
Пока ваша модель экспортируется, перейдите в раздел «Хранилище» вашей облачной консоли. Когда задание будет завершено, вы увидите, что активы модели экспортированы в только что созданную вами корзину в подкаталоге model-assets
:
6. Импортируйте модель в Vertex AI.
На этом этапе мы будем использовать хранилище GCS, куда мы только что экспортировали ресурсы нашей модели, чтобы создать и импортировать модель в Vertex AI.
Шаг 1. Импортируйте модель
В облачной консоли перейдите в раздел Vertex AI Models . Оттуда выберите «Импорт» :
На первом этапе дайте вашей модели имя predict_default
. Выберите тот же регион, в котором вы создали корзину ( us-central1 , europe-west4 или asia-east1) . Затем нажмите « Продолжить» . В настройках модели оставьте выбранным «Импортировать артефакты модели в новый предварительно созданный контейнер».
В раскрывающемся списке Модельная платформа выберите TensorFlow . Затем выберите 2.3 в качестве версии платформы.
В поле «Расположение артефакта модели» нажмите «Обзор» , щелкните только что созданный сегмент GCS и щелкните каталог model-assets :
Затем нажмите «Импорт» . Импорт вашей модели займет несколько минут. Как только он будет создан, вы увидите его в разделе моделей вашей облачной консоли:
7. Разверните модель в конечной точке.
Теперь, когда мы загрузили нашу модель, следующим шагом будет создание конечной точки в Vertex. Ресурс модели в Vertex может иметь несколько связанных с ним конечных точек, и вы можете разделить трафик между конечными точками.
Шаг 1. Создание конечной точки
На странице модели перейдите на вкладку «Развертывание и тестирование» и нажмите « Развернуть до конечной точки» :
Дайте своей конечной точке имя, например default_pred_v1
, оставьте настройки разделения трафика без изменений, а затем выберите тип машины для развертывания вашей модели. Здесь мы использовали n1-highcpu-2
, но вы можете выбрать любой тип машины, который вам нравится.
Затем выберите «Готово» и нажмите «Продолжить» . Оставьте выбранные настройки местоположения без изменений и нажмите «Развернуть» . Развертывание вашей конечной точки займет несколько минут. Когда он будет завершен, рядом с ним вы увидите зеленую галочку:
Вы приближаетесь! Теперь вы готовы получать прогнозы по вашей развернутой модели.
8. Получение прогнозов по нашей развернутой модели
Существует несколько вариантов получения прогнозов модели:
- Вершинный ИИ-интерфейс
- API вершин ИИ
Здесь мы покажем, как получать прогнозы через API.
Шаг 1. Получите прогнозы модели с помощью API Vertex AI.
Чтобы показать вам, как получать прогнозы модели, мы будем использовать экземпляр Vertex Notebook, который вы создали в начале этой лабораторной работы.
Затем откройте созданный вами экземпляр блокнота и откройте блокнот Python 3 из панели запуска:
В своей записной книжке выполните следующую команду в ячейке, чтобы записать тестовый пример в файл JSON с именем default-pred.json
. Мы отправим этот пример в нашу модель для прогнозирования:
%%writefile default-pred.json
{
"instances": [
{"age": 39,
"bill_amt_1": 47174,
"bill_amt_2": 47974,
"bill_amt_3": 48630,
"bill_amt_4": 50803,
"bill_amt_5": 30789,
"bill_amt_6": 15874,
"education_level": "1",
"limit_balance": 50000,
"marital_status": "2",
"pay_0": 0,
"pay_2":0,
"pay_3": 0,
"pay_4": 0,
"pay_5": "0",
"pay_6": "0",
"pay_amt_1": 1800,
"pay_amt_2": 2000,
"pay_amt_3": 3000,
"pay_amt_4": 2000,
"pay_amt_5": 2000,
"pay_amt_6": 2000,
"sex": "1"}
]
}
Затем в пользовательском интерфейсе Vertex нажмите «Запрос образца» для только что развернутой конечной точки:
Скопируйте код из шага 4 на вкладке REST в свой блокнот и запустите ячейку:
Затем добавьте переменную для региона, в котором вы создали корзину и модель. Замените your-region
в строке ниже:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
Наконец, сделайте запрос прогнозирования к своей конечной точке с помощью curl
, скопировав следующий код в свой блокнот:
!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"
Вы должны увидеть что-то вроде следующего (точные значения прогноза могут незначительно отличаться):
{
"predictions": [
{
"default_payment_next_month_values": [
"1",
"0"
],
"default_payment_next_month_probs": [
0.180815295299778,
0.819184704700222
],
"predicted_default_payment_next_month": [
"0"
]
}
],
"deployedModelId": "your-model-id"
}
Значения в default_payment_next_month_probs
показывают вероятность для каждого класса. В этом примере наша модель прогнозирует, что с вероятностью 81% этот человек не нарушит свой следующий платеж. Значение .819
соответствует классу 0
(не по умолчанию).
🎉Поздравляем! 🎉
Вы узнали, как:
- Обучение модели в BQML
- Экспортируйте свою модель BQML в облачное хранилище.
- Импортируйте модель BQML в Vertex AI для прогнозирования.
- Создайте модель Vertex AI и разверните ее в конечной точке.
- Получайте прогнозы на развернутой конечной точке с помощью Vertex Notebooks и Curl.
Чтобы узнать больше о различных частях Vertex AI, ознакомьтесь с документацией .
9. Очистка
Если вы хотите продолжать использовать записную книжку, созданную в ходе этой лабораторной работы, рекомендуется выключать ее, когда она не используется. В пользовательском интерфейсе ноутбуков в облачной консоли выберите блокнот и нажмите «Стоп» :
Если вы хотите полностью удалить блокнот, просто нажмите кнопку «Удалить» в правом верхнем углу.
Чтобы удалить развернутую конечную точку, перейдите в раздел «Конечные точки» консоли Vertex AI и щелкните значок удаления:
Чтобы удалить сегмент хранилища, в меню навигации облачной консоли перейдите к разделу «Хранилище», выберите сегмент и нажмите «Удалить»: