1. บทนำ
ใน Codelab นี้ เราจะสร้างโมเดลการคาดการณ์คะแนนภาพยนตร์โดยใช้ Vertex AI AutoML และทำให้ปลายทางของโมเดลที่ทำให้ใช้งานได้แล้วทริกเกอร์จาก Java Cloud Functions ระบบจะฝึกโมเดลด้วยข้อมูลที่จัดเก็บไว้ใน BigQuery และลงทะเบียนใน Vertex AI รายการบริการแบ่งออกเป็น 2 ส่วนได้ดังนี้
- การสร้างและการติดตั้งใช้งานโมเดล ML
- ทริกเกอร์เพื่อคาดการณ์โดยใช้ ML API
การสร้างโมเดล ML:
- ข้อมูลที่มาจาก CSV ไปยัง BigQuery
- ผสานรวมข้อมูล BigQuery เข้ากับ Vertex AI เพื่อสร้างโมเดล AutoML
- โมเดลที่ทำให้ใช้งานได้ใน Vertex AI Model Registry สำหรับสร้าง API ของปลายทาง
ทริกเกอร์เพื่อคาดการณ์โดยใช้ ML API:
- Java Cloud Functions เพื่อทริกเกอร์การเรียกใช้ปลายทางของโมเดล AutoML ที่ติดตั้งใช้งานซึ่งรับรายละเอียดภาพยนตร์เป็นคำขอจาก UI และแสดงผลคะแนนภาพยนตร์ที่คาดการณ์
ภาพรวมสถาปัตยกรรมระดับสูงของแอปพลิเคชันมีดังนี้

การใช้สถาปัตยกรรมข้างต้นอยู่นอกขอบเขตของ Codelab นี้ แต่หากคุณต้องการพัฒนาแอปพลิเคชันไคลเอ็นต์ด้วย โปรดดูบล็อก
มาดูขั้นตอนการติดตั้งใช้งานกัน
สิ่งที่คุณจะสร้าง
คุณจะสร้าง
- ชุดข้อมูล BigQuery ที่มีคอมโพเนนต์ตารางและโมเดล
- โมเดล Vertex AI AutoML (สร้างและติดตั้งใช้งาน)
- ทริกเกอร์ Java Cloud Functions เพื่อคาดการณ์โดยใช้ ML API
2. ข้อกำหนด
ข้อกำหนดเบื้องต้นมีดังนี้
สร้างโปรเจ็กต์
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
- ไปที่ BigQuery เพื่อเปิดใช้ API นอกจากนี้ คุณยังเปิดเว็บ UI ของ BigQuery ได้โดยตรงโดยป้อน URL ต่อไปนี้ในเบราว์เซอร์ https://console.cloud.google.com/bigquery
เปิดใช้งาน Cloud Shell
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud และมาพร้อมกับ bq ที่โหลดไว้ล่วงหน้า จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell ที่มุมบนขวา:

- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว คุณควรเห็นว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและโปรเจ็กต์ได้รับการตั้งค่าเป็นรหัสโปรเจ็กต์ของคุณแล้ว เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคุณได้รับการตรวจสอบสิทธิ์แล้ว
gcloud auth list
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
- หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <PROJECT_ID>
โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
3. การเตรียมข้อมูลฝึกฝน
ซึ่งเป็นขั้นตอนสำคัญในโปรเจ็กต์ ผลิตภัณฑ์ และแอปทั้งหมดที่เกี่ยวข้องกับข้อมูล ซึ่งต้องใช้ความเชี่ยวชาญในโดเมนเป็นอย่างมาก นอกเหนือจากเทคโนโลยีในการเตรียมชุดข้อมูลที่เหมาะสมและทำให้พร้อมสำหรับโปรเจ็กต์ ML ใน Codelab นี้ เราจะถือว่าข้อมูลพร้อมใช้งานแล้วและใช้ไฟล์ข้อมูลที่ประมวลผลแล้วนี้
4. การสร้างและโหลดชุดข้อมูล
ชุดข้อมูล BigQuery คือคอลเล็กชันของตาราง ตารางทั้งหมดในชุดข้อมูลจะจัดเก็บไว้ในตำแหน่งข้อมูลเดียวกัน นอกจากนี้ คุณยังแนบการควบคุมการเข้าถึงที่กำหนดเองเพื่อจำกัดการเข้าถึงชุดข้อมูลและตารางของชุดข้อมูลได้ด้วย
- ใน Cloud Shell ให้ใช้คำสั่ง bq mk เพื่อสร้างชุดข้อมูลชื่อ "movies"
bq mk --location=<<LOCATION>> movies
ตั้งค่าตำแหน่งเป็นภูมิภาค (asia-south1) อย่าลืมตั้งค่าเป็นภูมิภาคสำหรับขั้นตอน VERTEX AI ด้วย (อินสแตนซ์ทั้ง 2 ควรอยู่ในภูมิภาคเดียวกัน)
- ตรวจสอบว่าคุณมีไฟล์ข้อมูล (.csv) พร้อมใช้งาน เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อโคลนที่เก็บและไปยังโปรเจ็กต์
git clone <<repository link>>
cd movie-score
- ใช้คำสั่ง bq load เพื่อโหลดไฟล์ CSV ลงในตาราง BigQuery (โปรดทราบว่าคุณยังอัปโหลดจาก BigQuery UI ได้โดยตรงด้วย)
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
- ค้นหาด้วยวิธีใดวิธีหนึ่งต่อไปนี้
เราโต้ตอบกับ BigQuery ได้ 3 วิธี และจะลองใช้ 2 วิธีต่อไปนี้ UI เว็บของ BigQuery คำสั่ง bq ค. API
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
ฉันใช้พื้นที่ทำงาน SQL บนเว็บของ BigQuery เพื่อเรียกใช้การค้นหา พื้นที่ทำงาน SQL มีลักษณะดังนี้

การใช้คำสั่ง bq
bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
5. การใช้ข้อมูล BigQuery ใน Vertex AI AutoML
ใช้ข้อมูลจาก BigQuery เพื่อสร้างโมเดล AutoML ด้วย Vertex AI โดยตรง โปรดทราบว่าเรายังสามารถเรียกใช้ AutoML จาก BigQuery เองและลงทะเบียนโมเดลกับ Vertex AI รวมถึงเปิดเผยปลายทางได้ด้วย ดูเอกสารประกอบสำหรับ BigQuery AutoML อย่างไรก็ตาม ในตัวอย่างนี้ เราจะใช้ Vertex AI AutoML เพื่อสร้างโมเดล
การสร้างชุดข้อมูล Vertex AI
ไปที่ Vertex AI จากคอนโซล Google Cloud เปิดใช้ Vertex AI API หากยังไม่ได้ดำเนินการ ขยายข้อมูลและเลือกชุดข้อมูล คลิกสร้างชุดข้อมูล เลือกประเภทข้อมูลตารางและตัวเลือก "การถดถอย / การจัดประเภท" แล้วคลิกสร้าง

เลือกแหล่งข้อมูล
เลือกแหล่งข้อมูลในหน้าถัดไป เลือกตัวเลือก "เลือกตารางหรือมุมมองจาก BigQuery" แล้วเลือกตารางจาก BigQuery ในช่องเส้นทาง BigQuery BROWSE คลิก "ต่อไป"
โปรดทราบ: อินสแตนซ์ BigQuery และชุดข้อมูล Vertex AI ควรอยู่ในภูมิภาคเดียวกันเพื่อให้ตาราง BigQuery ปรากฏใน Vertex AI

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

- ปล่อยให้วัตถุประสงค์เป็นการจัดประเภท แล้วเลือกตัวเลือก AutoML ในหน้าแรก แล้วคลิกดำเนินการต่อ:

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

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

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

ก่อนที่จะไปยังส่วนถัดไป โปรดจดรหัสปลายทาง สถานที่ตั้ง และรายละเอียดอื่นๆ ของโมเดลที่ทำให้ใช้งานได้ในส่วนปลายทาง Vertex AI
6. Java Cloud Function เพื่อทริกเกอร์การเรียกใช้ ML
คุณจำได้ไหมว่าเรามีปลายทางและรายละเอียดอื่นๆ จากขั้นตอนการทำให้ใช้งานได้ ML เราจะใช้ที่นี่ และเนื่องจากเราใช้ Java Cloud Functions เราจึงจะใช้ pom.xml เพื่อจัดการการอ้างอิง เราใช้ไลบรารี google-cloud-aiplatform เพื่อใช้ Vertex AI AutoML Endpoint API
- ค้นหา Cloud Functions ในคอนโซล Google Cloud แล้วคลิก "สร้างฟังก์ชัน"
- ป้อนรายละเอียดการกำหนดค่า เช่น สภาพแวดล้อม ชื่อฟังก์ชัน ภูมิภาค ทริกเกอร์ (ในกรณีนี้คือ HTTPS) การตรวจสอบสิทธิ์ที่คุณเลือก เปิดใช้ "ต้องใช้ HTTPS" แล้วคลิกถัดไป/บันทึก

- ในหน้าถัดไป ให้เลือก Runtime (Java 11), Source Code (Inline หรืออัปโหลด) แล้วเริ่มแก้ไข

- คัดลอกไฟล์ java และ pom.xml จากที่เก็บและวางในไฟล์ที่เกี่ยวข้องในเครื่องมือแก้ไขแบบอินไลน์ หากคุณใช้เครื่องมือแก้ไขในเครื่อง (แนะนำ) ให้โคลนแหล่งที่มาจากที่เก็บ
- เปลี่ยนรหัสโปรเจ็กต์ รหัสปลายทาง สถานที่ตั้ง และปลายทางในไฟล์ต้นฉบับ .java สำหรับตัวอย่างนี้ แต่โปรดทราบว่าแนวทางปฏิบัติแนะนำคือการใช้ Secret Manager เพื่อจัดเก็บข้อมูลเข้าสู่ระบบ
- สำหรับขอบเขตของ Codelab นี้ ให้ทำเครื่องหมายส่วน MongoDB ในคลาส .Java ในซอร์สโค้ดที่คัดลอกเป็นความคิดเห็น
คุณสามารถติดตั้งใช้งานฟังก์ชันได้เมื่อทำการเปลี่ยนแปลงทั้งหมดเสร็จแล้ว คุณควรเห็น URL ของปลายทางที่ใช้ในแอปพลิเคชันไคลเอ็นต์เพื่อส่งคำขอไปยัง Cloud Function นี้และรับคะแนนภาพยนตร์เป็นการตอบกลับได้
7. ล้างข้อมูล
โปรดทำตามขั้นตอนต่อไปนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโพสต์นี้
- ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์
8. ขอแสดงความยินดี
ยินดีด้วย คุณสร้างและติดตั้งใช้งานโมเดลการคาดการณ์คะแนนภาพยนตร์ใน Vertex AI AutoML และทริกเกอร์โมเดลที่ติดตั้งใช้งานจาก Cloud Functions ได้สำเร็จแล้ว