Model protokol hosting

Dokumen ini menjelaskan konvensi URL yang digunakan saat menghosting semua jenis model di tfhub.dev - model TFJS, TF Lite, dan TensorFlow. Dokumen ini juga menjelaskan protokol berbasis HTTP(S) yang diimplementasikan oleh pustaka tensorflow_hub untuk memuat model TensorFlow dari tfhub.dev dan layanan yang kompatibel ke dalam program TensorFlow.

Fitur utamanya adalah menggunakan URL yang sama dalam kode untuk memuat model dan di browser untuk melihat dokumentasi model.

Konvensi URL umum

tfhub.dev mendukung format URL berikut:

  • Penerbit TF Hub dapat mengikuti https://tfhub.dev/<publisher>
  • Koleksi TF Hub dapat diakses melalui https://tfhub.dev/<publisher>/collection/<collection_name>
  • Model TF Hub memiliki URL versi https://tfhub.dev/<publisher>/<model_name>/<version> dan URL tanpa versi https://tfhub.dev/<publisher>/<model_name> yang mengarah ke versi terbaru model tersebut.

Model TF Hub dapat diunduh sebagai aset terkompresi dengan menambahkan parameter URL ke URL model tfhub.dev . Namun, parameter URL yang diperlukan untuk mencapai hal tersebut bergantung pada tipe model:

  • Model TensorFlow (baik format SavedModel maupun TF1 Hub): tambahkan ?tf-hub-format=compressed ke URL model TensorFlow.
  • Model TFJS: tambahkan ?tfjs-format=compressed ke URL model TFJS untuk mengunduh versi terkompresi atau /model.json?tfjs-format=file untuk membacanya dari penyimpanan jarak jauh.
  • Model TF Lite: tambahkan ?lite-format=tflite ke URL model TF Lite.

Misalnya:

Jenis URL Model Jenis unduhan Parameter URL URL Unduhan
TensorFlow (SavedModel, format TF1 Hub) https://tfhub.dev/google/spice/2 .tar.gz ?tf-hub-format=terkompresi 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=terkompresi https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed

Selain itu, beberapa model juga dihosting dalam format yang dapat dibaca langsung dari penyimpanan jarak jauh tanpa perlu diunduh. Ini sangat berguna jika tidak ada penyimpanan lokal yang tersedia, seperti menjalankan model TF.js di browser atau memuat SavedModel di Colab . Perlu diingat bahwa membaca model yang dihosting dari jarak jauh tanpa diunduh secara lokal dapat meningkatkan latensi.

Jenis URL Model Jenis respons Parameter URL URL Permintaan
TensorFlow (SavedModel, format TF1 Hub) https://tfhub.dev/google/spice/2 String (Jalur ke folder GCS tempat model yang belum dikompresi disimpan) ?tf-hub-format=tidak terkompresi 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

protokol pustaka tensorflow_hub

Bagian ini menjelaskan bagaimana kami menghosting model di tfhub.dev untuk digunakan dengan pustaka tensorflow_hub. Jika Anda ingin menghosting repositori model Anda sendiri untuk bekerja dengan pustaka tensorflow_hub, layanan distribusi HTTP(s) Anda harus menyediakan implementasi protokol ini.

Perlu dicatat bahwa bagian ini tidak membahas hosting model TF Lite dan TFJS karena model-model tersebut tidak diunduh melalui pustaka tensorflow_hub . Untuk informasi lebih lanjut tentang hosting tipe model ini, silakan lihat di atas .

Hosting Terkompresi

Model disimpan di tfhub.dev sebagai file tar.gz terkompresi. Secara default, pustaka tensorflow_hub secara otomatis mengunduh model terkompresi. Model juga dapat diunduh secara manual dengan menambahkan ?tf-hub-format=compressed ke URL model, misalnya:

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

Akar dari arsip tersebut adalah akar dari direktori model dan harus berisi SavedModel, seperti pada contoh ini:

# 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

File tarball untuk digunakan dengan format TF1 Hub lama juga akan berisi file ./tfhub_module.pb .

Saat salah satu API pemuatan model pustaka tensorflow_hub dipanggil ( hub.KerasLayer , hub.load , dll.), pustaka tersebut mengunduh model, mengekstrak model, dan menyimpannya secara lokal. Pustaka tensorflow_hub mengharapkan URL model memiliki versi dan konten model dari versi tertentu bersifat tetap (immutable), sehingga dapat disimpan dalam cache tanpa batas waktu. Pelajari lebih lanjut tentang caching model .

Hosting Tanpa Kompresi

Ketika variabel lingkungan TFHUB_MODEL_LOAD_FORMAT atau flag baris perintah --tfhub_model_load_format diatur ke UNCOMPRESSED , model dibaca langsung dari penyimpanan jarak jauh (GCS) alih-alih diunduh dan didekompresi secara lokal. Ketika perilaku ini diaktifkan, pustaka menambahkan ?tf-hub-format=uncompressed ke URL model. Permintaan tersebut mengembalikan jalur ke folder di GCS yang berisi file model yang tidak terkompresi. Sebagai contoh,
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
pengembalian
gs://kaggle-tfhub-models-uncompressed/tfhub-modules/google/spice/2/uncompressed di dalam isi respons 303. Pustaka kemudian membaca model dari tujuan GCS tersebut.