Vertex AI: ส่งออกและทำให้โมเดลแมชชีนเลิร์นนิง BigQuery ใช้งานได้สำหรับการคาดการณ์

1. ภาพรวม

ในแล็บนี้ คุณจะได้ฝึกโมเดลด้วยแมชชีนเลิร์นนิงของ BigQuery จากนั้นส่งออกและติดตั้งใช้งานโมเดลดังกล่าวใน Vertex AI ซึ่งเป็นผลิตภัณฑ์ AI ใหม่ล่าสุดที่นำเสนอใน Google Cloud

สิ่งที่คุณจะได้เรียนรู้

โดยคุณจะได้เรียนรู้วิธีต่อไปนี้

  • ฝึกโมเดลด้วยแมชชีนเลิร์นนิงของ BigQuery (BQML)
  • ส่งออกโมเดล BQML ไปยัง Cloud Storage
  • ติดตั้งใช้งาน BQML ที่ฝึกแล้วใน Vertex AI
  • รับการคาดการณ์ในโมเดลที่ทำให้ใช้งานได้แล้ว

ค่าใช้จ่ายทั้งหมดในการเรียกใช้ Lab นี้ใน Google Cloud อยู่ที่ประมาณ $2

2. ข้อมูลเบื้องต้นเกี่ยวกับ Vertex AI

แล็บนี้ใช้ผลิตภัณฑ์ AI รุ่นล่าสุดที่พร้อมให้บริการใน Google Cloud Vertex AI ผสานรวมข้อเสนอ ML ใน Google Cloud เข้ากับประสบการณ์การพัฒนาที่ราบรื่น ก่อนหน้านี้ โมเดลที่ฝึกด้วย AutoML และโมเดลที่กำหนดเองจะเข้าถึงได้ผ่านบริการแยกต่างหาก ข้อเสนอใหม่นี้จะรวมทั้ง 2 อย่างไว้ใน API เดียว พร้อมกับผลิตภัณฑ์ใหม่อื่นๆ นอกจากนี้ คุณยังย้ายข้อมูลโปรเจ็กต์ที่มีอยู่ไปยัง Vertex AI ได้ด้วย หากมีข้อเสนอแนะ โปรดดูหน้าการสนับสนุน

Vertex AI มีผลิตภัณฑ์มากมายที่แตกต่างกันเพื่อรองรับเวิร์กโฟลว์ ML แบบครบวงจร ห้องทดลองนี้จะมุ่งเน้นที่ผลิตภัณฑ์ที่ไฮไลต์ไว้ด้านล่าง ได้แก่ การคาดการณ์และ Notebook

ภาพรวมผลิตภัณฑ์ Vertex

3. ตั้งค่าสภาพแวดล้อม

คุณจะต้องมีโปรเจ็กต์ Google Cloud Platform ที่เปิดใช้การเรียกเก็บเงินเพื่อเรียกใช้ Codelab นี้ หากต้องการสร้างโปรเจ็กต์ ให้ทำตามวิธีการที่นี่

ขั้นตอนที่ 1: เปิดใช้ Compute Engine API

ไปที่ Compute Engine แล้วเลือกเปิดใช้หากยังไม่ได้เปิดใช้ คุณจะต้องใช้ข้อมูลนี้เพื่อสร้างอินสแตนซ์ Notebook

ขั้นตอนที่ 2: เปิดใช้ Vertex AI API

ไปที่ส่วน Vertex AI ของ Cloud Console แล้วคลิกเปิดใช้ Vertex AI API

แดชบอร์ด Vertex AI

ขั้นตอนที่ 3: สร้างอินสแตนซ์ Notebooks

เราจะใช้ Notebook เพื่อรับการคาดการณ์หลังจากที่ทำให้โมเดลใช้งานได้ จากส่วน Vertex AI ของ Cloud Console ให้คลิก Notebook

เมนู Vertex AI

จากนั้นเลือกอินสแตนซ์ใหม่ จากนั้นเลือกประเภทอินสแตนซ์ TensorFlow Enterprise 2.3 ที่ไม่มี GPU ดังนี้

อินสแตนซ์ TFE

ใช้ตัวเลือกเริ่มต้น แล้วคลิกสร้าง เมื่อสร้างอินสแตนซ์แล้ว ให้เลือกเปิด JupyterLab

เปิด Notebook ของ CAIP

4. ฝึกโมเดล BigQuery ML

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

ขั้นตอนที่ 1: สร้างชุดข้อมูล BigQuery ในโปรเจ็กต์

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

สร้างชุดข้อมูล BQ

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

ขั้นตอนที่ 2: เรียกใช้การค้นหา CREATE MODEL

ในตัวแก้ไขคำค้นหาของ BigQuery ให้เรียกใช้CREATE MODELการค้นหาต่อไปนี้เพื่อสร้างและฝึกโมเดล BigQuery ML ในชุดข้อมูลสาธารณะที่เราจะใช้ อย่าลืมแทนที่ your-project ด้วยชื่อโปรเจ็กต์ Cloud ของคุณ

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 นาทีในการเรียกใช้ เมื่อเสร็จสิ้น คุณจะเห็นโมเดลภายใต้ชุดข้อมูล

รายละเอียดโมเดล BQML

คุณคลิกที่โมเดลเพื่อดูเมตริกการฝึกและการประเมินได้

5. ส่งออกโมเดล BigQuery ML

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

ขั้นตอนที่ 1: สร้าง Bucket ของ Cloud Storage สำหรับโมเดล

ในรายละเอียดโมเดล ให้คลิกส่งออกโมเดล

ส่งออกโมเดล BQML

ซึ่งจะแจ้งให้คุณป้อนตำแหน่ง Google Cloud Storage (GCS) ที่คุณต้องการส่งออกชิ้นงานของโมเดล หากยังไม่มีที่เก็บข้อมูล GCS ก็ไม่ต้องกังวล เรากำลังจะสร้าง ก่อนอื่น ให้คลิกเรียกดู

เรียกดูที่เก็บข้อมูล GCS

จากนั้นคลิกไอคอน + เพื่อสร้างที่เก็บข้อมูลใหม่

Bucket ของ GCS ใหม่

ตั้งชื่อที่ไม่ซ้ำกัน (ชื่อที่เก็บข้อมูลต้องไม่ซ้ำกันทั่วโลก) คลิกต่อไป ในขั้นตอนถัดไป ภายในประเภทสถานที่ตั้ง ให้เลือกภูมิภาค แล้วเลือกภูมิภาคจากเมนูแบบเลื่อนลง

ตำแหน่งของ Bucket

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

การควบคุมการเข้าถึงแบบเดียวกัน

คลิกดำเนินการต่อและใช้ค่าเริ่มต้นสำหรับตัวเลือกที่เหลือ จากนั้นคลิกสร้าง

ขั้นตอนที่ 2: ส่งออกโมเดล BQML

เมื่อสร้าง Bucket ใหม่แล้ว ให้ป้อน model-assets (หรืออะไรก็ได้ที่คุณต้องการ) ในช่องชื่อ แล้วคลิกเลือก

เส้นทางการส่งออกโมเดล

จากนั้นคลิกส่งออก ซึ่งจะเป็นการสร้างงานใน BigQuery เพื่อส่งออกโมเดลในรูปแบบ SavedModel ของ TensorFlow ไปยังที่เก็บข้อมูล GCS ที่สร้างขึ้นใหม่ซึ่งคุณระบุ การส่งออกจะใช้เวลาประมาณ 1 นาที

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

ชิ้นงานโมเดลที่ส่งออก

6. นำเข้าโมเดลไปยัง Vertex AI

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

ขั้นตอนที่ 1: นำเข้าโมเดล

ใน Cloud Console ให้ไปที่ส่วนโมเดลของ Vertex AI จากนั้นเลือกนำเข้า

นำเข้าโมเดล

ในขั้นตอนแรก ให้ตั้งชื่อโมเดลเป็น predict_default เลือกภูมิภาคเดียวกับที่สร้าง Bucket (us-central1, europe-west4 หรือ asia-east1) จากนั้นคลิกดำเนินการต่อ ในการตั้งค่าโมเดล ให้เลือก "นำเข้าอาร์ติแฟกต์โมเดลไปยังคอนเทนเนอร์สำเร็จรูปใหม่" ไว้

ในเมนูแบบเลื่อนลงเฟรมเวิร์กของโมเดล ให้เลือก TensorFlow จากนั้นเลือก 2.3 เป็นเวอร์ชันเฟรมเวิร์ก

ในช่องตำแหน่งอาร์ติแฟกต์ของโมเดล ให้คลิกเรียกดู คลิกที่ถัง GCS ที่คุณเพิ่งสร้าง แล้วคลิกไดเรกทอรี model-assets

เส้นทางชิ้นงานโมเดล

จากนั้นคลิกนำเข้า การนำเข้าโมเดลจะใช้เวลา 2-3 นาที เมื่อสร้างแล้ว คุณจะเห็นโมเดลในส่วนโมเดลของ Cloud Console

ส่วนโมเดล

7. ทำให้โมเดลใช้งานได้ที่ปลายทาง

เมื่ออัปโหลดโมเดลแล้ว ขั้นตอนถัดไปคือการสร้างปลายทางใน Vertex ทรัพยากรโมเดลใน Vertex สามารถมีปลายทางหลายรายการที่เชื่อมโยงอยู่ และคุณสามารถแยกการรับส่งข้อมูลระหว่างปลายทางได้

ขั้นตอนที่ 1: สร้างปลายทาง

ในหน้าโมเดล ให้ไปที่แท็บติดตั้งใช้งานและทดสอบ แล้วคลิกติดตั้งใช้งานไปยังปลายทาง

ติดตั้งใช้งานและทดสอบ

ตั้งชื่อปลายทาง เช่น default_pred_v1, ปล่อยให้การตั้งค่าการแยกการรับส่งเป็นค่าเริ่มต้น แล้วเลือกประเภทเครื่องสำหรับการติดตั้งใช้งานโมเดล เราใช้ n1-highcpu-2 ที่นี่ แต่คุณสามารถเลือกประเภทเครื่องที่คุณต้องการได้

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

อุปกรณ์ปลายทางที่ติดตั้งใช้งาน

ใกล้แล้ว ตอนนี้คุณพร้อมที่จะรับการคาดการณ์ในโมเดลที่ใช้งานจริงแล้ว

8. รับการคาดการณ์ในโมเดลที่ใช้งานจริง

คุณมีตัวเลือกในการรับการคาดการณ์ของโมเดลดังนี้

  • UI ของ Vertex AI
  • Vertex AI API

ในส่วนนี้ เราจะแสดงวิธีรับการคาดการณ์ผ่าน API

ขั้นตอนที่ 1: รับการคาดการณ์ของโมเดลด้วย Vertex AI API

เราจะใช้อินสแตนซ์ Vertex Notebook ที่คุณสร้างขึ้นในช่วงต้นของแล็บนี้เพื่อแสดงวิธีรับการคาดการณ์ของโมเดลที่นี่

จากนั้นเปิดอินสแตนซ์ Notebook ที่คุณสร้างขึ้น แล้วเปิด Notebook Python 3 จากตัวเรียกใช้งานโดยทำดังนี้

เปิดสมุดบันทึก

ใน Notebook ให้เรียกใช้คำสั่งต่อไปนี้ในเซลล์เพื่อเขียนตัวอย่างการทดสอบลงในไฟล์ 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"}
  ]
}

จากนั้นใน UI ของ Vertex ให้คลิกคำขอตัวอย่างสำหรับปลายทางที่คุณเพิ่งติดตั้งใช้งาน

ตัวอย่างคำขอ

คัดลอกโค้ดจากขั้นตอนที่ 4 ในแท็บ REST ลงใน Notebook แล้วเรียกใช้เซลล์

ตัวแปรคำขอ

จากนั้นเพิ่มตัวแปรสำหรับภูมิภาคที่คุณสร้างที่เก็บข้อมูลและโมเดล แทนที่ your-region ในสตริงด้านล่าง

REGION="your-region" # either us-central1, europe-west4, or asia-east1

สุดท้าย ให้ส่งคำขอการคาดการณ์ไปยังปลายทางด้วย curl โดยคัดลอกโค้ดต่อไปนี้ลงใน Notebook

!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 Notebooks และ curl

ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนต่างๆ ของ Vertex AI ได้ที่เอกสารประกอบ

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

หากต้องการใช้ Notebook ที่สร้างขึ้นใน Lab นี้ต่อไป ขอแนะนำให้ปิดเมื่อไม่ได้ใช้งาน จาก UI ของ Notebook ใน Cloud Console ให้เลือก Notebook แล้วเลือกหยุด

หยุดอินสแตนซ์

หากต้องการลบสมุดบันทึกทั้งหมด ให้คลิกปุ่มลบที่ด้านขวาบน

หากต้องการลบปลายทางที่คุณติดตั้งใช้งาน ให้ไปที่ส่วนปลายทางของคอนโซล Vertex AI แล้วคลิกไอคอนลบ

ลบปลายทาง

หากต้องการลบ Storage Bucket ให้ใช้เมนูการนำทางใน Cloud Console โดยไปที่ Storage เลือก Bucket แล้วคลิกลบ

ลบพื้นที่เก็บข้อมูล