Kẻ gian lận: Từ dữ liệu thô cho đến công nghệ AI kết hợp với Vertex AI và BigQuery.

1. Tổng quan

Trong phòng thí nghiệm này, bạn sẽ tìm hiểu cách xây dựng một hệ thống dữ liệu đến AI từ đầu đến cuối để phát hiện gian lận theo thời gian thực trên Google Cloud. Mục tiêu là tìm hiểu cách chuyển từ dữ liệu thô sang quy trình học máy sẵn sàng đưa vào sản xuất chạy trên Google Cloud. Bài tập thực hành này sử dụng các sản phẩm sau đây của Google Cloud:

Bạn sẽ học được những gì?

Việc xây dựng quy trình học máy toàn diện có thể gặp nhiều khó khăn. Trong phòng thí nghiệm này, bạn sẽ tìm hiểu cách xây dựng và mở rộng một quy trình học máy toàn diện bằng cách sử dụng các dịch vụ của Google Cloud như BigQuery và Vertex AI. Chúng tôi sẽ đưa bạn vào hành trình từ dữ liệu thô đến việc sử dụng AI trong quá trình sản xuất. Mục tiêu học tập cấp cao cho lớp học này là:

  • Tìm hiểu các phương pháp hay nhất để xây dựng dữ liệu cho hệ thống AI trên Google Cloud.
  • Tìm hiểu cách thực hiện kỹ thuật trích xuất tính chất bằng BigQuery bằng SQL (để xử lý hàng loạt) và Apache Beam bằng Dataflow (xử lý theo thời gian thực) và sử dụng Vertex AI Feature Store.
  • Cách phân tích dữ liệu bằng BigQuery và các thư viện Python như Pandas và Plotly.
  • Cách huấn luyện mô hình học máy bằng BigQuery ML thông qua SQL.
  • Cách tận dụng Vertex AI để lưu trữ, triển khai và giám sát mô hình của bạn.
  • Cách sử dụng Vertex AI Pipelines để chính thức hoá dữ liệu của bạn cho quy trình làm việc AI.

LƯU Ý QUAN TRỌNG: Chi phí để chạy bài thực hành này trên Google Cloud là khoảng 100 USD.

2. Từ dữ liệu thô đến AI bằng Vertex AI và BigQuery

Phòng thí nghiệm này giới thiệu các sản phẩm AI và phân tích dữ liệu mới nhất có trên Google Cloud, chẳng hạn như Vertex AIBigQuery ML. Vertex AI và BigQuery giúp bạn dễ dàng chuyển đổi từ dữ liệu thô sang AI và mang đến trải nghiệm phát triển liền mạch để giúp bạn tăng năng suất khi đưa các mô hình vào giai đoạn sản xuất. Nếu bạn cần được hỗ trợ, vui lòng xem trang hỗ trợ.

Vertex AI có nhiều sản phẩm để hỗ trợ quy trình công việc từ đầu đến cuối về dữ liệu đến AI. Dưới đây là thông tin tổng quan về tất cả các chức năng của Vertex AI:

Tổng quan về sản phẩm Vertex

3. Trường hợp sử dụng và dữ liệu của FraudFinder

FraudFinder là một loạt sổ tay hướng dẫn toàn diện về hành trình từ dữ liệu đến AI trên Google Cloud, thông qua trường hợp sử dụng tính năng phát hiện gian lận theo thời gian thực. Trong suốt các sổ tay, bạn sẽ tìm hiểu cách đọc dữ liệu giao dịch thanh toán trước đây được lưu trữ trong kho dữ liệu, đọc từ luồng trực tiếp của các giao dịch mới, thực hiện phân tích dữ liệu khám phá (EDA), thực hiện kỹ thuật trích xuất tính chất, nhập các đặc trưng vào kho đặc trưng, huấn luyện mô hình bằng kho đặc trưng, đăng ký mô hình của bạn trong Model Registry, đánh giá mô hình, triển khai mô hình của bạn đến một điểm cuối, thực hiện suy luận theo thời gian thực trên mô hình của bạn bằng kho đặc trưng và giám sát mô hình của bạn.

Phát hiện hành vi gian lận bao gồm phân loại và phát hiện điểm bất thường, có thể nói là các miền rộng lớn trong học máy. Nhờ đó, việc phát hiện hành vi gian lận trở thành một trường hợp sử dụng phù hợp cho câu chuyện có thật, dễ hiểu và là một cách tuyệt vời để giới thiệu cũng như cung cấp dữ liệu từ đầu đến cuối cho kiến trúc AI trên Google Cloud. Bạn không cần phải là chuyên gia về hành vi gian lận để hiểu được cấu trúc toàn diện. Bạn có thể áp dụng mẫu cho kiến trúc này vào các trường hợp sử dụng khác.

Dưới đây là thông tin tổng quan về cấu trúc FraudFinder:

Cấu trúc FraudFinder

Tập dữ liệu

Tập dữ liệu này được tổng hợp bằng cách sử dụng mã từ Dự án Sổ tay thực hành về phát hiện gian lận thẻ tín dụng bằng máy học trên Kaggle. Tính năng phát hiện gian lận theo thời gian thực có cấu trúc khác với tính năng phát hiện gian lận theo lô và có những đặc điểm sau:

  • Tần suất cao (ví dụ: 1.000 yêu cầu dự đoán mỗi giây)
  • Độ trễ thấp (ví dụ: < 1 giây) của yêu cầu dự đoán → phản hồi
  • Dự đoán thường là 1 mẫu cho mỗi yêu cầu dự đoán hoặc có thể ở dạng "vi lô" (ví dụ: 1.000 giao dịch được gửi dưới dạng một lô để suy luận gần theo thời gian thực)
  • Kỹ thuật trích xuất tính chất để phân phát phải được tính toán trước hoặc tính toán theo thời gian thực

Tập dữ liệu cũ của FraudFinder

Có các bảng BigQuery công khai chứa các giao dịch thanh toán trong quá khứ, cho phép người dùng huấn luyện mô hình và thực hiện kỹ thuật trích xuất tính chất bằng cách sử dụng dữ liệu trong 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)  

Tại sao cần có tính năng theo thời gian thực?

Trong phòng thí nghiệm này, bạn sẽ tìm hiểu cách tận dụng dữ liệu theo thời gian thực và áp dụng kỹ thuật trích xuất tính chất cũng như suy luận theo thời gian thực. Các tính năng theo thời gian thực có thể giúp cải thiện mô hình của bạn bằng cách tận dụng những tín hiệu mà bạn không thể sử dụng trong thời gian suy luận.

Dữ liệu phát trực tiếp của FraudFinder

Trong phòng thí nghiệm FraudFinder, có các chủ đề Pub/Sub công khai với các giao dịch thanh toán phát trực tiếp. Người dùng có thể thuận tiện kiểm thử các điểm cuối mô hình và tính năng phát trực tiếp. Pub/Sub là một dịch vụ nhắn tin không đồng bộ và có khả năng mở rộng. Bạn sẽ sử dụng các chủ đề này để truyền trực tuyến các tính năng và thực hiện suy luận trực tuyến. Người dùng cũng có thể chuyển đổi giữa các chủ đề có tỷ lệ gian lận cơ bản so với tỷ lệ gian lận cao hơn để hiển thị hoạt động giám sát mô hình. Bạn có thể sử dụng các chủ đề Pub/Sub công khai sau:

  • ff-tx
  • ff-txlabels

4. Thiết lập dự án và phiên bản sổ tay

Bạn cần có một dự án trên Google Cloud Platform đã bật tính năng thanh toán để chạy bài thực hành này. Để tạo một dự án, hãy làm theo hướng dẫn.

QUAN TRỌNG: Bạn nên chạy lớp học này trong một dự án mới. Lớp học này bao gồm nhiều sản phẩm khác nhau và cách dễ nhất là bạn nên xoá toàn bộ dự án sau khi hoàn thành lớp học này.

Khi bạn có một dự án, vui lòng tiếp tục thực hiện các bước sau. Bạn cũng có thể xem các bước sau trong tệp README.md có trong kho lưu trữ.

Bước 1: Bật các API

Trước tiên, hãy chuyển đến dự án mà bạn vừa tạo và mở một cloud shell. Bước này có thể mất vài phút vì hệ thống sẽ cung cấp một Cloud Shell mới nếu trước đây bạn chưa bật Cloud Shell.

Cloud Shell

Tiếp theo, hãy thực thi mã sau trong Cloud Shell bằng cách sao chép và dán. Tập lệnh này sẽ bật các API cần thiết và tạo gói thuê bao Pub/Sub để đọc các giao dịch truyền trực tuyến từ các chủ đề Pub/Sub công khai. Vui lòng chờ một chút để lệnh được thực thi.

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'

Bước 2: Tạo một phiên bản Vertex AI Workbench

Tiếp theo, hãy chuyển đến mục Vertex AI trong Cloud Console. Sau đó, hãy chuyển đến Workbench:

Trình đơn Vertex AI

Bật API Vertex AI Workbench (API sổ tay) nếu chưa bật.

Notebook_api

Sau khi bật, hãy chọn SỔ TAY DO NGƯỜI DÙNG QUẢN LÝ:

Notebooks_UI

Sau đó, chọn SỔ TAY MỚI. Bạn có thể chọn Python 3.

new_notebook

Đặt tên cho sổ tay của bạn, chẳng hạn như fraudfinder, rồi nhấp vào Cài đặt nâng cao.

create_notebook

Quan trọng: Hãy nhớ chọn Service Account trong phần Permissions.

Tài khoản dịch vụ

Quan trọng: Trong phần Bảo mật, hãy chọn "Bật thiết bị đầu cuối" nếu bạn chưa bật.

enable_terminal

Bạn có thể giữ nguyên tất cả các chế độ cài đặt nâng cao khác.

Tiếp theo, hãy nhấp vào Tạo. Thực thể sẽ mất vài phút để được cấp phép.

Sau khi tạo phiên bản, hãy chọn Mở JupyterLab.

open_jupyterlab

Bước 3: Thiết lập vai trò IAM

Để đơn giản, giả sử bạn sẽ sử dụng tài khoản dịch vụ mặc định của Compute Engine. Đây không phải là phương pháp hay nhất cho các tải công việc sản xuất. Phương pháp hay nhất là tạo tài khoản dịch vụ chuyên dụng cho từng ứng dụng và tránh sử dụng tài khoản dịch vụ mặc định. Bạn có thể đọc thêm về các phương pháp hay nhất cho tài khoản dịch vụ trong tài liệu của chúng tôi. Tài khoản dịch vụ tính toán mặc định sẽ có dạng như sau: 123456789123-compute@developer.gserviceaccount.com. Chuyển đến Quản trị viên IAM rồi nhấp vào ADD. Trong chế độ xem này, hãy tìm và chọn tài khoản dịch vụ mặc định của Compute Engine, sau đó chỉ định các vai trò sau:

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

Đoạn mã sẽ trông giống như sau. Đừng quên lưu chế độ cài đặt mới!

iam-roles.png

Bước 4: Sao chép kho lưu trữ trên GitHub

Sau khi bạn tạo và truy cập vào phiên bản sổ tay, bạn có thể thiết lập môi trường. Trước tiên, hãy mở một cửa sổ dòng lệnh.

Mở cửa sổ dòng lệnh

Sao chép, dán và chạy lệnh sau trong cửa sổ dòng lệnh của sổ tay:

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

Khi chạy lệnh này, bạn sẽ nhân bản kho lưu trữ FraudFinder vào thực thể sổ tay của mình. Sau khi chạy git clone, bạn sẽ thấy thư mục fraudfinder trong phiên bản Notebook ở bên trái. Bây giờ, hãy chuyển đến thư mục fraudfinder. Tại đây, bạn sẽ tìm thấy các sổ tay cần thiết cho lớp học.

Từ các phần tiếp theo trở đi, bạn cần làm theo hướng dẫn trong sổ tay. Vui lòng tiếp tục thiết lập môi trường.

5. Thiết lập môi trường

Phần này sẽ hướng dẫn các bước thiết lập môi trường dự án. Trong phần này, bạn sẽ tìm hiểu các mục tiêu học tập sau:

  • Thiết lập môi trường, bao gồm cả các gói.
  • Tải dữ liệu vào BigQuery.
  • Đọc dữ liệu từ các chủ đề Pub/Sub công khai.

Vui lòng tiếp tục với sổ tay sau và làm theo hướng dẫn từng bước:

  • 00_environment_setup.ipynb

6. Phân tích dữ liệu khám phá

Phần này sẽ hướng dẫn bạn cách thực hiện Phân tích dữ liệu khám phá để hiểu rõ hơn về dữ liệu Gian lận. Trong phần này, bạn sẽ tìm hiểu các mục tiêu học tập sau:

  • Trích xuất và khám phá dữ liệu từ BigQuery bằng SQL
  • Vẽ biểu đồ dữ liệu giao dịch bằng BigQuery và Plotly
  • Áp dụng các phép tổng hợp dữ liệu và tạo biểu đồ tán xạ

Vui lòng tiếp tục với Notebook tiếp theo và làm theo hướng dẫn từng bước:

  • 01_exploratory_data_analysis.ipynb

7. Kỹ thuật trích xuất tính chất theo lô và truyền phát trực tuyến

Trong phần này, bạn sẽ thực hiện Kỹ thuật trích xuất đặc trưng để tạo các đặc trưng cho hoạt động huấn luyện mô hình từ dữ liệu thô. Chúng ta sẽ sử dụng cả xử lý hàng loạt và xử lý theo luồng. Cả hai trường hợp sử dụng này đều quan trọng đối với tính năng Phát hiện hành vi gian lận. Trong phần này, bạn sẽ tìm hiểu các mục tiêu học tập sau:

  • Cách tạo các đối tượng bằng BigQuery và SQL
  • Tạo Vertex AI Feature Store và chèn dữ liệu
  • Cách xử lý dữ liệu truyền trực tuyến và nhập dữ liệu đó vào Feature Store

Vui lòng tiếp tục với 2 Notebook sau theo thứ tự này và làm theo hướng dẫn trong Notebook:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Huấn luyện mô hình, dự đoán, chính thức hoá và giám sát

Trong phần này, bạn sẽ huấn luyện và triển khai mô hình BigQuery Model đầu tiên để phát hiện các trường hợp gian lận có thể xảy ra. Bạn cũng sẽ học cách lấy mã huấn luyện và triển khai, sau đó chính thức hoá mã đó thành một quy trình tự động. Bạn cũng sẽ tìm hiểu cách thực hiện dự đoán trực tuyến và giám sát mô hình của mình trong quá trình sản xuất. Trong phần này, bạn sẽ tìm hiểu các mục tiêu học tập sau:

  • Cách huấn luyện một mô hình BigQuery ML và đăng ký mô hình đó trên Vertex AI Model Registry
  • Triển khai mô hình dưới dạng một điểm cuối trên Vertex AI
  • Cách sử dụng Vertex AI SDK
  • Cách lấy mô hình học máy của BigQuery và tạo một quy trình học máy toàn diện
  • Cách sử dụng Vertex AI Model Monitoring

Vui lòng tiếp tục với các Sổ tay sau theo thứ tự này và làm theo hướng dẫn trong Sổ tay. Bạn có thể tìm thấy sổ tay trong Thư mục BQML. Làm theo từng bước trong sổ tay:

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

Bạn đã tìm hiểu cách xây dựng kiến trúc dữ liệu cho AI trên Google Cloud!

9. Dọn dẹp

Bạn nên chạy phòng thí nghiệm này trên một dự án mới. Lớp học này bao gồm nhiều sản phẩm khác nhau, nên cách dễ nhất là bạn xoá toàn bộ dự án sau khi hoàn thành lớp học. Trong tài liệu của chúng tôi, bạn có thể tìm thêm thông tin về cách xoá dự án.

Nếu bạn muốn xoá các dịch vụ, vui lòng làm theo hướng dẫn trong phần Sổ tay hoặc xoá các tài nguyên đã tạo.