Model barındırma protokolü

Bu belge, tfhub.dev - TFJS, TF Lite ve TensorFlow modellerinde tüm model türlerini barındırırken kullanılan URL kurallarını açıklamaktadır. Ayrıca, TensorFlow modellerini tfhub.dev'den ve uyumlu hizmetleri TensorFlow programlarına yüklemek için tensorflow_hub kitaplığı tarafından uygulanan HTTP(S) tabanlı protokolü de açıklar.

Temel özelliği, bir modeli yüklemek için kodda ve model belgelerini görüntülemek için bir tarayıcıda aynı URL'yi kullanmaktır.

Genel URL kuralları

tfhub.dev aşağıdaki URL formatlarını destekler:

  • TF Hub yayıncıları <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher> takip ediyor
  • TF Hub koleksiyonları <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name> i takip ediyor
  • TF Hub modellerinde sürümlendirilmiş URL <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version> ve sürümlenmemiş URL <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name> bulunur <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name> bu, modelin en son sürümüne çözümlenir.

TF Hub modelleri, URL parametrelerinin tfhub.dev model URL'sine eklenmesiyle sıkıştırılmış varlıklar olarak indirilebilir. Ancak bunu başarmak için gereken URL parametreleri model türüne bağlıdır:

  • TensorFlow modelleri (hem SavedModel hem de TF1 Hub formatları): TensorFlow modelinin URL'sine ?tf-hub-format=compressed ekleyin.
  • TFJS modelleri: sıkıştırılmış dosyayı indirmek için TFJS model URL'sine ?tfjs-format=compressed compressed ifadesini veya uzak depolama biriminden okumak için /model.json?tfjs-format=file dosyasını ekleyin.
  • TF lite modelleri: TF Lite model URL'sine ?lite-format=tflite ekleyin.

Örneğin:

Tip Model URL'si İndirme türü URL parametresi İndirme URL'si
TensorFlow (SavedModel, TF1 Hub formatı) https://tfhub.dev/google/spice/2 .tar.gz ?tf-hub-format=sıkıştırılmış 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=sıkıştırılmış https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed

Ek olarak, bazı modeller indirilmeden doğrudan uzak depolama biriminden okunabilecek bir formatta da barındırılmaktadır. Bu, özellikle tarayıcıda bir TF.js modeli çalıştırmak veya Colab'a SavedModel yüklemek gibi yerel depolama alanı yoksa kullanışlıdır. Yerel olarak indirilmeden uzaktan barındırılan modelleri okumanın gecikmeyi artırabileceğini unutmayın.

Tip Model URL'si Yanıt türü URL parametresi URL'yi talep et
TensorFlow (SavedModel, TF1 Hub formatı) https://tfhub.dev/google/spice/2 String (Sıkıştırılmamış modelin saklandığı GCS klasörünün yolu) ?tf-hub-format=sıkıştırılmamış 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=dosya https://tfhub.dev/google/tfjs-model/spice/2/default/1/model.json?tfjs-format=file

tensorflow_hub kütüphane protokolü

Bu bölümde, tensorflow_hub kitaplığıyla birlikte kullanılmak üzere modelleri tfhub.dev'de nasıl barındırdığımız açıklanmaktadır. Tensorflow_hub kitaplığıyla çalışmak üzere kendi model deponuzu barındırmak istiyorsanız, HTTP(ler) dağıtım hizmetinizin bu protokolün bir uygulamasını sağlaması gerekir.

tensorflow_hub kitaplığı aracılığıyla indirilmediklerinden bu bölümün TF Lite ve TFJS modellerini barındırma konusunu ele almadığını unutmayın. Bu model türlerini barındırma hakkında daha fazla bilgi için lütfen yukarıyı kontrol edin.

Sıkıştırılmış Barındırma

Modeller tfhub.dev'de sıkıştırılmış tar.gz dosyaları olarak saklanır. Varsayılan olarak tensorflow_hub kitaplığı sıkıştırılmış modeli otomatik olarak indirir. Ayrıca model URL'sine ?tf-hub-format=compressed eklenerek manuel olarak da indirilebilirler, örneğin:

wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed

Arşivin kökü, model dizininin köküdür ve bu örnekte olduğu gibi bir SavedModel içermelidir:

# 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

Eski TF1 Hub formatıyla kullanılacak tarball'lar ayrıca bir ./tfhub_module.pb dosyası içerecektir.

tensorflow_hub kitaplık modeli yükleme API'lerinden biri çağrıldığında ( hub.KerasLayer , hub.load vb.), kitaplık modeli indirir, sıkıştırılmış modeli açar ve onu yerel olarak önbelleğe alır. tensorflow_hub kitaplığı, model URL'lerinin sürümlendirilmesini ve belirli bir sürümün model içeriğinin süresiz olarak önbelleğe alınabilmesi için değiştirilemez olmasını bekler. Modelleri önbelleğe alma hakkında daha fazla bilgi edinin.

Sıkıştırılmamış Barındırma

TFHUB_MODEL_LOAD_FORMAT ortam değişkeni veya komut satırı işareti --tfhub_model_load_format UNCOMPRESSED olarak ayarlandığında, model yerel olarak indirilip sıkıştırılması yerine doğrudan uzak depolama biriminden (GCS) okunur. Bu davranış etkinleştirildiğinde kitaplık, model URL'sine ?tf-hub-format=uncompressed ifadesini ekler. Bu istek, sıkıştırılmamış model dosyalarını içeren GCS'deki klasörün yolunu döndürür. Örnek olarak,
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
geri döner
gs://tfhub-modules/google/spice/2/uncompressed 303 yanıtının gövdesinde. Kütüphane daha sonra modeli bu GCS hedefinden okur.