میزبانی مدل سفارشی برای موتور زمین

انجام استنتاج با یک مدل آموزش‌دیده سفارشی با استفاده از چارچوب یادگیری ماشینی مانند 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 مستقر کرد. هنگام استفاده از یک ظرف از پیش ساخته شده، مدل باید "مدل" نامیده شود . برای بایگانی کردن مدل 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 را با پرچم container-grpc-ports فعال کنید. اطلاعات بیشتر درباره پیش‌بینی‌های gRPC را در مستندات قالب‌های بارگذاری ما ببینید. این پرچم را فقط می توان با استفاده از ابزار خط فرمان 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 متصل شوید.