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
3. ตั้งค่าสภาพแวดล้อมของคุณ
คุณจะต้องมีโปรเจ็กต์ Google Cloud Platform ที่เปิดใช้การเรียกเก็บเงินเพื่อเรียกใช้ Codelab นี้ หากต้องการสร้างโปรเจ็กต์ ให้ทำตามวิธีการที่นี่
ขั้นตอนที่ 1: เปิดใช้ Compute Engine API
ไปที่ Compute Engine แล้วเลือกเปิดใช้ หากยังไม่ได้เปิดใช้ ซึ่งคุณจะต้องใช้ในการสร้างอินสแตนซ์สมุดบันทึก
ขั้นตอนที่ 2: เปิดใช้ Vertex AI API
ไปที่ส่วน Vertex AI ของ Cloud Console แล้วคลิกเปิดใช้ Vertex AI API
ขั้นตอนที่ 3: สร้างอินสแตนซ์ Vertex AI Workbench
จากส่วน Vertex AI ของ Cloud Console ให้คลิก Workbench ดังนี้
จากภายในสมุดบันทึกที่จัดการโดยผู้ใช้ ให้คลิกสมุดบันทึกใหม่
จากนั้นเลือกประเภทอินสแตนซ์ TensorFlow Enterprise (ที่มี LTS) เวอร์ชันล่าสุดที่ไม่มี GPU
ใช้ตัวเลือกเริ่มต้นแล้วคลิกสร้าง
ขั้นตอนที่ 5: เปิดสมุดบันทึก
เมื่อสร้างอินสแตนซ์แล้ว ให้เลือก Open JupyterLab:
ข้อมูลที่เราจะใช้ในการฝึกโมเดลมาจากชุดข้อมูลการตรวจจับการฉ้อโกงบัตรเครดิตนี้ เราจะใช้ชุดข้อมูลเวอร์ชันนี้ที่เผยแพร่ต่อสาธารณะใน BigQuery
4. สร้างชุดข้อมูลที่มีการจัดการ
คุณสร้างชุดข้อมูลที่มีการจัดการสำหรับประเภทข้อมูลที่หลากหลายได้ใน Vertex AI จากนั้นคุณจะสร้างสถิติบนชุดข้อมูลเหล่านี้และนำไปใช้ในการฝึกโมเดลด้วย AutoML หรือโค้ดโมเดลที่กำหนดเองได้
ขั้นตอนที่ 1: สร้างชุดข้อมูล
ในเมนู Vertex ในคอนโซล ให้เลือกชุดข้อมูล ดังนี้
ในห้องทดลองนี้ เราจะสร้างโมเดลการตรวจจับการฉ้อโกงเพื่อระบุว่าควรจัดประเภทธุรกรรมบัตรเครดิตบางรายการว่าเป็นการฉ้อโกงหรือไม่
จากหน้าชุดข้อมูล ให้ตั้งชื่อชุดข้อมูล จากนั้นเลือกตาราง และการถดถอย/การจัดประเภท จากนั้นสร้างชุดข้อมูลโดยทำดังนี้
การนำเข้าข้อมูลไปยังชุดข้อมูลที่มีการจัดการใน Vertex ทำได้ 2-3 วิธีดังนี้
- การอัปโหลดไฟล์ในเครื่องจากคอมพิวเตอร์
- การเลือกไฟล์จาก Cloud Storage
- การเลือกข้อมูลจาก BigQuery
ในที่นี้เราจะอัปโหลดข้อมูลจากตาราง BigQuery สาธารณะ
ขั้นตอนที่ 2: นำเข้าข้อมูลจาก BigQuery
เลือก "เลือกตารางหรือมุมมองจาก BigQuery" เป็นวิธีการนำเข้า จากนั้นคัดลอกข้อมูลต่อไปนี้ลงในช่องตาราง BigQuery bigquery-public-data.ml_datasets.ulb_fraud_detection
จากนั้นเลือกต่อไป
คุณจะเห็นข้อมูลต่อไปนี้หลังจากนำเข้าชุดข้อมูล
คุณสามารถคลิกสร้างสถิติเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับชุดข้อมูลนี้ (ไม่จำเป็นต้องระบุ) ก่อนที่จะไปยังขั้นตอนถัดไป ชุดข้อมูลนี้มีธุรกรรมบัตรเครดิตจริง ชื่อคอลัมน์ส่วนใหญ่ถูกปิดบัง ทำให้เรียกว่า V1
, V2
ฯลฯ
5. ฝึกโมเดลด้วย AutoML
เมื่ออัปโหลดชุดข้อมูลที่มีการจัดการแล้ว เราก็พร้อมที่จะฝึกโมเดลด้วยข้อมูลนี้ เราจะฝึกโมเดลการแยกประเภทเพื่อคาดการณ์ธุรกรรมที่เฉพาะเจาะจงว่าเป็นการฉ้อโกงหรือไม่ Vertex AI มี 2 ตัวเลือกในการฝึกโมเดล ได้แก่
- AutoML: ฝึกโมเดลที่มีคุณภาพสูงอย่างง่ายดายโดยไม่ต้องมีความเชี่ยวชาญด้าน ML
- การฝึกที่กำหนดเอง: เรียกใช้แอปพลิเคชันการฝึกที่กำหนดเองในระบบคลาวด์โดยใช้คอนเทนเนอร์สำเร็จรูปของ Google Cloud หรือใช้คอนเทนเนอร์ของคุณเอง
ในห้องทดลองนี้ เราจะใช้ AutoML สำหรับการฝึก
ขั้นตอนที่ 1: เริ่มต้นงานการฝึก
จากหน้ารายละเอียดชุดข้อมูลที่คุณทำค้างไว้ในขั้นตอนก่อนหน้า ให้เลือกฝึกโมเดลใหม่ที่ด้านขวาบน เลือกการจัดประเภทเป็นวัตถุประสงค์ เลือก AutoML สำหรับการฝึกโมเดล แล้วคลิกต่อไป
ตั้งชื่อให้โมเดลของคุณ หรือใช้ค่าเริ่มต้น ในส่วนคอลัมน์เป้าหมาย ให้เลือกชั้นเรียน ค่านี้เป็นจำนวนเต็มที่ระบุว่าธุรกรรมหนึ่งๆ เป็นการฉ้อโกงหรือไม่ (0
สำหรับการฉ้อโกง ไม่ใช่ 1
)
จากนั้นเลือกต่อไป
ในขั้นตอนนี้ ให้เลื่อนลงและคลิกเพื่อขยายตัวเลือกขั้นสูง เนื่องจากชุดข้อมูลนี้มีความไม่สมดุลอย่างมาก (ข้อมูลไม่ถึง 1% มีธุรกรรมที่เป็นการฉ้อโกง) ให้เลือกตัวเลือก AUC PRC ซึ่งจะเพิ่มความแม่นยำในการจดจำสูงสุดสำหรับคลาสที่พบน้อยกว่า ดังนี้
เลือกดำเนินการต่อ แล้วไปยังขั้นตอนสุดท้าย (การประมวลผลและราคา) ในส่วนนี้ ป้อน 1 เป็นจำนวนชั่วโมงทำงานของโหนดสำหรับงบประมาณ และเปิดใช้การหยุดก่อนกำหนด โดยทั่วไปแล้ว การฝึกโมเดล AutoML สำหรับชั่วโมงประมวลผล 1 ชั่วโมงมักจะเป็นจุดเริ่มต้นที่ดีในการทำความเข้าใจว่าฟีเจอร์และป้ายกำกับที่คุณเลือกมีความสัมพันธ์กันหรือไม่ จากหน้านี้ คุณสามารถแก้ไขฟีเจอร์และฝึกเพิ่มเวลาเพื่อปรับปรุงประสิทธิภาพของโมเดลได้ ถัดไป ให้เลือกเริ่มการฝึก
คุณจะได้รับอีเมลเมื่องานการฝึกเสร็จสิ้น การฝึกจะใช้เวลามากกว่า 1 ชั่วโมงเล็กน้อยเพื่อพิจารณาเวลาในการคำนวณและทำลายทรัพยากร
6. สำรวจเมตริกการประเมินโมเดล
ในขั้นตอนนี้ เราจะดูประสิทธิภาพของโมเดล
เมื่องานการฝึกโมเดลเสร็จสมบูรณ์แล้ว ให้ไปที่แท็บโมเดลใน Vertex คลิกโมเดลที่คุณเพิ่งฝึกแล้วดูที่แท็บประเมิน มีเมตริกการประเมินมากมายในที่นี้ เราจะเน้น 2 รายการ ได้แก่ เมทริกซ์ความสับสนและความสำคัญของฟีเจอร์
ขั้นตอนที่ 1: ทำความเข้าใจเมทริกซ์ความสับสน
เมทริกซ์ความสับสนจะบอกเปอร์เซ็นต์ของตัวอย่างจากแต่ละคลาสในชุดการทดสอบที่โมเดลของเราคาดการณ์ไว้อย่างถูกต้อง ในกรณีของชุดข้อมูลที่ไม่สมดุลอย่างเช่นชุดข้อมูลที่เรากําลังจัดการ นี่เป็นการวัดประสิทธิภาพโมเดลที่ดีกว่าความแม่นยำโดยรวม
อย่าลืมว่าตัวอย่างในชุดข้อมูลของเรามีไม่ถึง 1% ที่เป็นธุรกรรมที่เป็นการฉ้อโกง ดังนั้นหากความแม่นยำของโมเดลคือ 99% ก็มีโอกาสสูงที่จะสุ่มเดาคลาสที่ไม่ใช่การฉ้อโกง 99% จากทั้งหมด นั่นเป็นเหตุผลที่การพิจารณาความแม่นยำของโมเดลสำหรับแต่ละคลาสเป็นเมตริกที่ดีกว่าสำหรับในกรณีนี้
หากเลื่อนลงมาที่แท็บประเมิน คุณควรเห็นเมทริกซ์ความสับสนที่มีลักษณะเช่นนี้ (เปอร์เซ็นต์ที่แน่นอนอาจแตกต่างกันไป)
เมทริกซ์ความสับสนแสดงให้เห็นว่าโมเดลเริ่มต้นของเราสามารถแยกประเภทตัวอย่างการฉ้อโกงในชุดทดสอบได้อย่างถูกต้อง 85% ซึ่งเรื่องนี้ค่อนข้างดี โดยเฉพาะอย่างยิ่งเมื่อพิจารณาความไม่สมดุลของชุดข้อมูลอย่างมีนัยสำคัญ ถัดไป เราอาจลองฝึกโมเดลเป็นเวลาเพิ่มขึ้นจาก 85% เพื่อดูว่าจะพัฒนาจาก 85% นี้ได้ไหม
ขั้นตอนที่ 2: พิจารณาความสำคัญของฟีเจอร์
คุณจะเห็นแผนภูมิความสำคัญของฟีเจอร์ที่ด้านล่างเมทริกซ์ความสับสน
วิธีนี้แสดงให้เราเห็นถึงฟีเจอร์ต่างๆ ที่ให้สัญญาณที่ดีที่สุดแก่โมเดลของเราเมื่อทำการคาดการณ์ ความสำคัญของฟีเจอร์คือ AI ที่อธิบายได้ประเภทหนึ่ง โดยสาขาหนึ่งที่มีวิธีการต่างๆ ในการทำความเข้าใจเกี่ยวกับโมเดล ML อย่างลึกซึ้งยิ่งขึ้นคือการทำการคาดการณ์ แผนภูมิความสำคัญของฟีเจอร์ที่แสดงที่นี่จะคำนวณแบบรวมโดยการดูการคาดการณ์ของโมเดลทั้งหมดในชุดทดสอบของเรา โดยจะแสดงฟีเจอร์ที่สำคัญที่สุดจากตัวอย่างเป็นชุด
แผนภูมินี้จะน่าตื่นเต้นมากขึ้นหากฟีเจอร์ส่วนใหญ่ในชุดข้อมูลของเราไม่ถูกบดบัง ตัวอย่างเช่น เราอาจได้ทราบว่าประเภทของธุรกรรม (การโอน การฝากเงิน ฯลฯ) เป็นตัวบ่งชี้การประพฤติมิชอบมากที่สุด
ในสถานการณ์จริง เราอาจใช้ค่าความสำคัญของฟีเจอร์เหล่านี้เพื่อช่วยเราปรับปรุงโมเดลและเพื่อสร้างความมั่นใจในการคาดการณ์มากขึ้น เราอาจตัดสินใจนำฟีเจอร์ที่สำคัญน้อยที่สุดออกในครั้งถัดไปที่เราฝึกโมเดล หรือรวมฟีเจอร์ที่มีนัยสำคัญกว่า 2 อย่างของเราเข้าเป็นข้ามฟีเจอร์เพื่อดูว่าจะช่วยปรับปรุงประสิทธิภาพของโมเดลได้ไหม
เรากำลังดูความสำคัญของฟีเจอร์ในกลุ่มต่างๆ แต่ก็อาจให้ความสำคัญกับฟีเจอร์สำหรับการคาดการณ์แต่ละรายการใน Vertex AI ด้วยเช่นกัน เราจะมาดูวิธีทำกันเมื่อเราทำให้โมเดลของเราใช้งานได้
7. การทำให้โมเดลใช้งานได้ที่ปลายทาง
เมื่อมีโมเดลที่ฝึกแล้ว ขั้นตอนต่อไปคือการสร้างปลายทางใน Vertex ทรัพยากรโมเดลใน Vertex สามารถเชื่อมโยงกับปลายทางหลายปลายทางได้ และคุณสามารถแยกการจราจรของข้อมูลระหว่างปลายทางได้
ขั้นตอนที่ 1: การสร้างปลายทาง
ในหน้าโมเดล ให้ไปที่แท็บทำให้ใช้งานได้และทดสอบ แล้วคลิกทำให้ใช้งานได้ที่ปลายทาง
ตั้งชื่อปลายทาง เช่น fraud_v1
และปล่อยให้การตั้งค่าการเข้าถึงเป็นมาตรฐาน แล้วคลิกต่อไป
ปล่อยให้การแยกการเข้าชมและประเภทเครื่องเป็นการตั้งค่าเริ่มต้น จากนั้นคลิกเสร็จสิ้น แล้วคลิกต่อไป
เราจะไม่ใช้การตรวจสอบโมเดลสำหรับปลายทางนี้ คุณสามารถปล่อยไว้โดยไม่ได้เลือกและคลิกทำให้ใช้งานได้ ปลายทางจะใช้เวลา 2-3 นาทีในการทำให้ใช้งานได้ เมื่อเสร็จสิ้นแล้ว คุณจะเห็นเครื่องหมายถูกสีเขียวข้างรายการ
ใกล้เสร็จแล้ว ตอนนี้คุณพร้อมที่จะรับการคาดการณ์บนโมเดลที่ทำให้ใช้งานได้แล้ว
8. การรับการคาดการณ์ในโมเดลที่ทำให้ใช้งานได้ของเรา
ตัวเลือกในการรับการคาดการณ์โมเดลมี 2-3 ตัวเลือกดังนี้
- UI ของ Vertex AI
- Vertex AI API
เราจะแสดงทั้ง 2 อย่างที่นี่
ขั้นตอนที่ 1: รับการคาดการณ์โมเดลใน UI
ในหน้าโมเดลที่แสดงปลายทาง (ส่วนที่เราค้างไว้ในขั้นตอนสุดท้าย) ให้เลื่อนลงไปที่ส่วนทดสอบโมเดล ดังนี้
ในตัวอย่างนี้ Vertex AI ได้เลือกค่าแบบสุ่มสำหรับฟีเจอร์แต่ละรายการของโมเดลที่เราใช้เพื่อรับการคาดการณ์ทดสอบได้ คุณสามารถเปลี่ยนค่าเหล่านี้ได้ถ้าต้องการ เลื่อนลงไปที่ด้านล่างของหน้า แล้วเลือกคาดการณ์
ในส่วนผลการคาดการณ์ของหน้า คุณควรดูเปอร์เซ็นต์ที่คาดการณ์ของโมเดลสำหรับแต่ละคลาส ตัวอย่างเช่น คะแนนความเชื่อมั่น 0.99
สำหรับคลาส 0
หมายความว่าโมเดลของคุณคิดว่าตัวอย่างนี้มี 99% ที่ไม่เป็นการฉ้อโกง
ขั้นตอนที่ 2: รับการคาดการณ์โมเดลด้วย Vertex AI API
UI เป็นวิธีที่ยอดเยี่ยมในการตรวจสอบว่าปลายทางที่ทำให้ใช้งานได้แล้วของคุณทำงานตามที่คาดไว้ แต่ก็มีโอกาสที่คุณอาจอยากรับการคาดการณ์แบบไดนามิกผ่านการเรียก API ของ REST เราจะใช้อินสแตนซ์ Vertex Workbench ที่คุณสร้างในช่วงเริ่มต้นของห้องทดลองนี้เพื่อแสดงวิธีรับการคาดการณ์โมเดล
จากนั้นให้เปิดอินสแตนซ์สมุดบันทึกที่คุณสร้าง และเปิดสมุดบันทึก Python 3 จาก Launcher โดยทำดังนี้
ในสมุดบันทึก ให้เรียกใช้คำสั่งต่อไปนี้ในเซลล์เพื่อติดตั้ง 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 จากนั้นเรียกดูพื้นที่เก็บข้อมูล เลือกที่เก็บข้อมูล แล้วคลิกลบ: