โปรโตคอลโฮสต์โมเดล

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

เอกสารนี้อธิบายข้อตกลง URL ที่ใช้เมื่อโฮสต์โมเดลทุกประเภทบน tfhub.dev - รุ่น TFJS, TF Lite และ TensorFlow นอกจากนี้ยังอธิบายโปรโตคอลที่ใช้ HTTP(S) ที่ใช้งานโดยไลบรารี tensorflow_hub เพื่อโหลดโมเดล TensorFlow จาก tfhub.dev และบริการที่เข้ากันได้ลงในโปรแกรม TensorFlow

คุณสมบัติหลักของมันคือการใช้ URL เดียวกันในโค้ดเพื่อโหลดโมเดลและในเบราว์เซอร์เพื่อดูเอกสารเกี่ยวกับโมเดล

ข้อตกลง URL ทั่วไป

tfhub.dev รองรับรูปแบบ URL ต่อไปนี้:

  • ผู้เผยแพร่ TF Hub ติดตาม https://tfhub.dev/<publisher>
  • คอลเลกชัน TF Hub ติดตาม https://tfhub.dev/<publisher>/collection/<collection_name>
  • รุ่น TF Hub มี URL เวอร์ชัน https://tfhub.dev/<publisher>/<model_name>/<version> และ url ที่ไม่มีเวอร์ชัน https://tfhub.dev/<publisher>/<model_name> ที่แก้ไขเป็นเวอร์ชันล่าสุดของโมเดล

โมเดล TF Hub สามารถดาวน์โหลดเป็นเนื้อหาที่บีบอัดได้โดยการผนวกพารามิเตอร์ URL เข้ากับ tfhub.dev URL ของโมเดล อย่างไรก็ตาม พารามิเตอร์ URL ที่จำเป็นเพื่อให้บรรลุนั้นขึ้นอยู่กับประเภทโมเดล:

  • โมเดล TensorFlow (ทั้ง SavedModel และ TF1 Hub รูปแบบ): ผนวก ?tf-hub-format=compressed กับ URL โมเดล TensorFlow
  • รุ่น TFJS: ต่อท้าย ?tfjs-format=compressed กับ URL รุ่น TFJS เพื่อดาวน์โหลดไฟล์บีบอัดหรือ /model.json?tfjs-format=file เพื่ออ่านจากที่เก็บข้อมูลระยะไกล
  • รุ่น TF lite: ต่อท้าย ?lite-format=tflite ต่อท้าย URL รุ่น TF Lite

ตัวอย่างเช่น:

พิมพ์ URL รุ่น ดาวน์โหลดประเภท พารามิเตอร์ URL ดาวน์โหลด URL
TensorFlow (SavedModel, รูปแบบฮับ TF1) https://tfhub.dev/google/spice/2 .tar.gz ?tf-hub-format=บีบอัด 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=บีบอัด https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed

นอกจากนี้ บางรุ่นยังโฮสต์ในรูปแบบที่สามารถอ่านได้โดยตรงจากที่จัดเก็บข้อมูลระยะไกลโดยไม่ต้องดาวน์โหลด สิ่งนี้มีประโยชน์อย่างยิ่งหากไม่มีที่เก็บข้อมูลในเครื่อง เช่น การเรียกใช้โมเดล TF.js ในเบราว์เซอร์ หรือโหลด SavedModel บน Colab โปรดทราบว่าโมเดลการอ่านที่โฮสต์จากระยะไกลโดยไม่ได้ดาวน์โหลดในเครื่องอาจเพิ่มเวลาในการตอบสนอง

พิมพ์ URL รุ่น ประเภทการตอบกลับ พารามิเตอร์ URL ขอ URL
TensorFlow (SavedModel, รูปแบบฮับ TF1) https://tfhub.dev/google/spice/2 สตริง (เส้นทางไปยังโฟลเดอร์ GCS ที่เก็บโมเดลที่ไม่บีบอัดไว้) ?tf-hub-format=uncompressed 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

โปรโตคอลไลบรารี tensorflow_hub

ส่วนนี้อธิบายวิธีที่เราโฮสต์โมเดลบน tfhub.dev สำหรับใช้กับไลบรารี tensorflow_hub หากคุณต้องการโฮสต์ที่เก็บโมเดลของคุณเองเพื่อทำงานกับไลบรารี tensorflow_hub บริการแจกจ่าย HTTP ของคุณควรจัดเตรียมการใช้งานโปรโตคอลนี้

โปรดทราบว่าส่วนนี้ไม่ได้กล่าวถึงการโฮสต์รุ่น TF Lite และ TFJS เนื่องจากไม่ได้ดาวน์โหลดผ่านไลบรารี tensorflow_hub สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการโฮสต์ประเภทโมเดลเหล่านี้ โปรดตรวจสอบ ด้านบน

บีบอัดโฮสติ้ง

โมเดลจะถูกเก็บไว้ใน tfhub.dev เป็นไฟล์ tar.gz ที่บีบอัด ตามค่าดีฟอลต์ ไลบรารี tensorflow_hub จะดาวน์โหลดโมเดลที่บีบอัดโดยอัตโนมัติ นอกจากนี้ยังสามารถดาวน์โหลดได้ด้วยตนเองโดยต่อท้าย ?tf-hub-format=compressed กับ url รุ่น เช่น:

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

รูทของไฟล์เก็บถาวรคือรูทของไดเร็กทอรี model และควรมี 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

Tarballs สำหรับใช้กับรูปแบบ TF1 Hub ดั้งเดิม จะมีไฟล์ . ./tfhub_module.pb ด้วย

เมื่อหนึ่งในโมเดลไลบรารี tensorflow_hub โหลด API ถูกเรียกใช้ ( hub.KerasLayer , hub.load ฯลฯ ) ไลบรารีจะดาวน์โหลดโมเดล คลายการบีบอัดโมเดลและแคชในเครื่อง ไลบรารี tensorflow_hub คาดหวังให้ URL ของโมเดลมีการกำหนดเวอร์ชัน และเนื้อหาโมเดลของเวอร์ชันที่กำหนดจะไม่เปลี่ยนรูปแบบ เพื่อให้สามารถแคชได้แบบไม่มีกำหนด เรียนรู้เพิ่มเติมเกี่ยวกับ โมเดลการแคช

โฮสติ้งที่ไม่บีบอัด

เมื่อตัวแปรสภาพแวดล้อม TFHUB_MODEL_LOAD_FORMAT หรือแฟล็กบรรทัดคำสั่ง --tfhub_model_load_format ถูกตั้งค่าเป็น UNCOMPRESSED โมเดลจะถูกอ่านโดยตรงจากที่เก็บข้อมูลระยะไกล (GCS) แทนที่จะดาวน์โหลดและคลายการบีบอัดในเครื่อง เมื่อเปิดใช้งานลักษณะการทำงานนี้ ไลบรารีจะผนวก ?tf-hub-format=uncompressed เข้ากับ URL รุ่น คำขอนั้นส่งคืนเส้นทางไปยังโฟลเดอร์ใน GCS ที่มีไฟล์โมเดลที่ไม่บีบอัด ตัวอย่างเช่น,
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
ผลตอบแทน
gs://tfhub-modules/google/spice/2/uncompressed ในเนื้อหาของการตอบสนอง 303 จากนั้นไลบรารีจะอ่านโมเดลจากปลายทาง GCS นั้น