मॉडल होस्टिंग प्रोटोकॉल

यह दस्तावेज़ tfhub.dev पर सभी प्रकार के मॉडल (TFJS, TF Lite और TensorFlow मॉडल) को होस्ट करते समय उपयोग किए जाने वाले URL नियमों का वर्णन करता है। यह tensorflow_hub लाइब्रेरी द्वारा लागू किए गए HTTP(S) आधारित प्रोटोकॉल का भी वर्णन करता है, जिसका उपयोग tfhub.dev और संगत सेवाओं से TensorFlow मॉडल को TensorFlow प्रोग्राम में लोड करने के लिए किया जाता है।

इसकी प्रमुख विशेषता यह है कि कोड में मॉडल लोड करने और ब्राउज़र में मॉडल के दस्तावेज़ देखने के लिए एक ही यूआरएल का उपयोग किया जाता है।

सामान्य यूआरएल नियम

tfhub.dev निम्नलिखित URL प्रारूपों का समर्थन करता है:

  • TF Hub के प्रकाशक https://tfhub.dev/<publisher> का अनुसरण करें
  • TF Hub संग्रह https://tfhub.dev/<publisher>/collection/<collection_name> का अनुसरण करते हैं
  • TF Hub मॉडल में वर्ज़न्ड यूआरएल https://tfhub.dev/<publisher>/<model_name>/<version> और अनवर्ज़न्ड यूआरएल https://tfhub.dev/<publisher>/<model_name> होता है जो मॉडल के नवीनतम वर्ज़न को रिज़ॉल्व करता है।

TF Hub मॉडल को tfhub.dev मॉडल URL में URL पैरामीटर जोड़कर संपीड़ित एसेट के रूप में डाउनलोड किया जा सकता है। हालाँकि, इसके लिए आवश्यक URL पैरामीटर मॉडल के प्रकार पर निर्भर करते हैं।

  • TensorFlow मॉडल (SavedModel और TF1 Hub दोनों प्रारूपों में): TensorFlow मॉडल URL में ?tf-hub-format=compressed जोड़ें।
  • TFJS मॉडल: संपीड़ित फ़ाइल डाउनलोड करने के लिए TFJS मॉडल URL में ?tfjs-format=compressed जोड़ें या रिमोट स्टोरेज से पढ़ने के लिए /model.json?tfjs-format=file जोड़ें।
  • TF Lite मॉडल: TF Lite मॉडल URL में ?lite-format=tflite जोड़ें।

उदाहरण के लिए:

प्रकार मॉडल यूआरएल डाउनलोड प्रकार यूआरएल पैरामीटर डाउनलोड यूआरएल
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
टीएफ.जेएस 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 लोड करना। ध्यान रखें कि रिमोट से होस्ट किए गए मॉडलों को स्थानीय रूप से डाउनलोड किए बिना पढ़ने से लेटेंसी बढ़ सकती है।

प्रकार मॉडल यूआरएल प्रतिक्रिया प्रकार यूआरएल पैरामीटर अनुरोध यूआरएल
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
टीएफ.जेएस 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 लाइब्रेरी के साथ काम करने के लिए अपना स्वयं का मॉडल रिपॉजिटरी होस्ट करना चाहते हैं, तो आपकी HTTP(s) वितरण सेवा को इस प्रोटोकॉल का कार्यान्वयन प्रदान करना चाहिए।

ध्यान दें कि इस अनुभाग में 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 हब प्रारूप के साथ उपयोग के लिए टारबॉल में ./tfhub_module.pb फ़ाइल भी शामिल होगी।

जब tensorflow_hub लाइब्रेरी के मॉडल लोडिंग API ( hub.KerasLayer , hub.load , आदि) में से किसी एक को कॉल किया जाता है, तो लाइब्रेरी मॉडल को डाउनलोड करती है, उसे अनकंप्रेस करती है और स्थानीय रूप से कैश करती है। tensorflow_hub लाइब्रेरी यह अपेक्षा करती है कि मॉडल URL वर्ज़न्ड हों और किसी दिए गए वर्ज़न की मॉडल सामग्री अपरिवर्तनीय हो, ताकि इसे अनिश्चित काल तक कैश किया जा सके। मॉडल कैशिंग के बारे में अधिक जानें।

असंपीड़ित होस्टिंग

जब पर्यावरण चर TFHUB_MODEL_LOAD_FORMAT या कमांड-लाइन फ़्लैग --tfhub_model_load_format को UNCOMPRESSED पर सेट किया जाता है, तो मॉडल को स्थानीय रूप से डाउनलोड और अनकंप्रेस करने के बजाय सीधे रिमोट स्टोरेज (GCS) से पढ़ा जाता है। जब यह व्यवहार सक्षम होता है, तो लाइब्रेरी मॉडल URL में ?tf-hub-format=uncompressed जोड़ देती है। यह अनुरोध GCS पर उस फ़ोल्डर का पथ लौटाता है जिसमें अनकंप्रेस मॉडल फ़ाइलें होती हैं। उदाहरण के लिए,
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
रिटर्न
303 प्रतिक्रिया के मुख्य भाग में gs://kaggle-tfhub-models-uncompressed/tfhub-modules/google/spice/2/uncompressed इसके बाद लाइब्रेरी उस GCS गंतव्य से मॉडल पढ़ती है।