การทำนายด้วยโมเดลที่ฝึกเองโดยใช้เฟรมเวิร์กแมชชีนเลิร์นนิง เช่น 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 เพื่อทำการอนุมาน