نموذج بروتوكول الاستضافة

يصف هذا المستند اختصارات عناوين URL المستخدمة عند استضافة جميع أنواع النماذج على tfhub.dev - TFJS و TF Lite و TensorFlow. كما يصف HTTP (S) بروتوكول المستندة إلى جانب تنفيذ tensorflow_hub مكتبة لتحميل نماذج TensorFlow من tfhub.dev والخدمات compatibe في برامج TensorFlow.

الميزة الرئيسية الخاصة به هي استخدام نفس عنوان URL في الكود لتحميل نموذج وفي متصفح لعرض وثائق النموذج.

اصطلاحات URL العامة

tfhub.dev يدعم تنسيقات URL التالية:

  • يتابع ناشرو TF Hub https://tfhub.dev/<publisher>
  • تتبع مجموعات TF Hub https://tfhub.dev/<publisher>/collection/<collection_name>
  • تحتوي نماذج TF Hub على إصدار url https://tfhub.dev/<publisher>/<model_name>/<version> https://tfhub.dev/<publisher>/<model_name> url غير الإصدار https://tfhub.dev/<publisher>/<model_name> الذي https://tfhub.dev/<publisher>/<model_name> إلى أحدث إصدار من النموذج.

يمكن تنزيل نماذج TF Hub كأصول مضغوطة عن طريق إلحاق معلمات URL بـ tfhub.dev عنوان URL للنموذج. ومع ذلك ، فإن معلمات URL المطلوبة لتحقيق ذلك تعتمد على نوع النموذج:

  • نماذج TensorFlow (تنسيقات SavedModel و TF1 Hub): قم بإلحاق ?tf-hub-format=compressed إلى عنوان url الخاص بنموذج TensorFlow.
  • نماذج TFJS: قم بإلحاق ?tfjs-format=compressed إلى عنوان url الخاص بنموذج TFJS لتنزيل الملف المضغوط أو /model.json?tfjs-format=file لقراءته من التخزين البعيد.
  • نماذج TF lite: قم بإلحاق ?lite-format=tflite إلى عنوان url الخاص بنموذج TF Lite.

على سبيل المثال:

يكتب نموذج URL نوع التنزيل معلمة URL تحميل URL
TensorFlow (SavedModel ، تنسيق TF1 Hub) https: //tfhub.dev/google/spice/2 .tar.gz ؟ tf-hub-format = مضغوط https: //tfhub.dev/google/spice/2؟ tf-hub-format = مضغوط
TF لايت https: //tfhub.dev/google/lite-model/spice/1 .tflite ؟ lite-format = tflite https: //tfhub.dev/google/lite-model/spice/1؟ lite-format = tflite
TF.js https: //tfhub.dev/google/tfjs-model/spice/2/default/1 .tar.gz ؟ tfjs-format = مضغوط https: //tfhub.dev/google/tfjs-model/spice/2/default/1؟ tfjs-format = مضغوط

بالإضافة إلى ذلك ، تتم استضافة بعض الطرز أيضًا بتنسيق يمكن قراءته مباشرةً من التخزين البعيد دون تنزيلها. هذا مفيد بشكل خاص إذا لم يكن هناك تخزين محلي متاح ، مثل تشغيل نموذج TF.js في المستعرض أو تحميل SavedModel على Colab . اعلم أن قراءة النماذج التي تتم استضافتها عن بُعد دون تنزيلها محليًا قد تزيد من زمن الانتقال.

يكتب نموذج URL نوع الاستجابة معلمة URL طلب URL
TensorFlow (SavedModel ، تنسيق TF1 Hub) https: //tfhub.dev/google/spice/2 سلسلة (المسار إلى مجلد GCS حيث يتم تخزين النموذج غير المضغوط) ؟ tf-hub-format = غير مضغوط https: //tfhub.dev/google/spice/2؟ tf-hub-format = uncompressed
TF.js https: //tfhub.dev/google/tfjs-model/spice/2/default/1 .json ؟ tfjs- تنسيق = ملف https: //tfhub.dev/google/tfjs-model/spice/2/default/1/model.json؟ tfjs-format = ملف

بروتوكول مكتبة tensorflow_hub

يصف هذا القسم كيف نستضيف النماذج على tfhub.dev للاستخدام مع مكتبة tensorflow_hub. إذا كنت ترغب في استضافة مستودع النموذج الخاص بك للعمل مع مكتبة tensorflow_hub ، فيجب أن توفر خدمة توزيع HTTP (s) تنفيذًا لهذا البروتوكول.

لاحظ أن هذا القسم لا يتناول استضافة نماذج TF Lite و TFJS نظرًا لعدم تنزيلها عبر مكتبة tensorflow_hub . لمزيد من المعلومات حول استضافة أنواع النماذج هذه ، يرجى التحقق أعلاه .

استضافة مضغوطة

يتم تخزين النماذج في tfhub.dev كملفات مضغوطة tar.gz. بشكل افتراضي ، تقوم مكتبة tensorflow_hub بتنزيل النموذج المضغوط تلقائيًا. يمكن أيضًا تنزيلها يدويًا عن طريق إلحاق ?tf-hub-format=compressed إلى عنوان url للنموذج ، على سبيل المثال:

wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed

جذر الأرشيف هو جذر دليل النموذج ويجب أن يحتوي على SavedModel ، كما في هذا المثال:

# Create a compressed model from a SavedModel directory.
$ tar -cz -f model.tar.gz --owner=0 --group=0 -C /tmp/export-model/ .

# Inspect files inside a compressed model
$ tar -tf model.tar.gz
./
./variables/
./variables/variables.data-00000-of-00001
./variables/variables.index
./assets/
./saved_model.pb

سوف تحتوي ./tfhub_module.pb Tarballs للاستخدام مع تنسيق TF1 Hub القديم أيضًا على ملف ./tfhub_module.pb .

عندما يتم استدعاء أحد واجهات برمجة تطبيقات تحميل نموذج مكتبة tensorflow_hub ( hub.KerasLayer ، hub.load ، إلخ) ، تقوم المكتبة بتنزيل النموذج ، tensorflow_hub النموذج وتخزينه مؤقتًا محليًا. تتوقع مكتبة tensorflow_hub أن يتم إصدار عناوين URL للنموذج وأن محتوى النموذج لإصدار معين غير قابل للتغيير ، بحيث يمكن تخزينه مؤقتًا إلى أجل غير مسمى. تعرف على المزيد حول نماذج التخزين المؤقت .

استضافة غير مضغوطة

عندما متغير البيئة TFHUB_MODEL_LOAD_FORMAT أو سطر الأوامر العلم --tfhub_model_load_format ومن المقرر أن UNCOMPRESSED ، تتم قراءة النموذج مباشرة من التخزين عن بعد (GCS) بدلا من تحميلها وغير مضغوط محليا. عند تمكين هذا السلوك ، تقوم المكتبة بإلحاق ?tf-hub-format=uncompressed بعنوان URL الخاص بالنموذج. يعيد هذا الطلب المسار إلى المجلد على GCS الذي يحتوي على ملفات النموذج غير المضغوطة. كمثال،
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
عائدات
gs://tfhub-modules/google/spice/2/uncompressed في gs://tfhub-modules/google/spice/2/uncompressed استجابة 303. ثم تقرأ المكتبة النموذج من وجهة GCS.