FraudFinder: จากข้อมูลดิบไปจนถึง AI ด้วย Vertex AI และ BigQuery

1. ภาพรวม

ในแล็บนี้ คุณจะได้เรียนรู้วิธีสร้างระบบข้อมูลเป็น AI แบบครบวงจรสำหรับการตรวจจับการประพฤติมิชอบแบบเรียลไทม์ใน Google Cloud เป้าหมายคือการทำความเข้าใจวิธีเปลี่ยนจากข้อมูลดิบไปเป็นการมีไปป์ไลน์ ML ที่พร้อมใช้งานจริงซึ่งทำงานบน Google Cloud Lab นี้ใช้ผลิตภัณฑ์ Google Cloud ต่อไปนี้

สิ่งที่คุณจะได้เรียนรู้

การสร้างไปป์ไลน์ ML แบบต้นทางถึงปลายทางอาจไม่ใช่เรื่องง่าย ในแล็บนี้ คุณจะได้เรียนรู้วิธีสร้างและปรับขนาดไปป์ไลน์ ML แบบครบวงจรโดยใช้บริการของ Google Cloud เช่น BigQuery และ Vertex AI เราจะพาคุณไปดูเส้นทางจากข้อมูลดิบไปสู่การใช้ AI ในเวอร์ชันที่ใช้งานจริง วัตถุประสงค์การเรียนรู้ระดับสูงสำหรับแล็บนี้มีดังนี้

  • ดูแนวทางปฏิบัติแนะนำสำหรับการสร้างข้อมูลไปยังระบบ AI ใน Google Cloud
  • ดูวิธีทำการออกแบบฟีเจอร์ด้วย BigQuery โดยใช้ SQL (สำหรับการประมวลผลแบบกลุ่ม) และ Apache Beam โดยใช้ Dataflow (การประมวลผลแบบเรียลไทม์) และใช้ Vertex AI Feature Store
  • วิธีวิเคราะห์ข้อมูลโดยใช้ BigQuery และไลบรารี Python เช่น Pandas และ Plotly
  • วิธีฝึกโมเดล ML ด้วย BigQuery ML ผ่าน SQL
  • วิธีใช้ประโยชน์จาก Vertex AI เพื่อจัดเก็บ ทำให้ใช้งานได้ และตรวจสอบโมเดล
  • วิธีใช้ Vertex AI Pipelines เพื่อจัดรูปแบบข้อมูลให้เป็นเวิร์กโฟลว์ AI

สำคัญ: ค่าใช้จ่ายในการเรียกใช้แล็บนี้ใน Google Cloud อยู่ที่ประมาณ $100

2. จากข้อมูลดิบสู่ AI ด้วย Vertex AI และ BigQuery

แล็บนี้ครอบคลุมผลิตภัณฑ์การวิเคราะห์ข้อมูลและ AI ล่าสุดที่มีให้บริการใน Google Cloud เช่น Vertex AI และ BigQuery ML Vertex AI และ BigQuery ช่วยให้การเปลี่ยนจากข้อมูลดิบไปเป็น AI ง่ายขึ้น และมอบประสบการณ์การพัฒนาที่ราบรื่นเพื่อช่วยให้คุณมีประสิทธิภาพมากขึ้นในการนำโมเดลไปใช้งานจริง หากต้องการความช่วยเหลือ โปรดดูหน้าการสนับสนุน

Vertex AI มีผลิตภัณฑ์มากมายที่แตกต่างกันเพื่อรองรับเวิร์กโฟลว์ตั้งแต่รวบรวมข้อมูลไปจนถึงนำ AI ไปใช้ คุณจะดูภาพรวมของความสามารถทั้งหมดของ Vertex AI ได้ที่ด้านล่าง

ภาพรวมผลิตภัณฑ์ Vertex

3. กรณีการใช้งานและข้อมูลของ FraudFinder

FraudFinder คือชุด Notebook ที่สอนเส้นทางข้อมูลที่ครอบคลุมไปยัง AI ใน Google Cloud ผ่านกรณีการใช้งานการตรวจจับการประพฤติมิชอบแบบเรียลไทม์ ใน Notebook คุณจะได้เรียนรู้วิธีอ่านข้อมูลธุรกรรมการชำระเงินที่ผ่านมาซึ่งจัดเก็บไว้ในคลังข้อมูล อ่านจากไลฟ์สดของธุรกรรมใหม่ ดำเนินการวิเคราะห์ข้อมูลเบื้องต้น (EDA) ทำ Feature Engineering นำเข้าฟีเจอร์ไปยัง Feature Store ฝึกโมเดลโดยใช้ Feature Store ลงทะเบียนโมเดลใน Model Registry ประเมินโมเดลของคุณ ทำให้โมเดลใช้งานได้ที่ปลายทาง ทำการอนุมานแบบเรียลไทม์ในโมเดลของคุณด้วย Feature Store และตรวจสอบโมเดล

การตรวจหาการฉ้อโกงครอบคลุมการจัดประเภทและการตรวจหาความผิดปกติ ซึ่งเป็นโดเมนที่กว้างขวางในแมชชีนเลิร์นนิง การตรวจจับการประพฤติมิชอบจึงเป็นกรณีการใช้งานที่ดีสำหรับเรื่องราวที่เกิดขึ้นจริงซึ่งเข้าใจได้ง่าย และเป็นวิธีที่ยอดเยี่ยมในการแสดงสถาปัตยกรรมข้อมูลตั้งแต่ต้นทางถึงปลายทางไปยัง AI ใน Google Cloud คุณไม่จำเป็นต้องเป็นผู้เชี่ยวชาญด้านการฉ้อโกงเพื่อทำความเข้าใจสถาปัตยกรรมแบบครบวงจร คุณสามารถนำรูปแบบของสถาปัตยกรรมไปใช้กับกรณีการใช้งานอื่นๆ ได้

ด้านล่างนี้คือภาพรวมของสถาปัตยกรรม FraudFinder

สถาปัตยกรรม FraudFinder

ชุดข้อมูล

ชุดข้อมูลนี้สังเคราะห์ขึ้นโดยใช้โค้ดจากโปรเจ็กต์คู่มือเชิงปฏิบัติเกี่ยวกับแมชชีนเลิร์นนิงสำหรับการตรวจหาการประพฤติมิชอบด้วยบัตรเครดิตจาก Kaggle การตรวจหาการฉ้อโกงแบบเรียลไทม์มีสถาปัตยกรรมที่แตกต่างจากการตรวจหาการฉ้อโกงแบบเป็นชุด และมีลักษณะดังนี้

  • คำขอการคาดการณ์ที่มีความถี่สูง (เช่น 1,000 รายการต่อวินาที)
  • เวลาในการตอบสนองต่ำ (เช่น น้อยกว่า 1 วินาที) ของคำขอการคาดการณ์ → การตอบกลับ
  • โดยปกติแล้ว การคาดการณ์จะทำต่อ 1 ตัวอย่างต่อคำขอการคาดการณ์ หรืออาจอยู่ใน "กลุ่มเล็กๆ" (เช่น ส่งธุรกรรม 1,000 รายการเป็นกลุ่มสำหรับการอนุมานแบบเรียลไทม์ที่ใกล้เคียง)
  • Feature Engineering สำหรับการแสดงโฆษณาต้องคำนวณล่วงหน้าหรือคำนวณแบบเรียลไทม์

ชุดข้อมูลย้อนหลังของ FraudFinder

มีตาราง BigQuery สาธารณะที่มีธุรกรรมการชำระเงินในอดีต ซึ่งช่วยให้ผู้ใช้ฝึกโมเดลและทำการ Feature Engineering โดยใช้ข้อมูลใน 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)  

เหตุผลที่ต้องใช้เรียลไทม์

ในแล็บนี้ คุณจะได้เรียนรู้วิธีใช้ประโยชน์จากข้อมูลแบบเรียลไทม์ รวมถึงการใช้ Feature Engineering และการอนุมานแบบเรียลไทม์ ฟีเจอร์แบบเรียลไทม์ช่วยปรับปรุงโมเดลได้โดยใช้ประโยชน์จากสัญญาณที่คุณจะใช้ไม่ได้ในเวลาอนุมาน

ข้อมูลการสตรีมสดของ FraudFinder

ในส่วนของ FraudFinder Lab จะมีหัวข้อ Pub/Sub แบบสาธารณะที่มีธุรกรรมการชำระเงินสำหรับการไลฟ์สด ซึ่งผู้ใช้สามารถทดสอบปลายทางของโมเดลและฟีเจอร์สตรีมได้อย่างสะดวก Pub/Sub เป็นบริการรับส่งข้อความแบบอะซิงโครนัสที่ปรับขนาดได้ คุณจะใช้หัวข้อเหล่านี้เพื่อสตรีมฟีเจอร์และทำการอนุมานออนไลน์ นอกจากนี้ ผู้ใช้ยังสลับระหว่างหัวข้อที่มีอัตราการฉ้อโกงพื้นฐานกับอัตราการฉ้อโกงที่สูงกว่าเพื่อแสดงการตรวจสอบโมเดลได้ด้วย หัวข้อ Pub/Sub สาธารณะต่อไปนี้พร้อมใช้งาน

  • ff-tx
  • ff-txlabels

4. ตั้งค่าโปรเจ็กต์และอินสแตนซ์ Notebook

คุณจะต้องมีโปรเจ็กต์ Google Cloud Platform ที่เปิดใช้การเรียกเก็บเงินเพื่อเรียกใช้แล็บนี้ หากต้องการสร้างโปรเจ็กต์ ให้ทำตามวิธีการ

สำคัญ: เราขอแนะนำให้คุณเรียกใช้ Lab นี้ในโปรเจ็กต์ใหม่ แล็บนี้ครอบคลุมผลิตภัณฑ์ที่แตกต่างกันมากมาย และวิธีที่ง่ายที่สุดคือการลบทั้งโปรเจ็กต์หลังจากที่ทำแล็บเสร็จแล้ว

เมื่อมีโปรเจ็กต์แล้ว โปรดทำตามขั้นตอนต่อไปนี้ คุณยังดูขั้นตอนต่อไปนี้ได้ในไฟล์ README.md ที่อยู่ในที่เก็บ

ขั้นตอนที่ 1: เปิดใช้ API

ก่อนอื่น ให้ไปที่โปรเจ็กต์ที่คุณเพิ่งสร้างและเปิด Cloud Shell ขั้นตอนนี้อาจใช้เวลา 2-3 นาทีเนื่องจากระบบจะจัดสรร Cloud Shell ใหม่ให้หากคุณยังไม่ได้เปิดใช้

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 ของ Cloud Console จากนั้นไปที่ Workbench โดยทำดังนี้

เมนู Vertex AI

เปิดใช้ Vertex AI Workbench (Notebook API) API หากยังไม่ได้เปิดใช้

Notebook_api

เมื่อเปิดใช้แล้ว ให้เลือก NOTEBOOK ที่ผู้ใช้จัดการ

Notebooks_UI

จากนั้นเลือก NOTEBOOK ใหม่ คุณเลือก Python 3 ได้

new_notebook

ตั้งชื่อ Notebook เช่น fraudfinder แล้วคลิกการตั้งค่าขั้นสูง

create_notebook

สำคัญ: ตรวจสอบว่าคุณเลือก Service Account ในส่วน Permissions

บัญชีบริการ

สำคัญ: ในส่วนความปลอดภัย ให้เลือก "เปิดใช้เทอร์มินัล" หากยังไม่ได้เปิดใช้

enable_terminal

คุณปล่อยให้การตั้งค่าขั้นสูงอื่นๆ ทั้งหมดเป็นไปตามเดิมได้

จากนั้นคลิกสร้าง ระบบจะใช้เวลา 2-3 นาทีในการจัดสรรอินสแตนซ์

เมื่อสร้างอินสแตนซ์แล้ว ให้เลือกเปิด JupyterLab

open_jupyterlab

ขั้นตอนที่ 3: ตั้งค่าบทบาท IAM

เพื่อความสะดวก เราจะถือว่าคุณใช้บัญชีบริการเริ่มต้นของ Compute Engine นี่ไม่ใช่แนวทางปฏิบัติแนะนำสำหรับภาระงานเวอร์ชันที่ใช้งานจริง แนวทางปฏิบัติแนะนำคือการสร้างบัญชีบริการเฉพาะสำหรับแต่ละแอปพลิเคชัน และหลีกเลี่ยงการใช้บัญชีบริการเริ่มต้น อ่านข้อมูลเพิ่มเติมเกี่ยวกับแนวทางปฏิบัติแนะนำสำหรับบัญชีบริการได้ในเอกสารประกอบ บัญชีบริการ Compute เริ่มต้นจะมีลักษณะดังนี้ 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

เมื่อสร้างและเข้าถึงอินสแตนซ์ Notebook แล้ว ก็ถึงเวลาตั้งค่าสภาพแวดล้อม ก่อนอื่นให้เปิดหน้าต่างเทอร์มินัล

เปิดเทอร์มินัล

คัดลอก วาง และเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัลของ Notebook

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

การเรียกใช้คำสั่งนี้จะโคลนที่เก็บ FraudFinder ลงในอินสแตนซ์ Notebook หลังจากเรียกใช้ git clone คุณจะเห็นโฟลเดอร์ fraudfinder ในอินสแตนซ์ Notebook ทางด้านซ้าย ตอนนี้ให้ไปที่โฟลเดอร์ fraudfinder คุณจะเห็น Notebook ที่จำเป็นสำหรับ Lab ที่นี่

ตั้งแต่ส่วนถัดไปเป็นต้นไป คุณจะต้องทำตามวิธีการใน Notebook โปรดตั้งค่าสภาพแวดล้อมต่อไป

5. การตั้งค่าสภาพแวดล้อม

ส่วนนี้จะอธิบายขั้นตอนต่างๆ เพื่อช่วยตั้งค่าสภาพแวดล้อมของโปรเจ็กต์ ในส่วนนี้ คุณจะได้เรียนรู้ตามวัตถุประสงค์การเรียนรู้ต่อไปนี้

  • ตั้งค่าสภาพแวดล้อม รวมถึงแพ็กเกจ
  • โหลดข้อมูลลงใน BigQuery
  • อ่านข้อมูลจากหัวข้อ Pub/Sub สาธารณะ

โปรดใช้ Notebook ต่อไปนี้และทำตามวิธีการทีละขั้นตอน

  • 00_environment_setup.ipynb

6. การวิเคราะห์ข้อมูลเบื้องต้น

ส่วนนี้จะสอนวิธีทำการวิเคราะห์ข้อมูลเบื้องต้นเพื่อทำความเข้าใจข้อมูลการประพฤติมิชอบให้ดียิ่งขึ้น ในส่วนนี้ คุณจะได้เรียนรู้ตามวัตถุประสงค์การเรียนรู้ต่อไปนี้

  • ดึงและสํารวจข้อมูลจาก BigQuery โดยใช้ SQL
  • พล็อตข้อมูลธุรกรรมโดยใช้ BigQuery และ Plotly
  • ใช้การรวบรวมข้อมูลและสร้างแผนภูมิกระจาย

โปรดดำเนินการต่อด้วย Notebook ถัดไปและทำตามวิธีการทีละขั้นตอน

  • 01_exploratory_data_analysis.ipynb

7. การประมวลผลแบบกลุ่มและการประมวลผลแบบสตรีมของ Feature Engineering

ในส่วนนี้ คุณจะได้ทํางานด้านการออกแบบฟีเจอร์เพื่อสร้างฟีเจอร์สําหรับการฝึกโมเดลจากข้อมูลดิบ เราจะใช้การประมวลผลแบบกลุ่มและการประมวลผลแบบสตรีม ทั้ง 2 กรณีการใช้งานนี้มีความสำคัญต่อการตรวจหาการประพฤติมิชอบ ในส่วนนี้ คุณจะได้เรียนรู้ตามวัตถุประสงค์การเรียนรู้ต่อไปนี้

  • วิธีสร้างฟีเจอร์โดยใช้ BigQuery และ SQL
  • สร้าง Vertex AI Feature Store และแทรกข้อมูล
  • วิธีจัดการข้อมูลสตรีมมิงและนำเข้าสู่ Feature Store

โปรดดำเนินการต่อด้วย Notebook 2 รายการต่อไปนี้ตามลำดับและทำตามวิธีการใน Notebook

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. การฝึก การคาดการณ์ การกำหนดรูปแบบ และการตรวจสอบโมเดล

ในส่วนนี้ คุณจะฝึกและทำให้ใช้งานได้โมเดล BigQuery ML แรกเพื่อตรวจหาเคสการประพฤติมิชอบที่อาจเกิดขึ้น นอกจากนี้ คุณยังจะได้เรียนรู้วิธีนำโค้ดการฝึกและโค้ดการติดตั้งใช้งานมาจัดรูปแบบให้เป็นไปป์ไลน์อัตโนมัติ นอกจากนี้ คุณยังจะได้เรียนรู้วิธีทำการคาดการณ์ออนไลน์และตรวจสอบโมเดลในการใช้งานจริงด้วย ในส่วนนี้ คุณจะได้เรียนรู้ตามวัตถุประสงค์การเรียนรู้ต่อไปนี้

  • วิธีฝึกโมเดล BigQuery ML และลงทะเบียนใน Vertex AI Model Registry
  • ติดตั้งใช้งานโมเดลเป็นปลายทางใน Vertex AI
  • วิธีใช้ Vertex AI SDK
  • วิธีนำโมเดล ML ของ BigQuery ไปสร้างไปป์ไลน์ ML แบบต้นทางถึงปลายทาง
  • วิธีใช้ Vertex AI Model Monitoring

โปรดใช้ Notebook ต่อไปนี้ตามลำดับและทำตามวิธีการใน Notebook Notebook จะอยู่ในโฟลเดอร์ BQML ทำตามขั้นตอนใน Notebook ดังนี้

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

คุณได้เรียนรู้วิธีสร้างสถาปัตยกรรมข้อมูลเป็น AI ใน Google Cloud แล้ว

9. ล้างข้อมูล

เราขอแนะนำให้คุณเรียกใช้ Lab นี้ในโปรเจ็กต์ใหม่ เนื่องจาก Lab นี้ครอบคลุมผลิตภัณฑ์ที่แตกต่างกันมากมาย การลบทั้งโปรเจ็กต์หลังจากที่ทำ Lab เสร็จแล้วจึงเป็นวิธีที่ง่ายที่สุด ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีกระบวนการลบโปรเจ็กต์ได้ในเอกสารประกอบ

หากต้องการลบบริการแทน โปรดทำตามวิธีการใน Notebook หรือลบทรัพยากรที่สร้างขึ้น