FraudFinder: от необработанных данных к искусственному интеллекту с помощью Vertex AI и BigQuery.

1. Обзор

В этой лабораторной работе вы узнаете, как создать комплексную систему искусственного интеллекта для обнаружения мошенничества в реальном времени в Google Cloud. Цель — понять, как перейти от необработанных данных к готовому к эксплуатации конвейеру машинного обучения, работающему в Google Cloud. В этой лаборатории используются следующие продукты Google Cloud:

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

Создание сквозного конвейера машинного обучения может оказаться сложной задачей. В этой лабораторной работе вы узнаете, как построить и масштабировать комплексный конвейер машинного обучения с помощью облачных сервисов Google, таких как BigQuery и Vertex AI. Мы познакомим вас с тем, как перейти от необработанных данных к использованию ИИ в производстве. Целью обучения высокого уровня для этой лабораторной работы являются:

  • Изучите лучшие практики по сбору данных для систем искусственного интеллекта в Google Cloud.
  • Узнайте, как разрабатывать функции с помощью BigQuery с использованием SQL (для пакетной обработки) и Apache Beam с использованием Dataflow (обработка в реальном времени) и использовать хранилище функций Vertex AI Feature Store.
  • Как выполнять анализ данных с помощью библиотек BigQuery и Python, таких как Pandas и Plotly.
  • Как обучить модель машинного обучения с помощью BigQuery ML через SQL.
  • Как использовать Vertex AI для хранения, развертывания и мониторинга вашей модели.
  • Как использовать Vertex AI Pipelines для формализации ваших данных в рабочем процессе ИИ.

ВАЖНО . Стоимость запуска этой лаборатории в Google Cloud составляет около 100 долларов США .

2. От необработанных данных к искусственному интеллекту с помощью Vertex AI и BigQuery.

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

Vertex AI включает в себя множество различных продуктов для поддержки сквозных данных в рабочих процессах ИИ. Ниже вы найдете обзор всех возможностей Vertex AI:

Обзор продукта Vertex

3. Вариант использования и данные FraudFinder

FraudFinder — это серия блокнотов, которые обучают комплексным данным ИИ путешествовать в Google Cloud с помощью варианта использования для обнаружения мошенничества в режиме реального времени. Из блокнотов вы узнаете, как считывать исторические данные о платежных транзакциях, хранящиеся в хранилище данных, считывать данные из живого потока новых транзакций, выполнять исследовательский анализ данных (EDA), разрабатывать функции, вставлять функции в хранилище функций, обучать модель с использованием хранилища функций, зарегистрируйте свою модель в реестре моделей, оцените свою модель, разверните ее в конечной точке, сделайте вывод о своей модели в реальном времени с помощью хранилища функций и отслеживайте свою модель.

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

Ниже вы найдете обзор архитектуры FraudFinder:

Архитектура FraudFinder

Набор данных

Набор данных синтезируется с использованием кода из проекта Machine Learning for Credit Card Fraud Detection — Practice Handbook от Kaggle . Обнаружение мошенничества в режиме реального времени архитектурно отличается от обнаружения мошенничества в пакетном режиме и характеризуется следующим:

  • Высокая частота (например, 1000 в секунду) запросов на прогнозирование.
  • Низкая задержка (например, < 1 секунды) запроса прогнозирования → ответа
  • Прогнозирование обычно производится по 1 выборке на запрос прогнозирования или может осуществляться в виде «микропакетов» (например, 1000 транзакций, отправляемых в виде пакета для вывода, близкого к реальному времени).
  • Разработка функций для обслуживания должна быть предварительно рассчитана или рассчитана в режиме реального времени.

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

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

cymbal-fraudfinder (project)
|-`tx` (dataset)  
  |-`tx` (table: transactions without labels)  
  |-`txlabels` (table: transactions with fraud labels (1 or 0))  
|-demographics  
  |-`customers` (table: profiles of customers)  
  |-`terminals` (table: profiles of terminals)  
  |-`customersterminals` (table: profiles of customers and terminals within their radius)  

Почему в режиме реального времени?

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

FraudFinder в реальном времени, потоковые данные

В рамках лаборатории FraudFinder есть общедоступные темы Pub/Sub с потоковой передачей платежных транзакций в реальном времени. Пользователи могут удобно тестировать конечные точки своей модели и функции потоковой передачи. Pub/Sub — это асинхронная и масштабируемая служба обмена сообщениями. Вы будете использовать эти темы для потоковой передачи функций и выполнения онлайн-выводов. Пользователи также могут переключаться между темами с базовым уровнем и более высоким уровнем мошенничества для отображения мониторинга модели. Доступны следующие общедоступные темы Pub/Sub:

  • ff-tx
  • ff-txlabels

4. Настройте проект и экземпляр блокнота.

Для запуска этой лабораторной работы вам понадобится проект Google Cloud Platform с включенной оплатой. Чтобы создать проект, следуйте инструкциям .

ВАЖНО : Мы советуем вам запустить эту лабораторию в новом проекте. Эта лабораторная работа охватывает множество различных продуктов, и проще всего удалить весь проект после завершения лабораторной работы.

Если у вас есть проект, продолжайте выполнять следующие шаги. Следующие шаги также можно найти в файле README.md , который находится в репозитории.

Шаг 1. Включите API

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

Облачная оболочка

Затем выполните следующий код в Cloud Shell, скопировав и вставив его. Скрипт включит необходимые API и создаст подписки Pub/Sub для чтения потоковых транзакций из общедоступных тем Pub/Sub. Пожалуйста, дайте ему некоторое время, чтобы выполнить все команды.

gcloud services enable notebooks.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable dataflow.googleapis.com
gcloud services enable bigquery.googleapis.com

gcloud pubsub subscriptions create "ff-tx-sub" --topic="ff-tx" --topic-project="cymbal-fraudfinder"
gcloud pubsub subscriptions create "ff-txlabels-sub" --topic="ff-txlabels" --topic-project="cymbal-fraudfinder"

# Run the following command to grant the Compute Engine default service account access to read and write pipeline artifacts in Google Cloud Storage.
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUM=$(gcloud projects list --filter="$PROJECT_ID" --format="value(PROJECT_NUMBER)")
gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:${PROJECT_NUM}-compute@developer.gserviceaccount.com"\
      --role='roles/storage.admin'

Шаг 2. Создайте экземпляр Vertex AI Workbench.

Затем перейдите в раздел Vertex AI вашей облачной консоли. Затем перейдите в Workbench:

Меню вершинного AI

Включите API Vertex AI Workbench (API ноутбука), если он не включен».

Notebook_api

После включения выберите «НОУТБУКИ, УПРАВЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ» :

Ноутбуки_UI

Затем выберите НОВЫЙ НОУТБУК . Вы можете выбрать Python 3.

новый_ноутбук

Дайте своему блокноту имя, например fraudfinder , затем нажмите «Дополнительные настройки» .

create_notebook

Важно ! Убедитесь, что в разделе Permissions выбрана Service Account .

Сервисный аккаунт

Важно : в разделе «Безопасность» выберите «Включить терминал», если он еще не включен.

Enable_terminal

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

Далее нажмите Создать . Подготовка экземпляра займет пару минут.

После создания экземпляра выберите «Открыть JupyterLab» .

open_jupyterlab

Шаг 3. Установите роли IAM

Для простоты предположим, что вы будете использовать учетную запись службы Compute Engine по умолчанию. Это не лучшая практика для производственных рабочих нагрузок. Лучше всего создавать выделенные учетные записи служб для каждого приложения и избегать использования учетных записей служб по умолчанию. Подробнее о рекомендациях по использованию сервисных аккаунтов можно прочитать в нашей документации . Учетная запись вычислительной службы по умолчанию будет выглядеть примерно так: 123456789123-compute@developer.gserviceaccount.com . Перейдите к администратору IAM и нажмите ADD . В представлении найдите и выберите учетную запись службы Compute Engine по умолчанию, а затем назначьте следующие роли:

  • BigQuery Admin
  • Storage Admin
  • Storage Object Admin
  • Vertex AI Administrator
  • Pub/Sub Admin

Это должно выглядеть примерно так. Не забудьте сохранить новые настройки!

iam-roles.png

Шаг 4. Клонируйте репозиторий Github.

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

Открыть терминал

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

git clone https://github.com/GoogleCloudPlatform/fraudfinder.git

Выполнение этой команды клонирует репозиторий FraudFinder в экземпляр вашего блокнота. После запуска git clone вы обнаружите папку Fraudfinder в своем экземпляре Notebook слева. Теперь перейдите в папку fraudfinder . Здесь вы найдете тетради, необходимые для лаборатории.

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

5. Настройка среды

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

  • Настройте свою среду, включая пакеты.
  • Загрузите данные в BigQuery.
  • Чтение данных из общедоступных тем Pub/Sub.

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

  • 00_environment_setup.ipynb

6. Исследовательский анализ данных

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

  • Извлекайте и исследуйте данные из BigQuery с помощью SQL.
  • Отображение данных о транзакциях с помощью BigQuery и Plotly
  • Примените агрегирование данных и создайте точечную диаграмму

Пожалуйста, перейдите к следующему блокноту и следуйте инструкциям шаг за шагом:

  • 01_exploratory_data_analysis.ipynb

7. Пакетное проектирование функций и потоковая передача

В этом разделе вы будете работать над разработкой функций для создания функций для обучения модели на основе необработанных данных. Мы будем использовать пакетную и потоковую передачу. Оба варианта использования важны для обнаружения мошенничества. В этом разделе вы охватите следующие цели обучения:

  • Как создавать функции с помощью BigQuery и SQL
  • Создайте хранилище функций Vertex AI и вставьте данные.
  • Как работать с потоковой передачей данных и загружать их в хранилище функций

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

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Обучение модели, прогнозирование, формализация и мониторинг.

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

  • Как обучить модель BigQuery ML и зарегистрировать ее в реестре моделей Vertex AI
  • Разверните модель в качестве конечной точки в Vertex AI.
  • Как использовать Vertex AI SDK
  • Как использовать модель BigQuery ML и создать сквозной конвейер машинного обучения
  • Как использовать мониторинг моделей Vertex AI

Продолжайте использовать следующие блокноты в указанном порядке и следуйте инструкциям в блокнотах. Блокноты можно найти в папке BQML. Следуйте инструкциям в блокноте шаг за шагом:

  • 04_model_training_and_prediction.ipynb
  • 05_model_training_pipeline_formalization.ipynb
  • 06_model_monitoring.ipynb
  • 07_model_inference.ipynb
🎉 Congratulations! 🎉

Вы узнали, как преобразовать данные в архитектуру искусственного интеллекта в Google Cloud!

9. Очистка

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

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