تنسيقات الحمولة المستضافة للنموذج المتوافقة مع Earth Engine

يجب إعداد النموذج المخصّص الذي تم تدريبه بحيث يمكن لخدمة Earth Engine إرسال طلبات استنتاج جيدة الصياغة وقابلة للتفسير إلى النموذج أثناء استضافته على Vertex AI.

مدخلات النماذج المتوافقة

تُنشئ أداة Earth Engine الطلبات نيابةً عنك عند إجراء الاستنتاج. حدِّد تنسيق الحمولة الذي سترسل به واجهة برمجة التطبيقات طلبات باستخدام المَعلمة payloadFormat عند إنشاء مثيل لرابط النماذج باستخدام ee.Model.fromVertexAi.

حِزم بيانات التوقّعات في gRPC

يمكن لجميع نماذج TensorFlow المستضافة إرسال التوقّعات عبر بروتوكول gRPC. هذه هي الطريقة المفضّلة لربط النماذج المستضافة بخدمة Earth Engine، لأنّه سيؤدي ذلك إلى تقليل وقت استجابة التوقّعات وزيادة الموثوقية.

GRPC_TF_TENSORS

استخدِم تنسيق الحمولة GRPC_TF_TENSORS لاستخدام gRPC مع نماذج TensorFlow. سيتم ترميز جميع المواقع أو النطاقات في PredictRequest واحد. سيتم تحويل هذا PredictRequest إلى قاموس من مصفوفات تينسور ليستخدمه النموذج.

GRPC_SERIALIZED_TF_TENSORS

استخدِم تنسيق GRPC_SERIALIZED_TF_TENSORS إذا كنت تريد نقل نموذج منصة الذكاء الاصطناعي في السحابة الإلكترونية الذي سبق أن تم دمجه مع Earth Engine بدون الحاجة إلى تعديل النموذج. ستحتاج إلى إعادة التحميل و إعادة النشر إذا لم يتم ضبط container_grpc_ports على النموذج في Vertex AI.

GRPC_SERIALIZED_TF_EXAMPLES

استخدِم GRPC_SERAILZED_TF_EXAMPLES للنماذج التي تتيح استخدام ملفّات ‎tf.Example protocol التخزين. ستُرسِل Earth Engine مصفوفة تانسور واحدة باسم "input" تحتوي على ملف ByteString من ملف proto مُشفَّر بترميز utf-8 لمثال على ملف proto.

حِزم بيانات واجهة برمجة التطبيقات HTTP

تتيح لك أداة Vertex AI الاتصال بنقاط نهاية الاستنتاج في HTTP. تتيح أداة Earth Engine استخدام العديد من تنسيقات الحمولات الشائعة في HTTP. تتيح جميع نماذج Vertex AI المخصّصة تلقائيًا واجهة برمجة التطبيقات HTTP inference API.

SERIALIZED_TF_TENSORS

هذا هو payloadFormat التلقائي عند الاتصال بنموذج مستضاف في Vertex AI. إنّ تنسيق الحمولة هذا هو الأكثر فعالية بين تنسيقات الحمولة في HTTP عند استخدام نماذج TensorFlow.

ستنشئ أداة Earth Engine المدخلات بالطريقة التالية: لكل نطاق و خاصية مطلوبة لطلب الاستنتاج، سيكون هناك زوج مفتاح/قيمة واحد في عنصر instances الذي يتم إرساله إلى النموذج المستضاف.

سيكون كل مفتاح هو اسم النطاق أو الموقع، وستكون كل قيمة string_val من نوع TensorProto ByteString بترميز Base64.

RAW_JSON

بالنسبة إلى إطارات العمل الأخرى للنماذج، فإنّ التنسيق الأكثر مرونة الذي يمكننا إرساله هو قاموس JSON للمدخلات والقيم المُسمّاة. يعمل تنسيق الحمولة هذا بشكل جيد مع نماذج PyTorch وAutoML تلقائيًا.

يُرجى العلم أنّه سيتم تحويل جميع القيم الرقمية إلى سلاسل JSON. على سبيل المثال، لتمثيل الرقم 12.345، نُشفِّره على النحو التالي: "12.345". لا تتوفّر حِزم بيانات الاستنتاج الكبيرة بشكل جيد مع تنسيق الحِزم هذا.

ND_ARRAYS

يشبه هذا تنسيق الحمولة RAW_JSON، ولكن سيتم حذف المفاتيح وسيكون هناك قائمة بالأرقام فقط بالتنسيق نفسه للاتّصال to_list() في صفيف ndarray من NumPy. يعمل تنسيق الحمولة هذا بشكل جيد مع PyTorch بشكلٍ أصلي.