Model protokol hosting

Dokumen ini menjelaskan konvensi URL yang digunakan saat menghosting semua jenis model di tfhub.dev - model TFJS, TF Lite, dan TensorFlow. Ini juga menjelaskan protokol berbasis HTTP(S) yang diterapkan 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 mengikuti <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>
  • Koleksi TF Hub mengikuti <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name>
  • Model TF Hub memiliki url berversi <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version> dan url tidak berversi <a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name> yang menghasilkan model versi terbaru.

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 jenis model:

  • Model TensorFlow (format SavedModel dan TF1 Hub): tambahkan ?tf-hub-format=compressed ke url model TensorFlow.
  • Model TFJS: tambahkan ?tfjs-format=compressed ke url model TFJS untuk mengunduh file terkompresi atau /model.json?tfjs-format=file untuk dibaca 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 (Model Tersimpan, format Hub TF1) https://tfhub.dev/google/spice/2 .tar.gz ?tf-hub-format=terkompresi https://tfhub.dev/google/spice/2?tf-hub-format=compressed
TF Ringan https://tfhub.dev/google/lite-model/spice/1 .tflite ?format-lite=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 harus diunduh. Hal ini sangat berguna jika tidak ada penyimpanan lokal yang tersedia, seperti menjalankan model TF.js di browser atau memuat SavedModel di Colab . Sadarilah bahwa model membaca yang dihosting dari jarak jauh tanpa diunduh secara lokal dapat meningkatkan latensi.

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

Bagian ini menjelaskan cara kami menghosting model di tfhub.dev untuk digunakan dengan pustaka tensorflow_hub. Jika Anda ingin menghosting repositori model Anda sendiri agar berfungsi dengan pustaka tensorflow_hub, layanan distribusi HTTP Anda harus menyediakan implementasi protokol ini.

Perhatikan bahwa bagian ini tidak membahas hosting model TF Lite dan TFJS karena tidak diunduh melalui pustaka tensorflow_hub . Untuk informasi lebih lanjut tentang hosting jenis model ini, silakan periksa di atas .

Hosting Terkompresi

Model disimpan di tfhub.dev sebagai file tar.gz terkompresi. Secara default, pustaka tensorflow_hub secara otomatis mengunduh model terkompresi. Mereka 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 arsip adalah akar direktori model dan harus berisi SavedModel, seperti dalam 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

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 akan mengunduh model, membuka kompresi model, dan menyimpannya dalam cache secara lokal. Pustaka tensorflow_hub mengharapkan URL model memiliki versi dan konten model dari versi tertentu tidak dapat diubah, sehingga dapat di-cache tanpa batas waktu. Pelajari lebih lanjut tentang model cache .

Hosting Tidak Terkompresi

Jika variabel lingkungan TFHUB_MODEL_LOAD_FORMAT atau flag baris perintah --tfhub_model_load_format disetel ke UNCOMPRESSED , model dibaca langsung dari penyimpanan jarak jauh (GCS) alih-alih diunduh dan dikompresi secara lokal. Jika perilaku ini diaktifkan, pustaka akan menambahkan ?tf-hub-format=uncompressed ke URL model. Permintaan tersebut mengembalikan jalur ke folder di GCS yang berisi file model yang tidak dikompresi. Sebagai contoh,
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
kembali
gs://tfhub-modules/google/spice/2/uncompressed di isi respons 303. Library kemudian membaca model dari tujuan GCS tersebut.