Наука о данных с использованием ИИ и BigQuery

1. Введение

Обзор

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

Вы сравните этот рабочий процесс, основанный на SQL, с современным подходом генеративного ИИ, используя Data Science Agent для автоматического создания модели кластеризации на основе Python из простого текстового запроса.

Чему вы научитесь

  • Подготовьте необработанный набор данных о листингах недвижимости для анализа с помощью проектирования признаков.
  • Расширяйте списки , используя функции искусственного интеллекта BigQuery для анализа фотографий домов на предмет ключевых визуальных характеристик.
  • Создайте и оцените модель K-средних с помощью BigQuery Machine Learning (BQML) для сегментации объектов недвижимости в отдельные кластеры.
  • Автоматизируйте создание модели , используя Data Science Agent для генерации модели кластеризации с помощью Python.
  • Создавайте вставки для изображений домов, чтобы использовать инструмент визуального поиска и находить похожие дома с помощью текстовых или графических запросов.

Предпосылки

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

  • Базовое программирование на SQL и Python.
  • Запуск кода Python в блокноте Jupyter.

2. Прежде чем начать

Создайте проект Google Cloud

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud .

Выберите проект

  1. Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .

Включите API с Cloud Shell

Cloud Shell — это среда командной строки, работающая в Google Cloud и поставляемая с предустановленными необходимыми инструментами.

  1. Нажмите «Активировать Cloud Shell» в верхней части консоли Google Cloud:

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

  1. После подключения к Cloud Shell выполните эту команду для проверки вашей аутентификации в Cloud Shell:
gcloud auth list
  1. Выполните следующую команду, чтобы подтвердить, что ваш проект настроен для использования с gcloud:
gcloud config list project
  1. Если ваш проект не настроен, используйте следующую команду для его настройки:
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID

Включить API

  1. Выполните эту команду, чтобы включить все необходимые API и службы:
gcloud services enable bigquery.googleapis.com \
                       bigqueryunified.googleapis.com \
                       cloudaicompanion.googleapis.com \
                       aiplatform.googleapis.com
  1. При успешном выполнении команды вы должны увидеть сообщение, похожее на показанное ниже:
Operation "operations/..." finished successfully.
  1. Выйдите из Cloud Shell.

3. Откройте лабораторную тетрадь в BigQuery Studio.

  1. В консоли Google Cloud Console перейдите в меню навигации > BigQuery .

Кнопка со стрелкой вниз

  1. На панели BigQuery Studio нажмите кнопку со стрелкой раскрывающегося списка, наведите указатель мыши на пункт Notebook и выберите Upload .

Кнопка со стрелкой вниз

  1. Выберите переключатель URL и введите следующий URL:

https://github.com/GoogleCloudPlatform/generative-ai/blob/main/gemini/use-cases/applying-llms-to-data/ai-assisted-data-science/ai-assisted-data-science.ipynb

  1. Установите регион us-central1 и нажмите «Загрузить» .

Загрузить блокнот из GitHub

  1. Чтобы открыть блокнот, нажмите на стрелку раскрывающегося списка в панели проводника , содержащей идентификатор вашего проекта. Затем нажмите на раскрывающийся список «Блокноты» . Выберите блокнот ai-assisted-data-science .

Открыть блокнот

  1. (Необязательно) Сверните навигационное меню BigQuery и оглавление блокнота, чтобы освободить больше места.

Свернуть панели

4. Подключитесь к среде выполнения и запустите код настройки.

  1. Нажмите «Подключиться» . Если появится всплывающее окно, авторизуйте Colab Enterprise под своим именем пользователя. Ваш блокнот автоматически подключится к среде выполнения. Это может занять несколько минут.

Подключиться к среде выполнения

  1. После установки среды выполнения вы увидите следующее:

Активная среда выполнения

  1. Прокрутите блокнот до раздела «Настройка» . Нажмите кнопку «Выполнить» рядом со скрытыми ячейками. Это создаст несколько ресурсов, необходимых для лабораторной работы в вашем проекте. Этот процесс может занять около минуты. Тем временем можете проверить ячейки в разделе «Настройка» .

Запустить установочный код

5. Подготовка данных и проектирование характеристик

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

Затем вы преобразуете эти необработанные данные в очищенную таблицу с новыми признаками. Это включает в себя фильтрацию объявлений, создание нового признака property_age и подготовку данных изображений для мультимодального анализа.

6. Мультимодальное обогащение функциями ИИ

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

Подключив BigQuery к модели Gemini , вы извлекаете новые ценные признаки из изображений (например, находится ли объект рядом с водой и даете краткое описание дома) непосредственно с помощью SQL.

7. Обучение модели с использованием кластеризации K-средних

Используя ваш новый набор данных, вы готовы к построению модели машинного обучения. Ваша цель — сегментировать предложения домов по отдельным группам. Для этого вы обучаете модель кластеризации K-средних непосредственно в BigQuery с помощью BigQuery Machine Learning (BQML). В рамках этого шага вы также регистрируете модель в реестре моделей Vertex AI , что делает её мгновенно доступной в более широкой экосистеме MLOps в Google Cloud.

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

  1. В консоли Google Cloud нажмите меню навигации (☰) в левом верхнем углу.
  2. Прокрутите до раздела Vertex AI и нажмите «Реестр моделей» . Теперь ваша модель BQML будет отображаться в списке вместе со всеми остальными вашими пользовательскими моделями.

Перейдите в реестр моделей

  1. В списке моделей найдите модель housing_clustering . Следующий шаг — развернуть её на конечной точке , что сделает вашу модель доступной для онлайн-прогнозирования в режиме реального времени за пределами среды BigQuery.

Перейдите в реестр моделей

После изучения реестра моделей вы можете вернуться к блокноту Colab в BigQuery, выполнив следующие действия:

  1. В меню навигации (☰) перейдите к BigQuery > Studio .
  2. Разверните меню на панели «Обзор» , чтобы найти свой блокнот и открыть его.

8. Оценка модели и прогнозирование

После обучения модели следующим шагом будет анализ созданных ею кластеров. Для этого используются функции машинного обучения BigQuery, такие как ML.EVALUATE и ML.CENTROIDS для анализа качества модели и определяющих характеристик каждого сегмента.

Затем вы используете ML.PREDICT для назначения каждого дома кластеру. Выполнив этот запрос с помощью магической команды %%bigquery df , вы сохраните результаты в объекте dataframe библиотеки pandas с именем df . Это делает данные немедленно доступными для последующих шагов Python. Это демонстрирует совместимость SQL и Python в Colab Enterprise.

9. Визуализация и интерпретация кластеров

Загрузив свои прогнозы в DataFrame, вы можете создавать визуализации, чтобы представить данные в наглядном виде. В этом разделе вы будете использовать популярные библиотеки Python, такие как Matplotlib, для изучения различий между сегментами рынка жилья.

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

10. Создание описаний кластеров с помощью моделей Gemini

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

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

Не стесняйтесь изменять подсказку по своему усмотрению и экспериментировать с результатами!

11. Автоматизируйте моделирование с помощью Data Science Agent

Теперь вы изучите мощный альтернативный рабочий процесс. Вместо того, чтобы писать код вручную, вы будете использовать интегрированный Data Science Agent для автоматического создания полноценного рабочего процесса кластеризации с помощью одного командного запроса на естественном языке.

Чтобы создать и запустить модель с помощью агента, выполните следующие действия:

  1. На панели BigQuery Studio нажмите кнопку со стрелкой раскрывающегося списка, наведите указатель мыши на пункт Notebook и выберите Empty Notebook . Это гарантирует, что код агента не повлияет на исходный лабораторный блокнот.

Открыть новый блокнот

  1. Интерфейс чата Data Science Agent открывается в нижней части блокнота. Нажмите кнопку « Переместить на панель» , чтобы закрепить чат справа.

Открыть новый блокнот

  1. Начните вводить @listing_multimodal в чате и щёлкните по таблице. Это явно установит таблицу listings_multimodal в качестве контекста.

Добавить контекст таблицы к агенту

  1. Скопируйте текст ниже и введите его в поле чата агента. После этого нажмите «Отправить» , чтобы отправить текст агенту.
    Use the selected table to generate a k-means clustering model with 3 clusters for housing listings. Then, help me understand the characteristics of each cluster so I can market to them as a real estate professional. Use Python.
    

Дайте агенту подсказку и отправьте

  1. Агент обдумает и сформулирует план. Если вас он устраивает, нажмите «Принять и выполнить» . Агент сгенерирует код Python в одной или нескольких новых ячейках.

Принять план агента

  1. Агент просит вас принять и выполнить каждый сгенерированный им блок кода. Это позволяет пользователю оставаться в курсе событий. Вы можете свободно просматривать и редактировать код, продолжая выполнять каждый шаг, пока не завершите работу.

Выполнить код агента

  1. Закончив работу, просто закройте эту новую вкладку блокнота и вернитесь на исходную вкладку ai-assisted-data-science.ipynb , чтобы продолжить работу над заключительным разделом лабораторной работы.

12. Мультимодальный поиск с вложениями и векторным поиском

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

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

Вы будете использовать модель multimodalembedding для генерации векторов для всех ваших объявлений. После создания векторного индекса для ускорения поиска вы выполните два типа поиска по сходству: поиск по тексту и изображению (поиск домов, соответствующих описанию) и поиск по изображению и изображению (поиск домов, похожих на изображение-образец).

Все это вы выполните в BigQuery, используя такие функции, как ML.GENERATE_EMBEDDING для генерации вложений или VECTOR_SEARCH для поиска по сходству.

13. Уборка

Чтобы очистить все ресурсы Google Cloud, используемые в этом проекте, вы можете удалить проект Google Cloud .

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

# Delete the BigQuery tables
!bq rm --table -f housing_dataset.listings
!bq rm --table -f housing_dataset.listings_multimodal
!bq rm --table -f housing_dataset.home_embeddings

# Delete the remote model
!bq rm --model -f housing_dataset.gemini
!bq rm --model -f housing_dataset.kmeans_clustering_model
!bq rm --model -f housing_dataset.multimodal_embedding_model

# Delete the remote connection
!bq rm --connection --project_id=$PROJECT_ID --location=us ai_connection

# Delete the BigQuery dataset
!bq rm -r -f $PROJECT_ID:housing_dataset

Наконец, вы можете удалить сам блокнот:

  1. На панели проводника BigQuery Studio разверните свой проект и узел Notebooks .
  2. Нажмите на три вертикальные точки рядом с блокнотом ai-assisted-data-science .
  3. Выберите Удалить .

14. Поздравляем!

Поздравляем с завершением Codelab!

Что мы рассмотрели

  • Подготовьте необработанный набор данных о листингах недвижимости для анализа с помощью проектирования признаков.
  • Расширяйте списки , используя функции искусственного интеллекта BigQuery для анализа фотографий домов на предмет ключевых визуальных характеристик.
  • Создайте и оцените модель K-средних с помощью BigQuery Machine Learning (BQML) для сегментации объектов недвижимости в отдельные кластеры.
  • Автоматизируйте создание модели , используя Data Science Agent для генерации модели кластеризации с помощью Python.
  • Создавайте вставки для изображений домов, чтобы использовать инструмент визуального поиска и находить похожие дома с помощью текстовых или графических запросов.