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 tích hợp dữ liệu toàn diện vào hệ thống AI để 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 việc có một quy trình học máy sẵn sàng chạy trên Google Cloud. Phòng thí nghiệm này sử dụng các sản phẩm sau đây của Google Cloud:

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

Việc xây dựng quy trình học máy toàn diện có thể là việc 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 quy trình học máy toàn diện bằ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 chuyển từ dữ liệu thô sang sử dụng AI trong môi trường thực tế. Mục tiêu học tập tổng thể của phòng thí nghiệm này là:

  • Tìm hiểu các phương pháp hay nhất để xây dựng dữ liệu cho các hệ thống AI trên Google Cloud.
  • Tìm hiểu cách áp dụng kỹ thuật trích xuất tính chất với 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ửa hàng tính năng của Vertex AI).
  • Cách phân tích dữ liệu bằng các thư viện BigQuery và Python như Pandas và Graphly.
  • 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 Quy trình Vertex AI để hợp thức hoá dữ liệu cho quy trình làm việc của AI.

QUAN TRỌNG: Chi phí chạy phòng thí nghiệm này trên Google Cloud là khoảng 100 USD.

2. Từ dữ liệu thô đến công nghệ trí tuệ nhân tạo (AI) với Vertex AI và BigQuery

Phòng thí nghiệm này giới thiệu các sản phẩm mới nhất về phân tích dữ liệu và AI trên Google Cloud như Vertex AIBigQuery ML. Với Vertex AI và BigQuery, bạn có thể chuyển dữ liệu thô sang AI một cách dễ dàng hơn, đồng thời cung cấp trải nghiệm phát triển liền mạch để tăng năng suất khi đưa các mô hình vào môi trường thực 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ợ dữ liệu hai đầu cho các quy trình làm việc dựa trên AI. Dưới đây là thông tin tổng quan về tất cả các tính năng của Vertex AI:

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

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

Gian lận là một loạt sổ tay cung cấp kiến thức toàn diện cho hành trình sử dụng AI trên Google Cloud, thông qua trường hợp sử dụng phát hiện gian lận theo thời gian thực. Trong sổ tay này, 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 giao dịch mới trực tiếp, thực hiện phân tích dữ liệu khám phá (EDA), thực hiện kỹ thuật tính năng, nhập tính năng vào kho tính năng, huấn luyện mô hình bằng kho tính năng, đăng ký mô hình trong sổ đăng ký mô hình, đánh giá mô hình, triển khai mô hình tới điểm cuối, tiến hành suy luận theo thời gian thực trên mô hình với cửa hàng tính năng và giám sát mô hình của bạn.

Tính năng phát hiện gian lận bao gồm việc phân loại và phát hiện hoạt động bất thường, những miền được cho là có phạm vi rộng trong công nghệ học máy. Nhờ vậy, tính năng phát hiện gian lận là một trường hợp sử dụng hiệu quả để kể một câu chuyện có thật, dễ hiểu, đồng thời là một cách hiệu quả để trình bày và trình bày toàn diện dữ liệu lên kiến trúc AI trên Google Cloud. Bạn không cần phải là chuyên gia về gian lận để hiểu được cấu trúc toàn diện. Mẫu của cấu trúc này có thể được áp dụng cho 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 của Gian lận:

Cấu trúc gianFinder

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ã của Machine Learning để phát hiện gian lận thẻ tín dụng – Dự án Sổ tay thực hành của Kaggle. Tính năng phát hiện gian lận theo thời gian thực khác về mặt cấu trúc với phát hiện gian lận theo lô và có những đặc điểm sau:

  • Tần suất cao (ví dụ: 1000 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
  • Thông tin dự đoán thường là trên 1 mẫu cho mỗi yêu cầu dự đoán hoặc có thể nằm trong "các lô cực nhỏ" (ví dụ: 1000 giao dịch được gửi dưới dạng một lô để suy luận gần như theo thời gian thực)
  • Kỹ thuật tính năng để 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 trước đây của GianFinder

Có các bảng công khai trong BigQuery 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 của họ và tiến hành kỹ thuật tính năng dựa trên 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 nên sử dụng 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 để áp dụng kỹ thuật và suy luận cho tính năng 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 các 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, phát trực tiếp của GianFinder

Trong phòng thí nghiệm Lừa đảo này, chúng tôi có các chủ đề Pub/Sub công khai về các giao dịch thanh toán phát trực tiếp mà người dùng có thể dễ dàng kiểm tra các điểm cuối của mô hình và các tính năng truyền trực tuyến. Pub/Sub là một dịch vụ nhắn tin không đồng bộ và có thể mở rộng. Bạn sẽ dùng những chủ đề này để xem trực tuyến các tính năng và 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ơ sở và tỷ lệ gian lận cao hơn để theo dõi mô hình hiển thị. Có các chủ đề Pub/Sub công khai sau đây:

  • ff-tx
  • ff-txlabels

4. Thiết lập dự án và thực thể sổ tay

Bạn sẽ cần một dự án Google Cloud Platform đã bật tính năng thanh toán để chạy phòng thí nghiệm 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 phòng thí nghiệm này trong một dự án mới. Phòng thí nghiệm này đề cập đến nhiều sản phẩm và tốt nhất là bạn nên xoá toàn bộ dự án sau khi hoàn tất phòng thí nghiệm 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 đây trong tệp README.md trong kho lưu trữ.

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

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

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 đăng ký 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ờ trong giây lát để thực thi tất cả các lệnh.

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 thực thể Vertex AI Workbench

Tiếp theo, hãy chuyển đến mục Vertex AI trên Cloud Console. Sau đó, hãy điều hướng đến Workbench:

Trình đơn Vertex AI

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

Notebook_api

Sau khi bật, hãy chọn SÁCH GHI CHÚ do NGƯỜI DÙNG QUẢN LÝ:

Notebooks_UI

Sau đó, chọn SÁCH LƯU Ý 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, sau đó nhấp vào Cài đặt nâng cao.

create_notebook

Quan trọng: 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 chưa được bật.

enable_terminal

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

Tiếp theo, hãy nhấp vào Tạo. Quá trình cung cấp thực thể này sẽ mất vài phút.

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

open_jupyterlab

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

Để cho đơ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 khối lượng 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 biệt 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 đối với 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ụ mặc định của Compute Engine sẽ có dạng như sau: 123456789123-compute@developer.gserviceaccount.com. Chuyển đến phần Quản trị IAM rồi nhấp vào ADD. Trong chế độ xem này, hãy tìm kiế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

Mã sẽ có dạng như sau. Đừng quên lưu các chế độ cài đặt mới!

iam-roles.png

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

Sau khi bạn tạo và truy cập vào thực thể sổ tay của mình, đã đến lúc 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ổ 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

Việc chạy lệnh này sẽ sao chép kho lưu trữ Gian lận vào thực thể sổ tay của bạn. Sau khi chạy git clone, bạn sẽ thấy thư mục trình tìm gian lận 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 phòng thí nghiệm này.

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ẽ giới thiệu các bước giúp bạn thiết lập môi trường dự án. Trong phần này, bạn sẽ đề cập đến các mục tiêu học tập sau:

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

Vui lòng tiếp tục với sổ tay sau đây 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 tiến hành 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ẽ đề cập đến 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ẽ đồ thị dữ liệu giao dịch bằng BigQuery và Schedulely
  • Áp dụng phương 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 Sổ tay tiếp theo và làm theo hướng dẫn từng bước:

  • 01_exploratory_data_analysis.ipynb

7. Luồng kỹ thuật và luồng kỹ thuật tính năng

Trong phần này, bạn sẽ tìm hiểu về Kỹ thuật tính năng để tạo các tính năng nhằm huấn luyện mô hình từ dữ liệu thô. Chúng ta sẽ dùng thao tác hàng loạt và truyền trực tuyến. Cả hai trường hợp sử dụng đều quan trọng để phát hiện gian lận. Trong phần này, bạn sẽ đề cập đến các mục tiêu học tập sau:

  • Cách tạo tính năng bằng BigQuery và SQL
  • Tạo Kho tính năng của Vertex AI 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 Cửa hàng tính năng

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

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

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

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

  • Cách huấn luyện một mô hình học máy BigQuery và đăng ký mô hình đó trên Vertex AI Model Registry
  • Triển khai mô hình ở dạng một điểm cuối trên Vertex AI
  • Cách sử dụng Vertex AI SDK
  • Cách sử dụng mô hình học máy BigQuery và tạo quy trình học máy toàn diện
  • Cách sử dụng giải pháp Giám sát mô hình Vertex AI

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 các sổ tay này trong Thư mục BQML. Hãy làm theo hướng dẫn 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 dữ liệu cho kiến trúc AI trên Google Cloud!

9. Dọn dẹp

Chúng tôi muốn khuyên bạn chạy phòng thí nghiệm này trên một dự án mới. Phòng thí nghiệm này đề cập đến nhiều sản phẩm. Vì vậy, tốt nhất là bạn nên xoá toàn bộ dự án sau khi hoàn tất phòng thí nghiệm này. 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á dịch vụ, vui lòng làm theo hướng dẫn trong Sổ tay hoặc xoá các tài nguyên đã tạo.