פרוטוקול אירוח דגם

מסמך זה מתאר את מוסכמות ה-URL המשמשות בעת אירוח של כל סוגי הדגמים בדגמי tfhub.dev - TFJS, TF Lite ו- TensorFlow. הוא גם מתאר את הפרוטוקול מבוסס HTTP(S) המיושם על ידי ספריית tensorflow_hub על מנת לטעון דגמי TensorFlow מ- tfhub.dev ושירותים תואמים לתוכניות TensorFlow.

התכונה העיקרית שלו היא להשתמש באותה כתובת URL בקוד כדי לטעון דגם ובדפדפן כדי להציג את תיעוד הדגם.

מוסכמות כלליות של כתובות אתרים

tfhub.dev תומך בפורמטים הבאים של כתובת האתר:

  • מפרסמי 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> שמופיע לגרסה העדכנית ביותר של הדגם.

ניתן להוריד דגמי TF Hub כנכסים דחוסים על ידי הוספת פרמטרי URL לכתובת ה-URL של מודל tfhub.dev . עם זאת, הפרמטרים של כתובת האתר הנדרשים כדי להשיג זאת תלויים בסוג הדגם:

  • דגמי 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 הורד כתובת אתר
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=דחוס https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed

בנוסף, דגמים מסוימים גם מתארחים בפורמט שניתן לקרוא ישירות מאחסון מרוחק מבלי להוריד אותם. זה שימושי במיוחד אם אין אחסון מקומי זמין, כגון הפעלת מודל TF.js בדפדפן או טעינת SavedModel ב- Colab . היו מודעים לכך שקריאת מודלים שמתארחים מרחוק ללא הורדה מקומית עלולה להגדיל את זמן האחזור.

סוּג כתובת האתר של הדגם סוג תגובה פרמטר כתובת 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(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 .

כאשר אחד מממשקי ה-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.