เกี่ยวกับ Codelab นี้
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 ในคอนโซล ให้เลือกชุดข้อมูล
ในโปรแกรม Lab นี้ เราจะสร้างโมเดลการตรวจจับการประพฤติมิชอบเพื่อพิจารณาว่าควรจัดประเภทธุรกรรมบัตรเครดิตหนึ่งๆ เป็นการประพฤติมิชอบหรือไม่
จากหน้าชุดข้อมูล ให้ตั้งชื่อชุดข้อมูล แล้วเลือกตารางและการถดถอย/การจัดประเภท จากนั้นสร้างชุดข้อมูลโดยทำดังนี้
การนําเข้าข้อมูลไปยังชุดข้อมูลที่จัดการใน Vertex ทำได้ 2-3 วิธีดังนี้
- การอัปโหลดไฟล์ในเครื่องจากคอมพิวเตอร์
- การเลือกไฟล์จาก Cloud Storage
- การเลือกข้อมูลจาก BigQuery
ในที่นี้เราจะอัปโหลดข้อมูลจากตาราง BigQuery สาธารณะ
ขั้นตอนที่ 2: นำเข้าข้อมูลจาก BigQuery
เลือก "เลือกตารางหรือมุมมองจาก BigQuery" เป็นวิธีการนําเข้า แล้วคัดลอก bigquery-public-data.ml_datasets.ulb_fraud_detection
ลงในช่องตาราง BigQuery จากนั้นเลือกต่อไป
คุณควรเห็นข้อมูลต่อไปนี้หลังจากนําเข้าชุดข้อมูล
หากต้องการ คุณคลิกสร้างสถิติเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับชุดข้อมูลนี้ได้ แต่ไม่จำเป็นต้องทำก่อนไปยังขั้นตอนถัดไป ชุดข้อมูลนี้มีธุรกรรมบัตรเครดิตจริง ชื่อคอลัมน์ส่วนใหญ่ถูกปกปิดไว้ จึงมีชื่อเป็น V1
, V2
ฯลฯ
5 ฝึกโมเดลด้วย AutoML
เมื่ออัปโหลดชุดข้อมูลที่มีการจัดการแล้ว เราพร้อมที่จะฝึกโมเดลด้วยข้อมูลนี้ เราจะฝึกโมเดลการจัดประเภทเพื่อคาดการณ์ว่าธุรกรรมหนึ่งๆ เป็นการประพฤติมิชอบหรือไม่ Vertex AI มี 2 ตัวเลือกสำหรับการฝึกโมเดล ได้แก่
- AutoML: ฝึกโมเดลที่มีคุณภาพสูงอย่างง่ายดายโดยไม่ต้องมีความเชี่ยวชาญขั้นสูงด้าน ML
- การฝึกที่กำหนดเอง: เรียกใช้แอปพลิเคชันการฝึกที่กำหนดเองในระบบคลาวด์โดยใช้คอนเทนเนอร์สำเร็จรูปของ Google Cloud หรือใช้คอนเทนเนอร์ของคุณเอง
ในบทแนะนำนี้ เราจะใช้ AutoML เพื่อฝึก
ขั้นตอนที่ 1: เริ่มงานการฝึก
จากหน้ารายละเอียดชุดข้อมูลที่คุณทำค้างไว้ในขั้นตอนก่อนหน้า ให้เลือกฝึกโมเดลใหม่ที่ด้านขวาบน เลือกการจัดประเภทเป็นวัตถุประสงค์ เลือก AutoML ไว้สำหรับการฝึกโมเดล แล้วคลิกต่อไป
ตั้งชื่อให้โมเดล หรือจะใช้ชื่อเริ่มต้นก็ได้ เลือกชั้นเรียนในส่วนคอลัมน์เป้าหมาย ค่านี้เป็นจำนวนเต็มซึ่งระบุว่าธุรกรรมหนึ่งๆ เป็นการฉ้อโกงหรือไม่ (0
สำหรับการไม่เป็นการฉ้อโกง 1
สำหรับการฉ้อโกง)
จากนั้นเลือกต่อไป
ในขั้นตอนนี้ ให้เลื่อนลงและคลิกเพื่อขยายตัวเลือกขั้นสูง เนื่องจากชุดข้อมูลนี้มีความสมดุลน้อยมาก (ข้อมูลน้อยกว่า 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 เพื่อไปที่พื้นที่เก็บข้อมูล เลือกที่เก็บข้อมูล แล้วคลิกลบ