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 versihttps://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=compressedke URL model TensorFlow. - Model TFJS: tambahkan
?tfjs-format=compressedke URL model TFJS untuk mengunduh versi terkompresi atau/model.json?tfjs-format=fileuntuk membacanya dari penyimpanan jarak jauh. - Model TF Lite: tambahkan
?lite-format=tfliteke 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.