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

1. ภาพรวม

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

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

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

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

สำคัญ: ค่าใช้จ่ายในการเรียกใช้ห้องทดลองนี้ใน Google Cloud จะอยู่ที่ประมาณ 3,000 บาท

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 เป็นชุดสมุดบันทึกที่สอนข้อมูลที่ครอบคลุมเกี่ยวกับเส้นทางการทำงานของ AI บน Google Cloud ผ่านกรณีการใช้งานของการตรวจจับการฉ้อโกงแบบเรียลไทม์ ในสมุดบันทึก คุณจะได้เรียนรู้วิธีอ่านข้อมูลธุรกรรมการชำระเงินที่ผ่านมาที่จัดเก็บไว้ในคลังข้อมูล, อ่านสตรีมแบบสดของธุรกรรมใหม่, วิเคราะห์ข้อมูลเชิงสำรวจ (EDA), ดำเนินการวิศวกรรมฟีเจอร์, นำเข้าฟีเจอร์ไปยัง Feature Store, ฝึกโมเดลโดยใช้ร้านค้าฟีเจอร์, ลงทะเบียนโมเดลในรีจิสทรีโมเดล, ประเมินโมเดล, ทำให้โมเดลใช้งานได้ที่ปลายทาง ตรวจสอบการอนุมานแบบเรียลไทม์เกี่ยวกับโมเดลด้วย Feature Store และตรวจสอบโมเดลของคุณแบบเรียลไทม์

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

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

สถาปัตยกรรมของตัวช่วยค้นหาการฉ้อโกง

ชุดข้อมูล

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

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

ชุดข้อมูลในอดีตของ 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 ที่เปิดใช้การเรียกเก็บเงินเพื่อเรียกใช้ห้องทดลองนี้ หากต้องการสร้างโปรเจ็กต์ ให้ทำตามวิธีการ

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

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

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

ก่อนอื่นให้ไปที่โปรเจ็กต์ที่คุณเพิ่งสร้างขึ้นและเปิด Cloud Shell ขั้นตอนนี้อาจใช้เวลาสักครู่เนื่องจากจะจัดสรร 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

เมื่อเปิดใช้แล้ว ให้เลือกสมุดบันทึกที่จัดการโดยผู้ใช้

Notebooks_UI

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

new_notebook

ตั้งชื่อสมุดบันทึก เช่น fraudfinder แล้วคลิกการตั้งค่าขั้นสูง

create_notebook

สำคัญ: โปรดเลือก Service Account ใน Permissions

บัญชีบริการ

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

enable_terminal

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

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

เมื่อสร้างอินสแตนซ์แล้ว ให้เลือก Open 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

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

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

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

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

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

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

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

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

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

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

  • 00_environment_setup.ipynb

6. การวิเคราะห์ข้อมูลเชิงสำรวจ

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

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

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

  • 01_exploratory_data_analysis.ipynb

7. กลุ่มงานวิศวกรรมฟีเจอร์และสตรีมมิง

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

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

โปรดดำเนินการในสมุดบันทึกสองชุดต่อไปนี้ตามลำดับนี้ และทำตามคำแนะนำในสมุดบันทึก:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

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

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

  • วิธีฝึกโมเดล ML ของ BigQuery และลงทะเบียนใน Vertex AI Model Registry
  • ทำให้โมเดลใช้งานได้เป็นปลายทางใน Vertex AI
  • วิธีใช้ Vertex AI SDK
  • คุณจะใช้โมเดล ML ของ 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! 🎉

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

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

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

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