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

يصف هذا المستند اصطلاحات عنوان URL المستخدمة عند استضافة جميع أنواع النماذج على نماذجtfhub.dev - TFJS و TF Lite و TensorFlow. يصف أيضًا البروتوكول المستند إلى HTTP (S) الذي تنفذه مكتبة tensorflow_hub من أجل تحميل نماذج TensorFlow من tfhub.dev والخدمات المتوافقة في برامج 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> و unversion url https://tfhub.dev/<publisher>/<model_name> الذي ينتقل إلى أحدث إصدار من النموذج.

يمكن تنزيل نماذج TF Hub كأصول مضغوطة عن طريق إلحاق معلمات URL بـ tfhub.dev model. ومع ذلك ، فإن معلمات 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=file

بروتوكول مكتبة 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

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

عندما يتم استدعاء أحد واجهات برمجة تطبيقات تحميل نموذج مكتبة tensorflow_hub ( hub.KerasLayer ، hub.load ، إلخ) ، تقوم المكتبة بتنزيل النموذج ، وإلغاء ضغط النموذج وتخزينه مؤقتًا محليًا. تتوقع مكتبة 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 في متن استجابة 303. ثم تقرأ المكتبة النموذج من وجهة GCS.