پروتکل میزبانی مدل

این سند قراردادهای 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> و آدرس اینترنتی بدون نسخه <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name> هستند <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 به آدرس اینترنتی مدل TensorFlow اضافه کنید.
  • مدل‌های TFJS: ?tfjs-format=compressed به آدرس اینترنتی مدل TFJS اضافه کنید تا فایل فشرده یا /model.json?tfjs-format=file را دانلود کنید تا اگر از حافظه راه دور خوانده شود.
  • مدل‌های TF Lite: ?lite-format=tflite به آدرس اینترنتی مدل 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=compressed
TF Lite 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=غیر فشرده 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(های) شما باید پیاده سازی این پروتکل را ارائه دهد.

توجه داشته باشید که این بخش به مدل‌های میزبانی TF Lite و TFJS نمی‌پردازد زیرا از طریق کتابخانه tensorflow_hub دانلود نمی‌شوند. برای اطلاعات بیشتر در مورد میزبانی این انواع مدل، لطفاً بالا را بررسی کنید.

میزبانی فشرده

مدل ها در tfhub.dev به عنوان فایل های فشرده tar.gz ذخیره می شوند. به طور پیش فرض، کتابخانه tensorflow_hub به طور خودکار مدل فشرده شده را دانلود می کند. همچنین می‌توان آنها را به صورت دستی با افزودن ?tf-hub-format=compressed به نشانی اینترنتی مدل دانلود کرد، برای مثال:

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 هستند.

هنگامی که یکی از APIهای بارگیری مدل کتابخانه 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 می خواند.