Vertex AI: การสร้างโมเดลการตรวจจับการฉ้อโกงด้วย AutoML

1. ภาพรวม

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

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

โดยคุณจะได้เรียนรู้วิธีต่อไปนี้

  • อัปโหลดชุดข้อมูลที่มีการจัดการไปยัง Vertex AI
  • ฝึกโมเดลด้วย AutoML
  • ทำให้โมเดล AutoML ที่ฝึกแล้วใช้งานได้ในปลายทาง และใช้ปลายทางนั้นเพื่อรับการคาดการณ์

ค่าใช้จ่ายทั้งหมดในการเรียกใช้ Lab นี้ใน Google Cloud อยู่ที่ประมาณ $22

2. ข้อมูลเบื้องต้นเกี่ยวกับ Vertex AI

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

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

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

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

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

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

ไปที่ Compute Engine แล้วเลือกเปิดใช้หากยังไม่ได้เปิดใช้ คุณจะต้องใช้ข้อมูลนี้เพื่อสร้างอินสแตนซ์ Notebook

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

ไปที่ส่วน Vertex AI ของ Cloud Console แล้วคลิกเปิดใช้ Vertex AI API

แดชบอร์ด Vertex

ขั้นตอนที่ 3: สร้างอินสแตนซ์ Vertex AI Workbench

จากส่วน Vertex AI ของ Cloud Console ให้คลิก Workbench

เมนู Vertex AI

จากนั้นใน Notebook ที่ผู้ใช้จัดการ ให้คลิก Notebook ใหม่

สร้าง Notebook ใหม่

จากนั้นเลือกประเภทอินสแตนซ์ TensorFlow Enterprise (พร้อม LTS) เวอร์ชันล่าสุดที่ไม่มี GPU ดังนี้

อินสแตนซ์ TFE

ใช้ตัวเลือกเริ่มต้น แล้วคลิกสร้าง

ขั้นตอนที่ 5: เปิด Notebook

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

เปิด Notebook

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

4. สร้างชุดข้อมูลที่มีการจัดการ

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

ขั้นตอนที่ 1: สร้างชุดข้อมูล

ในเมนู Vertex ในคอนโซล ให้เลือกชุดข้อมูล

เลือกชุดข้อมูล

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

จากหน้าชุดข้อมูล ให้ตั้งชื่อชุดข้อมูล จากนั้นเลือกแบบตารางและการถดถอย/การจัดประเภท จากนั้นสร้างชุดข้อมูลโดยทำดังนี้

สร้างชุดข้อมูล

คุณมีตัวเลือกในการนำเข้าข้อมูลไปยังชุดข้อมูลที่มีการจัดการใน Vertex ดังนี้

  • การอัปโหลดไฟล์ในเครื่องจากคอมพิวเตอร์
  • การเลือกไฟล์จาก Cloud Storage
  • การเลือกข้อมูลจาก BigQuery

ในที่นี้เราจะอัปโหลดข้อมูลจากตาราง BigQuery สาธารณะ

ขั้นตอนที่ 2: นำเข้าข้อมูลจาก BigQuery

เลือก "เลือกตารางหรือมุมมองจาก BigQuery" เป็นวิธีการนำเข้า แล้วคัดลอกข้อมูลต่อไปนี้ลงในช่องตาราง BigQuery: bigquery-public-data.ml_datasets.ulb_fraud_detection จากนั้นเลือกต่อไป

นำเข้าข้อมูล BQ

คุณควรเห็นข้อมูลคล้ายกับตัวอย่างต่อไปนี้หลังจากนำเข้าชุดข้อมูล

ข้อมูลที่นำเข้า

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

5. ฝึกโมเดลด้วย AutoML

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

  • AutoML: ฝึกโมเดลที่มีคุณภาพสูงอย่างง่ายดายโดยไม่ต้องมีความเชี่ยวชาญขั้นสูงด้าน ML
  • การฝึกที่กำหนดเอง: เรียกใช้แอปพลิเคชันการฝึกที่กำหนดเองในระบบคลาวด์โดยใช้หนึ่งในคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าของ Google Cloud หรือใช้คอนเทนเนอร์ของคุณเอง

ในแล็บนี้ เราจะใช้ AutoML เพื่อการฝึก

ขั้นตอนที่ 1: เริ่มงานการฝึก

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

ขั้นตอนที่ 1 ของการฝึกโมเดล

ตั้งชื่อโมเดล หรือจะใช้ชื่อเริ่มต้นก็ได้ เลือกคลาสในส่วนคอลัมน์เป้าหมาย นี่คือจำนวนเต็มที่ระบุว่าธุรกรรมหนึ่งๆ เป็นการฉ้อโกงหรือไม่ (0 สำหรับธุรกรรมที่ไม่ใช่การฉ้อโกง 1 สำหรับธุรกรรมที่เป็นการฉ้อโกง)

จากนั้นเลือกต่อไป

ขั้นตอนที่ 2 ของการฝึกโมเดล

ในขั้นตอนนี้ ให้เลื่อนลงแล้วคลิกเพื่อขยายตัวเลือกขั้นสูง เนื่องจากชุดข้อมูลนี้มีความไม่สมดุลอย่างมาก (ข้อมูลน้อยกว่า 1% มีธุรกรรมที่เป็นการประพฤติมิชอบ) ให้เลือกตัวเลือก AUC PRC ซึ่งจะเพิ่มความแม่นยำ-การเรียกคืนสำหรับคลาสที่พบได้น้อย

ตัวเลือกการฝึกขั้นสูง

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

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

6. สํารวจเมตริกการประเมินโมเดล

ในขั้นตอนนี้ เราจะดูประสิทธิภาพของโมเดล

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

ขั้นตอนที่ 1: ทำความเข้าใจเมทริกซ์ความสับสน

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

โปรดทราบว่าตัวอย่างในชุดข้อมูลของเรามีธุรกรรมที่เป็นการฉ้อโกงน้อยกว่า 1% ดังนั้นหากความแม่นยำของโมเดลอยู่ที่ 99% ก็มีโอกาสสูงที่โมเดลจะเดาคลาสที่ไม่ใช่การฉ้อโกงแบบสุ่ม 99% ของเวลาทั้งหมด ด้วยเหตุนี้ การดูความแม่นยำของโมเดลสำหรับแต่ละคลาสจึงเป็นเมตริกที่ดีกว่าในที่นี้

หากเลื่อนลงในแท็บประเมิน คุณจะเห็นเมทริกซ์ความสับสนที่มีลักษณะดังนี้ (เปอร์เซ็นต์ที่แน่นอนอาจแตกต่างกัน)

เมตริกความสับสน

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

ขั้นตอนที่ 2: ดูความสําคัญของฟีเจอร์

คุณควรเห็นแผนภูมิความสําคัญของฟีเจอร์ที่มีลักษณะดังนี้ใต้เมทริกซ์ความสับสน

ความสำคัญของฟีเจอร์

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

แผนภูมินี้จะน่าสนใจยิ่งขึ้นหากฟีเจอร์ส่วนใหญ่ในชุดข้อมูลของเราไม่ถูกบดบัง ตัวอย่างเช่น เราอาจทราบว่าประเภทธุรกรรม (การโอน การฝาก ฯลฯ) เป็นตัวบ่งชี้การฉ้อโกงที่สำคัญที่สุด

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

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

7. การทำให้โมเดลใช้งานได้ที่ปลายทาง

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

ขั้นตอนที่ 1: สร้างปลายทาง

ในหน้าโมเดล ให้ไปที่แท็บติดตั้งใช้งานและทดสอบ แล้วคลิกติดตั้งใช้งานไปยังปลายทาง

ทำให้ใช้งานได้และทดสอบ

ตั้งชื่อปลายทาง เช่น fraud_v1, ตั้งค่าการเข้าถึงเป็นมาตรฐาน แล้วคลิกต่อไป

ปล่อยให้การแยกการรับส่งและประเภทเครื่องเป็นการตั้งค่าเริ่มต้น คลิกเสร็จสิ้น แล้วคลิกต่อไป

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

อุปกรณ์ปลายทางที่ติดตั้งใช้งาน

ใกล้แล้ว ตอนนี้คุณพร้อมที่จะรับการคาดการณ์ในโมเดลที่ใช้งานจริงแล้ว

8. การขอการคาดการณ์ในโมเดลที่ทำให้ใช้งานได้แล้ว

คุณมีตัวเลือกในการรับการคาดการณ์ของโมเดลดังนี้

  • UI ของ Vertex AI
  • Vertex AI API

เราจะแสดงทั้ง 2 อย่างที่นี่

ขั้นตอนที่ 1: ดูการคาดการณ์ของโมเดลใน UI

ในหน้าโมเดลที่แสดงปลายทาง (ที่เราค้างไว้ในขั้นตอนสุดท้าย) ให้เลื่อนลงไปที่ส่วนทดสอบโมเดล

ทดสอบโมเดล

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

ในส่วนผลการคาดการณ์ของหน้า คุณควรเห็นเปอร์เซ็นต์ที่คาดการณ์ของโมเดลสำหรับแต่ละคลาส เช่น คะแนนความเชื่อมั่น 0.99 สำหรับคลาส 0 หมายความว่าโมเดลคิดว่าตัวอย่างนี้มีโอกาส 99% ที่จะไม่ใช่การประพฤติมิชอบ

ขั้นตอนที่ 2: รับการคาดการณ์ของโมเดลด้วย Vertex AI API

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

จากนั้นเปิดอินสแตนซ์ Notebook ที่คุณสร้างขึ้น แล้วเปิด Notebook Python 3 จาก Launcher โดยทำดังนี้

เปิดสมุดบันทึก

ใน Notebook ให้เรียกใช้คำสั่งต่อไปนี้ในเซลล์เพื่อติดตั้ง Vertex SDK

!pip3 install google-cloud-aiplatform --upgrade --user

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

from google.cloud import aiplatform

endpoint = aiplatform.Endpoint(
    endpoint_name="projects/YOUR-PROJECT-NUMBER/locations/us-central1/endpoints/YOUR-ENDPOINT-ID"
)

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

คุณดูรหัสอุปกรณ์ปลายทางได้ในส่วนอุปกรณ์ปลายทางของคอนโซลที่นี่

ค้นหารหัสอุปกรณ์ปลายทาง

สุดท้าย ให้ทำการคาดการณ์ไปยังปลายทางโดยคัดลอกและเรียกใช้โค้ดด้านล่างในเซลล์ใหม่

test_instance={
    'Time': 80422,
    'Amount': 17.99,
    'V1': -0.24,
    'V2': -0.027,
    'V3': 0.064,
    'V4': -0.16,
    'V5': -0.152,
    'V6': -0.3,
    'V7': -0.03,
    'V8': -0.01,
    'V9': -0.13,
    'V10': -0.18,
    'V11': -0.16,
    'V12': 0.06,
    'V13': -0.11,
    'V14': 2.1,
    'V15': -0.07,
    'V16': -0.033,
    'V17': -0.14,
    'V18': -0.08,
    'V19': -0.062,
    'V20': -0.08,
    'V21': -0.06,
    'V22': -0.088,
    'V23': -0.03,
    'V24': 0.01,
    'V25': -0.04,
    'V26': -0.99,
    'V27': -0.13,
    'V28': 0.003
}

response = endpoint.predict([test_instance])

print('API response: ', response)

คุณควรเห็นการคาดการณ์ประมาณ .67 สำหรับคลาส 0 ซึ่งหมายความว่าโมเดลคิดว่ามีโอกาส 67% ที่ธุรกรรมนี้จะไม่ใช่การประพฤติมิชอบ

🎉 ยินดีด้วย 🎉

คุณได้เรียนรู้วิธีใช้ Vertex AI เพื่อทำสิ่งต่อไปนี้

  • อัปโหลดชุดข้อมูลที่มีการจัดการ
  • ฝึกและประเมินโมเดลในข้อมูลแบบตารางโดยใช้ AutoML
  • ทำให้โมเดลใช้งานได้ที่ปลายทาง
  • รับการคาดการณ์ในอุปกรณ์ปลายทางของโมเดลโดยใช้ SDK สำหรับ Vertex

ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนต่างๆ ของ Vertex AI ได้ที่เอกสารประกอบ

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

หากต้องการใช้ Notebook ที่สร้างขึ้นใน Lab นี้ต่อไป ขอแนะนำให้ปิดเมื่อไม่ได้ใช้งาน จาก UI ของ Workbench ใน Cloud Console ให้เลือก Notebook แล้วเลือกหยุด

หากต้องการลบสมุดบันทึกทั้งหมด ให้คลิกปุ่มลบที่ด้านขวาบน

หากต้องการลบปลายทางที่คุณทำให้ใช้งานได้ ให้ไปที่ส่วนปลายทางของคอนโซล Vertex AI แล้วยกเลิกการทำให้โมเดลใช้งานได้จากปลายทาง

ลบปลายทาง

หากต้องการลบ Storage Bucket ให้ใช้เมนูการนำทางใน Cloud Console ไปที่ Storage เลือก Bucket แล้วคลิกลบ

ลบพื้นที่เก็บข้อมูล