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

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

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

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

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

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

يمكن تنزيل نماذج TF Hub كأصول مضغوطة عن طريق إلحاق معلمات URL بعنوان URL لنموذج tfhub.dev . ومع ذلك، تعتمد معلمات 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=compressed https://tfhub.dev/google/spice/2?tf-hub-format=compressed
تي اف لايت 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=compressed https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed

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

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

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

عندما يتم استدعاء إحدى واجهات برمجة التطبيقات (APIs) الخاصة بتحميل نموذج مكتبة 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 الذي يحتوي على ملفات النماذج غير المضغوطة. على سبيل المثال،
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
يعود
gs://tfhub-modules/google/spice/2/uncompressed في نص الرد 303. تقوم المكتبة بعد ذلك بقراءة النموذج من وجهة GCS تلك.