การคาดการณ์การจัดประเภทภาพยนตร์ด้วย Vertex AI AutoML

1. บทนำ

ในโค้ดแล็บนี้ เราจะสร้างโมเดลการคาดการณ์คะแนนภาพยนตร์โดยใช้ Vertex AI AutoML และทริกเกอร์ปลายทางของโมเดลที่ติดตั้งใช้งานจาก Java Cloud Functions โมเดลได้รับการฝึกด้วยข้อมูลที่จัดเก็บไว้ใน BigQuery และลงทะเบียนไว้ใน Vertex AI รายการบริการจะแบ่งออกเป็น 2 ส่วนดังนี้

  1. การสร้างและทำให้โมเดล ML ใช้งานได้
  2. ทริกเกอร์เพื่อคาดการณ์โดยใช้ ML API

การสร้างโมเดล ML:

  1. ข้อมูลจาก CSV ไปยัง BigQuery
  2. ข้อมูล BigQuery ที่ผสานรวมกับ Vertex AI สําหรับการสร้างโมเดล AutoML
  3. โมเดลที่ติดตั้งใช้งานใน Vertex AI Model Registry เพื่อสร้าง API ปลายทาง

ทริกเกอร์เพื่อคาดการณ์โดยใช้ ML API

  1. Java Cloud Functions เพื่อทริกเกอร์การเรียกใช้ปลายทางของโมเดล AutoML ที่ติดตั้งใช้งานซึ่งรับรายละเอียดภาพยนตร์ตามคำขอจาก UI และแสดงผลคะแนนภาพยนตร์ที่คาดการณ์

ภาพรวมสถาปัตยกรรมระดับสูงของแอปพลิเคชันมีดังนี้

5ae50607c0f2db20.png

การใช้งานสถาปัตยกรรมข้างต้นอยู่นอกขอบเขตของ Codelab นี้ แต่หากต้องการพัฒนาแอปพลิเคชันไคลเอ็นต์ด้วย โปรดดูบล็อก

มาเจาะลึกขั้นตอนการติดตั้งใช้งานกัน

สิ่งที่คุณจะสร้าง

คุณจะต้องสร้าง

  • ชุดข้อมูล BigQuery ที่มีคอมโพเนนต์ตารางและโมเดล
  • โมเดล AutoML ของ Vertex AI (สร้างและติดตั้งใช้งาน)
  • ทริกเกอร์ Java Cloud Functions เพื่อคาดการณ์โดยใช้ ML API

2. ข้อกำหนด

  • เบราว์เซอร์ เช่น Chrome หรือ Firefox
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน

สิ่งที่ต้องทำก่อนมีดังนี้

สร้างโปรเจ็กต์

  1. ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
  2. ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์หรือไม่
  3. ไปที่ BigQuery เพื่อเปิดใช้ API นอกจากนี้ คุณยังเปิดเว็บ UI ของ BigQuery ได้โดยตรงโดยป้อน URL ต่อไปนี้ในเบราว์เซอร์ https://console.cloud.google.com/bigquery

เปิดใช้งาน Cloud Shell

  1. คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud โดยโหลด bq ไว้ล่วงหน้า จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบน 6757b2fb50ddcc2d.png
  2. เมื่อเชื่อมต่อกับ Cloud Shell แล้ว คุณควรจะเห็นการรับรองความถูกต้องและโปรเจ็กต์ที่ตั้งค่าเป็นรหัสโปรเจ็กต์ของคุณแล้ว เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคุณได้รับการตรวจสอบสิทธิ์
gcloud auth list
  1. เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
  1. หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คําสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <PROJECT_ID>

โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ

3. การเตรียมข้อมูลการฝึก

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

4. การสร้างและโหลดชุดข้อมูล

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

  1. ใน Cloud Shell ให้ใช้คําสั่ง bq mk เพื่อสร้างชุดข้อมูลชื่อ "movies"
bq mk --location=<<LOCATION>> movies

ตั้งค่าตำแหน่งเป็นภูมิภาค (asia-south1) อย่าลืมตั้งค่าเป็นภูมิภาคสำหรับขั้นตอน VERTEX AI ด้วย (ทั้ง 2 อินสแตนซ์ควรอยู่ในภูมิภาคเดียวกัน)

  1. ตรวจสอบว่าคุณมีไฟล์ข้อมูล (.csv) พร้อมแล้ว เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อโคลนที่เก็บและไปยังโปรเจ็กต์
git clone <<repository link>>

cd movie-score
  1. ใช้คําสั่ง bq load เพื่อโหลดไฟล์ CSV ลงในตาราง BigQuery (โปรดทราบว่าคุณอัปโหลดจาก UI ของ BigQuery โดยตรงได้ด้วย)
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
  1. ค้นหาด้วยวิธีใดวิธีหนึ่งต่อไปนี้

เราโต้ตอบกับ BigQuery ได้ 3 วิธี เราจะลองใช้ 2 วิธี ได้แก่ a. UI เว็บของ BigQuery ข. คำสั่ง bq c API

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

ฉันใช้เวิร์กสเปซ SQL ของเว็บ BigQuery เพื่อเรียกใช้การค้นหา พื้นที่ทํางาน SQL จะมีลักษณะดังนี้

109a0b2c7155e9b3.png

การใช้คําสั่ง 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 เอง ลงทะเบียนโมเดลกับ VertexAI และแสดงข้อมูลปลายทางได้ด้วย โปรดดูเอกสารประกอบของ BigQuery AutoML แต่ในตัวอย่างนี้ เราจะใช้ Vertex AI AutoML เพื่อสร้างโมเดล

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

ไปที่ Vertex AI จากคอนโซล Google Cloud เปิดใช้ Vertex AI API หากยังไม่ได้ดำเนินการ ขยายข้อมูลและเลือกชุดข้อมูล คลิกสร้างชุดข้อมูล เลือกประเภทข้อมูล TABULAR และตัวเลือก "การถดถอย / การจัดประเภท" แล้วคลิกสร้าง

4104c75c34cbd2d9.png

เลือกแหล่งข้อมูล

เลือกแหล่งข้อมูลในหน้าถัดไป เลือกตัวเลือก "เลือกตารางหรือมุมมองจาก BigQuery" แล้วเลือกตารางจาก BigQuery ในช่องเรียกดูเส้นทาง BigQuery คลิก "ต่อไป"

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

b787ef18dbca4cff.png

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

ฝึกโมเดล

  1. เมื่อสร้างชุดข้อมูลแล้ว คุณควรเห็นหน้า "วิเคราะห์" ที่มีตัวเลือกให้ฝึกโมเดลใหม่ คลิกที่ไอคอนต่อไปนี้

bf095263d57106de.png

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

คลิก "เริ่มการฝึก" เพื่อเริ่มฝึกโมเดลใหม่

e72b004a17849bd.png

ประเมิน ติดตั้งใช้งาน และทดสอบโมเดล

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

  1. ดูและประเมินผลลัพธ์การฝึกอบรม 4767b4bbd7cf93fa.png
  2. ทำให้โมเดลใช้งานได้และทดสอบด้วยปลายทาง API

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

95fb4495618174f0.png

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

6. Cloud Function ของ Java เพื่อทริกเกอร์การเรียกใช้ ML

อย่าลืมว่าเรามีปลายทางและรายละเอียดอื่นๆ จากขั้นตอนการทำให้ ML ใช้งานได้ เราจะใช้ pom.xml ที่นี่ และเนื่องจากเราใช้ Java Cloud Functions เราจะใช้ pom.xml เพื่อจัดการการอ้างอิง เราใช้ไลบรารี google-cloud-aiplatform เพื่อใช้งาน API ปลายทาง AutoML ของ Vertex AI

  1. ค้นหา Cloud Functions ในคอนโซล Google Cloud แล้วคลิก "สร้างฟังก์ชัน"
  2. ป้อนรายละเอียดการกําหนดค่า เช่น สภาพแวดล้อม ชื่อฟังก์ชัน ภูมิภาค ทริกเกอร์ (ในกรณีนี้คือ HTTPS) การตรวจสอบสิทธิ์ที่เลือก เปิดใช้ "ต้องใช้ HTTPS" แล้วคลิกถัดไป/บันทึก

a68272022df062f2.png

  1. ในหน้าถัดไป ให้เลือกรันไทม์ (Java 11), รหัสต้นฉบับ (แทรกหรืออัปโหลด) แล้วเริ่มแก้ไข

13df616369ca5951.png

  1. คัดลอกไฟล์ java และ pom.xml จากรีโปและวางในไฟล์ที่เกี่ยวข้องในเครื่องมือแก้ไขแบบแทรกในหน้า หากคุณใช้เครื่องมือแก้ไขในเครื่อง (แนะนำ) ให้โคลนแหล่งที่มาจากรีโป
  2. เปลี่ยนรหัสโปรเจ็กต์ รหัสปลายทาง ตำแหน่ง และปลายทางในไฟล์ต้นฉบับ .java สำหรับตัวอย่างนี้ แต่โปรดทราบว่าแนวทางปฏิบัติแนะนำคือใช้ Secret Manager สำหรับจัดเก็บข้อมูลเข้าสู่ระบบ
  3. สําหรับขอบเขตของ Codelab นี้ ให้ใส่เครื่องหมายกำกับส่วน MongoDB ในคลาส .java ในซอร์สโค้ดที่คัดลอกไว้

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

7. ล้างข้อมูล

โปรดทำตามขั้นตอนต่อไปนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโพสต์นี้

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร
  2. ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิก "ลบ"
  3. ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิก "ปิด" เพื่อลบโปรเจ็กต์

8. ขอแสดงความยินดี

ยินดีด้วย คุณสร้างและติดตั้งใช้งานโมเดลการคาดการณ์คะแนนภาพยนตร์ใน Vertex AI AutoML และเรียกใช้โมเดลที่ติดตั้งใช้งานจาก Cloud Functions เรียบร้อยแล้ว