โมเดลที่กำหนดเองที่โฮสต์สำหรับ Earth Engine

การทำนายด้วยโมเดลที่ฝึกเองโดยใช้เฟรมเวิร์กแมชชีนเลิร์นนิง เช่น TensorFlow หรือ PyTorch จะต้องบันทึกและอัปโหลดโมเดลไปยัง Vertex AI, สร้างปลายทางการคาดการณ์ และทำให้โมเดลใช้งานได้ที่ปลายทางที่สร้าง

อินพุตโมเดล

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

อาร์ติแฟกต์โมเดล

ขั้นตอนถัดไปคือบันทึกโมเดลเป็นรูปแบบที่โฮสต์ได้ใน Vertex AI

TensorFlow

โมเดลที่อิงตาม TensorFlow สามารถบันทึกในรูปแบบต่างๆ ได้ แต่ Vertex AI ต้องใช้รูปแบบ SavedModel โมเดลที่อิงตาม Keras ต้องส่งออกเป็น SavedModels ที่มี tf.keras.Model.export() โมเดล TensorFlow อื่นๆ ต้องใช้ tf.saved_model.save() แบบดั้งเดิมมากกว่า ดูรายละเอียดเพิ่มเติมในเอกสารประกอบเกี่ยวกับรูปแบบ SavedModel

PyTorch

โมเดล PyTorch มีวิธีเตรียมอาร์ติแฟกต์โมเดลสำหรับการให้บริการการคาดการณ์ที่แตกต่างออกไปเล็กน้อย หากสร้างโมเดลที่ผ่านการฝึกแบบกำหนดเอง คุณต้องบันทึกโมเดลก่อน เราขอแนะนำให้แปลงโมเดล PyTorch เป็น TorchScript และบันทึกไฟล์โมเดลด้วยเหตุผลด้านประสิทธิภาพ ดังนี้

model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save

เมื่อบันทึกไฟล์โมเดลแล้ว จะต้องเก็บไฟล์เพื่อให้นำไปใช้งานได้ใน Vertex AI เมื่อใช้คอนเทนเนอร์ที่สร้างไว้ล่วงหน้า โมเดลต้องตั้งชื่อว่า "model" หากต้องการเก็บโมเดล ให้เรียกใช้ torch-model-archiver รวมถึงตัวแฮนเดิลที่กำหนดเองและไฟล์เพิ่มเติมที่โมเดลต้องการ ตัวอย่างของกรณีดังกล่าวมีดังนี้

torch-model-archiver -f \
  --model-name model \
  --version 1.0  \
  --serialized-file $model_file \
  --handler $hander_file \
  --extra-files $index_to_name_file \
  --export-path $model_path

การติดตั้งใช้งานโมเดลใน Vertex AI

เมื่อบันทึกไฟล์โมเดลแล้ว ขั้นตอนถัดไปคือการอัปโหลดโมเดลไปยัง Vertex AI หากอาร์ติแฟกต์โมเดลของคุณไม่ได้อยู่ใน Google Cloud Storage ให้คัดลอกไฟล์เก็บโมเดลไปไว้ที่นั่นก่อนด้วยคําสั่งอย่าง gsutil cp $model_path gs://${your-bucket}/models/model

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

gcloud ai models upload \
  --artifact-uri=gs://{your-bucket}/models/model \
  --display-name=${display-name} \
  --container-image-uri=${model-container} \
  --container-grpc-ports=8500

เคล็ดลับ: เปิดใช้การคาดการณ์ gRPC ด้วย Flag container-grpc-ports เพื่อให้ได้ประสิทธิภาพสูงสุด ดูข้อมูลเพิ่มเติมเกี่ยวกับการคาดการณ์ gRPC ได้ที่เอกสารประกอบเกี่ยวกับรูปแบบเพย์โหลด คุณสามารถระบุ Flag นี้ได้โดยใช้เครื่องมือบรรทัดคำสั่ง gcloud เท่านั้น

การจัดการอุปกรณ์ปลายทางตามรูปแบบ

เมื่ออัปโหลดโมเดลไปยัง Vertex AI แล้ว ให้สร้างปลายทางและทำให้โมเดลใช้งานได้ผ่านหน้าการคาดการณ์ออนไลน์โดยสร้างปลายทางใหม่ หรือใช้บรรทัดคำสั่ง gcloud ด้วยคำสั่ง endpoints create และ endpoints deploy-model เช่น

วิธีสร้างโมเดล

gcloud ai endpoints create \
  --display-name=${endpoint-name}

การทำให้โมเดลใช้งานได้

gcloud ai endpoints deploy-model {endpoint-id} \
  --model=${model-id} \
  --traffic-split=0=100 \
  --display-name=${model-display-name} \
  --min-replica-count=${min-replica-count} \
  --max-replica-count=${max-replica-count}

เมื่อทำให้โมเดลใช้งานได้แล้ว คุณก็พร้อมที่จะเชื่อมต่อกับโมเดลใน Earth Engine เพื่อทำการอนุมาน