Vertex AI: ส่งออกและทำให้โมเดลแมชชีนเลิร์นนิง BigQuery ใช้งานได้สำหรับการคาดการณ์
เกี่ยวกับ Codelab นี้
1 ภาพรวม
ในห้องทดลองนี้ คุณจะได้ฝึกโมเดลด้วย BigQuery Machine Learning แล้วส่งออกและทำให้โมเดลนั้นใช้งานได้ไปยัง Vertex AI นี่เป็นข้อเสนอผลิตภัณฑ์ AI ล่าสุดใน Google Cloud
สิ่งที่ได้เรียนรู้
โดยคุณจะได้เรียนรู้วิธีต่อไปนี้
- ฝึกโมเดลด้วยแมชชีนเลิร์นนิงของ BigQuery (BQML)
- ส่งออกโมเดล BQML ไปยัง Cloud Storage
- ทำให้ BQML ที่ผ่านการฝึกอบรมแล้วใช้งานได้กับ Vertex AI
- รับการคาดการณ์บนโมเดลที่ทำให้ใช้งานได้แล้ว
ค่าใช้จ่ายรวมในการเรียกใช้ห้องทดลองนี้บน Google Cloud อยู่ที่ประมาณ $2
2 ข้อมูลเบื้องต้นเกี่ยวกับ Vertex AI
ห้องทดลองนี้ใช้ข้อเสนอผลิตภัณฑ์ AI ใหม่ล่าสุดที่มีให้บริการใน Google Cloud Vertex AI ผสานรวมข้อเสนอ ML ใน Google Cloud เข้ากับประสบการณ์การพัฒนาที่ราบรื่น ก่อนหน้านี้โมเดลที่ฝึกด้วย AutoML และโมเดลที่กำหนดเองจะเข้าถึงได้ผ่านบริการแยกต่างหาก ข้อเสนอใหม่จะรวมทั้ง 2 อย่างไว้ใน API เดียว รวมทั้งผลิตภัณฑ์ใหม่อื่นๆ นอกจากนี้ คุณยังย้ายข้อมูลโปรเจ็กต์ที่มีอยู่ไปยัง Vertex AI ได้ด้วย หากมีความคิดเห็น โปรดดูหน้าการสนับสนุน
Vertex AI มีผลิตภัณฑ์ต่างๆ มากมายเพื่อรองรับเวิร์กโฟลว์ ML แบบครบวงจร ห้องทดลองนี้จะเน้นไปที่ผลิตภัณฑ์ที่ไฮไลต์ด้านล่าง ซึ่งได้แก่ การคาดการณ์และสมุดบันทึก
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 ของ Cloud Console ให้คลิกสมุดบันทึกโดยทำดังนี้
จากนั้นเลือกอินสแตนซ์ใหม่ จากนั้นเลือกประเภทอินสแตนซ์ TensorFlow Enterprise 2.3 ที่ไม่มี GPU ดังนี้
ใช้ตัวเลือกเริ่มต้นแล้วคลิกสร้าง เมื่อสร้างอินสแตนซ์แล้ว ให้เลือก Open JupyterLab:
4 ฝึกโมเดล ML ของ BigQuery
ML ของ BigQuery ช่วยให้คุณฝึกโมเดลแมชชีนเลิร์นนิงที่กำหนดเองได้โดยใช้ข้อมูลที่จัดเก็บไว้ใน BigQuery คุณฝึกและรับการคาดการณ์จากโมเดลทั้งหมดใน SQL ได้ สำหรับห้องทดลองนี้ เราจะใช้ชุดข้อมูลที่พร้อมใช้งานแบบสาธารณะใน BigQuery เพื่อคาดการณ์แนวโน้มที่จะมีการชำระเงินด้วยบัตรเครดิต
ขั้นตอนที่ 1: สร้างชุดข้อมูล BigQuery ในโปรเจ็กต์
หากต้องการฝึกโมเดลใน BigQuery ML คุณจะต้องสร้างชุดข้อมูลภายในโปรเจ็กต์เพื่อจัดเก็บโมเดลนี้ คลิกโปรเจ็กต์ในแถบเมนูด้านซ้าย แล้วเลือกสร้างชุดข้อมูล
กรอก cc_default
ในช่องรหัสชุดข้อมูล ปล่อยช่องที่เหลือไว้ตามเดิม แล้วคลิกสร้างชุดข้อมูล
ขั้นตอนที่ 2: เรียกใช้การค้นหา "Create MODEL"
ในตัวแก้ไขคำค้นหาของ BigQuery ให้เรียกใช้การค้นหา CREATE MODEL
ต่อไปนี้เพื่อสร้างและฝึกโมเดล ML ของ BigQuery บนชุดข้อมูลสาธารณะที่เราจะใช้ โปรดแทนที่ your-project
ด้วยชื่อโปรเจ็กต์ที่อยู่ในระบบคลาวด์ดังนี้
CREATE OR REPLACE MODEL
`your-project.cc_default.logistic_model` OPTIONS(model_type='LOGISTIC_REG',
input_label_cols=['default_payment_next_month']) AS
SELECT
limit_balance,
sex,
education_level,
marital_status,
age,
pay_0,
pay_2,
pay_3,
pay_4,
pay_5,
pay_6,
bill_amt_1,
bill_amt_2,
bill_amt_3,
bill_amt_4,
bill_amt_5,
bill_amt_6,
pay_amt_1,
pay_amt_2,
pay_amt_3,
pay_amt_4,
pay_amt_5,
pay_amt_6,
default_payment_next_month
FROM
`bigquery-public-data.ml_datasets.credit_card_default`
การดำเนินการนี้จะสร้างโมเดลการถดถอยแบบโลจิสติกที่แสดงค่าตัวเลขตั้งแต่ 0 ถึง 1 ซึ่งหมายความว่าใช้เวลาประมาณ 1 นาทีในการเรียกใช้ เมื่อเสร็จสมบูรณ์ คุณจะเห็นโมเดลใต้ชุดข้อมูลดังนี้
คุณสามารถคลิกโมเดลเพื่อดูเมตริกการฝึกและการประเมิน
5 ส่งออกโมเดล BigQuery ML
ด้วยโมเดล BQML ที่ผ่านการฝึกแล้ว เราจะสามารถใช้ไวยากรณ์ BQML SQL เพื่อรับการคาดการณ์หรือเราจะส่งออกโมเดลไปทำให้ใช้งานได้ที่อื่นก็ได้ ในส่วนนี้ เราจะส่งออกโมเดลเพื่อให้นำไปติดตั้งใช้งานกับ Vertex AI เพื่อให้บริการโมเดลที่รองรับการปรับขนาดและรับการคาดการณ์ได้
ขั้นตอนที่ 1: สร้างที่เก็บข้อมูล Cloud Storage สำหรับโมเดล
ในรายละเอียดโมเดล ให้คลิกส่งออกโมเดล
ระบบจะแจ้งให้คุณป้อนตำแหน่งของ Google Cloud Storage (GCS) ที่คุณต้องการส่งออกชิ้นงานของโมเดล หากยังไม่มีที่เก็บข้อมูล GCS ก็ไม่ต้องกังวล เรากำลังจะสร้าง ก่อนอื่น ให้คลิกเรียกดู แล้วทำดังนี้
จากนั้นคลิกไอคอน + เพื่อสร้างที่เก็บข้อมูลใหม่ ดังนี้
ตั้งชื่อที่ไม่ซ้ำกัน (ชื่อที่เก็บข้อมูลของพื้นที่เก็บข้อมูลต้องไม่ซ้ำกัน) คลิกต่อไป ในขั้นตอนถัดไป ให้เลือกภูมิภาคในส่วนประเภทสถานที่ตั้ง แล้วเลือกภูมิภาคจากเมนูแบบเลื่อนลง
ใช้คลาสพื้นที่เก็บข้อมูลเริ่มต้นและตรวจสอบว่าได้เลือกแบบเดียวกันในส่วนการควบคุมการเข้าถึง
คลิกดำเนินการต่อและใช้ค่าเริ่มต้นสำหรับตัวเลือกที่เหลือ จากนั้นคลิกสร้าง
ขั้นตอนที่ 2: ส่งออกโมเดล BQML
เมื่อสร้างที่เก็บข้อมูลใหม่แล้ว ให้ป้อน model-assets
(หรือค่าใดก็ได้ที่ต้องการ) ในช่องชื่อ แล้วคลิกเลือก:
จากนั้นคลิกส่งออก การดำเนินการนี้จะสร้างงานใน BigQuery เพื่อส่งออกโมเดลในรูปแบบ SaveModel ของ TensorFlow ไปยังที่เก็บข้อมูล GCS ที่สร้างขึ้นใหม่ที่คุณระบุ การดำเนินการนี้จะใช้เวลาประมาณ 1 นาทีในการส่งออก
ขณะส่งออกโมเดล ให้ไปที่ส่วนพื้นที่เก็บข้อมูลของ Cloud Console เมื่องานเสร็จสิ้นแล้ว คุณควรเห็นชิ้นงานโมเดลที่ส่งออกไปยังที่เก็บข้อมูลที่เพิ่งสร้างในไดเรกทอรีย่อย model-assets
6 นำเข้าโมเดลไปยัง Vertex AI
ในขั้นตอนนี้ เราจะอ้างอิงตำแหน่งพื้นที่เก็บข้อมูล GCS ที่เราเพิ่งส่งออกชิ้นงานโมเดลเพื่อสร้างและนำเข้าโมเดลไปยัง Vertex AI
ขั้นตอนที่ 1: นำเข้าโมเดล
ใน Cloud Console ให้ไปที่ส่วนโมเดล Vertex AI จากตรงนั้น ให้เลือกนำเข้า
ในขั้นตอนแรก ให้ตั้งชื่อโมเดลของคุณว่า predict_default
เลือกภูมิภาคเดียวกับที่คุณสร้างที่เก็บข้อมูล (us-central1, europe-west4 หรือ asia-east1 จากนั้นคลิกดำเนินการต่อ ในการตั้งค่าโมเดล ให้เก็บ "นำเข้าอาร์ติแฟกต์ของโมเดลไปยังคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าใหม่" ที่เลือกไว้
เลือก TensorFlow ในเมนูแบบเลื่อนลงเฟรมเวิร์กโมเดล จากนั้นเลือก 2.3 เป็นเวอร์ชันเฟรมเวิร์ก
ในช่องตำแหน่งอาร์ติแฟกต์ของโมเดล ให้คลิกเรียกดู คลิกที่เก็บข้อมูล GCS ที่คุณเพิ่งสร้าง แล้วคลิกไดเรกทอรี model-assets ดังนี้
จากนั้นคลิกนำเข้า ระบบจะใช้เวลาสักครู่ในการนำเข้าโมเดล เมื่อสร้างแล้ว คุณจะเห็นโมเดลในส่วนโมเดล ของ Cloud Console
7 ทำให้โมเดลใช้งานได้ที่ปลายทาง
เมื่ออัปโหลดโมเดลแล้ว ขั้นตอนต่อไปคือการสร้างปลายทางใน Vertex ทรัพยากรโมเดลใน Vertex สามารถเชื่อมโยงกับปลายทางหลายปลายทางได้ และคุณสามารถแยกการจราจรของข้อมูลระหว่างปลายทางได้
ขั้นตอนที่ 1: การสร้างปลายทาง
ในหน้าโมเดล ให้ไปที่แท็บทำให้ใช้งานได้และทดสอบ แล้วคลิกทำให้ใช้งานได้ที่ปลายทาง
ตั้งชื่อปลายทาง เช่น default_pred_v1
จากนั้นปล่อยการตั้งค่าการแยกการรับส่งข้อมูลไว้ตามเดิม จากนั้นเลือกประเภทเครื่องสำหรับการทำให้โมเดลใช้งานได้ เราใช้ n1-highcpu-2
ที่นี่ แต่คุณสามารถเลือกประเภทเครื่องที่ต้องการได้
จากนั้นเลือกเสร็จสิ้น แล้วคลิกต่อไป ปล่อยการตั้งค่าตำแหน่งที่เลือกไว้ตามเดิม แล้วคลิกทำให้ใช้งานได้ ปลายทางจะใช้เวลา 2-3 นาทีในการทำให้ใช้งานได้ เมื่อเสร็จสิ้นแล้ว คุณจะเห็นเครื่องหมายถูกสีเขียวข้างรายการ
ใกล้เสร็จแล้ว ตอนนี้คุณพร้อมที่จะรับการคาดการณ์บนโมเดลที่ทำให้ใช้งานได้แล้ว
8 การรับการคาดการณ์ในโมเดลที่ทำให้ใช้งานได้ของเรา
ตัวเลือกในการรับการคาดการณ์โมเดลมี 2-3 ตัวเลือกดังนี้
- UI ของ Vertex AI
- Vertex AI API
เราจะแสดงวิธีรับการคาดการณ์ผ่าน API
ขั้นตอนที่ 1: รับการคาดการณ์โมเดลด้วย Vertex AI API
เราจะใช้อินสแตนซ์สมุดบันทึก Vertex ที่คุณสร้างขึ้นในช่วงเริ่มต้นของห้องทดลองนี้เพื่อแสดงวิธีรับการคาดการณ์โมเดล
จากนั้นให้เปิดอินสแตนซ์สมุดบันทึกที่คุณสร้าง และเปิดสมุดบันทึก Python 3 จาก Launcher โดยทำดังนี้
ในสมุดบันทึก ให้เรียกใช้คำสั่งต่อไปนี้ในเซลล์เพื่อเขียนตัวอย่างทดสอบลงในไฟล์ JSON ชื่อ default-pred.json
เราจะส่งตัวอย่างนี้ไปยังโมเดลของเราเพื่อคาดการณ์:
%%writefile default-pred.json
{
"instances": [
{"age": 39,
"bill_amt_1": 47174,
"bill_amt_2": 47974,
"bill_amt_3": 48630,
"bill_amt_4": 50803,
"bill_amt_5": 30789,
"bill_amt_6": 15874,
"education_level": "1",
"limit_balance": 50000,
"marital_status": "2",
"pay_0": 0,
"pay_2":0,
"pay_3": 0,
"pay_4": 0,
"pay_5": "0",
"pay_6": "0",
"pay_amt_1": 1800,
"pay_amt_2": 2000,
"pay_amt_3": 3000,
"pay_amt_4": 2000,
"pay_amt_5": 2000,
"pay_amt_6": 2000,
"sex": "1"}
]
}
ถัดไป ให้คลิกคำขอตัวอย่างของปลายทางที่คุณเพิ่งทำให้ใช้งานได้ใน Vertex UI
คัดลอกโค้ดจากขั้นตอนที่ 4 ในแท็บ REST ลงในสมุดบันทึกแล้วเรียกใช้เซลล์ ดังนี้
จากนั้นเพิ่มตัวแปรสำหรับภูมิภาคที่คุณสร้างที่เก็บข้อมูลและโมเดล แทนที่ your-region
ในสตริงด้านล่าง
REGION="your-region" # either us-central1, europe-west4, or asia-east1
ขั้นตอนสุดท้าย ให้ส่งคำขอการคาดการณ์ไปยังปลายทางด้วย curl
โดยคัดลอกโค้ดต่อไปนี้ลงในสมุดบันทึก
!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"
คุณควรเห็นข้อมูลต่อไปนี้ (ค่าการคาดการณ์จริงจะแตกต่างกันเล็กน้อย)
{
"predictions": [
{
"default_payment_next_month_values": [
"1",
"0"
],
"default_payment_next_month_probs": [
0.180815295299778,
0.819184704700222
],
"predicted_default_payment_next_month": [
"0"
]
}
],
"deployedModelId": "your-model-id"
}
ค่าใน default_payment_next_month_probs
แสดงความน่าจะเป็นของแต่ละคลาส ในตัวอย่างนี้ โมเดลของเราคาดการณ์ว่ามีโอกาส 81% ที่บุคคลนี้จะไม่ถูกตั้งค่าผิดนัดชำระเงินครั้งถัดไป ค่า .819
สอดคล้องกับคลาส 0
(ไม่ใช่ค่าเริ่มต้น)
🎉 ยินดีด้วย 🎉
คุณได้เรียนรู้วิธีต่อไปนี้
- ฝึกโมเดลใน BQML
- ส่งออกโมเดล BQML ไปยัง Cloud Storage
- นำเข้าโมเดล BQML ไปยัง Vertex AI สำหรับการคาดการณ์
- สร้างโมเดล Vertex AI และทำให้โมเดลใช้งานได้ที่ปลายทาง
- รับการคาดการณ์บนปลายทางที่ทำให้ใช้งานได้ผ่านสมุดบันทึก Vertex และ curl
ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนต่างๆ ของ Vertex AI ได้ในเอกสารประกอบ
9 ล้างข้อมูล
ถ้าคุณต้องการใช้สมุดบันทึกที่คุณสร้างไว้ในห้องทดลองนี้ต่อไป ขอแนะนำให้คุณปิดสมุดบันทึกเมื่อไม่ได้ใช้งาน จาก UI ของสมุดบันทึกใน Cloud Console ให้เลือกสมุดบันทึก แล้วเลือกหยุด
หากคุณต้องการลบสมุดบันทึกทั้งหมด เพียงคลิกปุ่ม ลบ ที่ด้านบนขวา
หากต้องการลบปลายทางที่ทำให้ใช้งานได้แล้ว ให้ไปที่ส่วนปลายทางของคอนโซล Vertex AI และคลิกไอคอนลบ
หากต้องการลบที่เก็บข้อมูลของพื้นที่เก็บข้อมูล โดยใช้เมนูการนำทางใน Cloud Console จากนั้นเรียกดูพื้นที่เก็บข้อมูล เลือกที่เก็บข้อมูล แล้วคลิกลบ: