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

1. ภาพรวม

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

สิ่งที่คุณเรียนรู้

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

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

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

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

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

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

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

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

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

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

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

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

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

แดชบอร์ด Vertex

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

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

เมนู Vertex AI

จากภายในสมุดบันทึกที่จัดการโดยผู้ใช้ ให้คลิกสมุดบันทึกใหม่

สร้างสมุดบันทึกใหม่

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

อินสแตนซ์ TFE

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

ขั้นตอนที่ 5: เปิดสมุดบันทึก

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

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

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

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

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

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

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

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

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

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

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

การนําเข้าข้อมูลไปยังชุดข้อมูลที่จัดการใน Vertex ทำได้ 2-3 วิธีดังนี้

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ขั้นตอนที่ 2: พิจารณาความสำคัญของฟีเจอร์

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ปลายทางที่ติดตั้งใช้งาน

ใกล้เสร็จแล้ว ตอนนี้คุณก็พร้อมรับการคาดการณ์จากโมเดลที่เผยแพร่แล้ว

8. การคาดการณ์ในโมเดลที่ใช้งานอยู่

การดูการคาดการณ์ของโมเดลมี 2-3 ตัวเลือกดังนี้

  • UI ของ Vertex AI
  • Vertex AI API

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

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

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

ทดสอบโมเดล

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

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

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

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

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

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

ในโน้ตบุ๊ค ให้เรียกใช้คำสั่งต่อไปนี้ในเซลล์เพื่อติดตั้ง 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. ล้างข้อมูล

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

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

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

ลบปลายทาง

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

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