Protocolo de alojamiento del
modelo
En este documento se describen las convenciones de URL usadas al alojar todos los tipos de modelos en tfhub.dev: modelos TFJS, TF Lite y TensorFlow. También se describe el protocolo basado en HTTP(S) que implementa la biblioteca tensorflow_hub
para cargar modelos de TensorFlow desde tfhub.dev y servicios compatibles en programas de TensorFlow.
Su característica clave es usar la misma URL en el código para cargar un modelo y en un navegador para ver la documentación del modelo.
Convenciones generales de URL
tfhub.dev admite los siguientes formatos de URL:
Los editores de TF Hub siguen
https://tfhub.dev/<publisher>
Las colecciones de TF Hub siguen
https://tfhub.dev/<publisher>/collection/<collection_name>
Los modelos TF Hub tienen una URL versionada
https://tfhub.dev/<publisher>/<model_name>/<version>
y una URL no versionadahttps://tfhub.dev/<publisher>/<model_name>
que se resuelve en la última versión del modelo.
Los modelos de TF Hub se pueden descargar como activos comprimidos agregando parámetros de URL a la URL del modelo tfhub.dev. Sin embargo, los parámetros de URL necesarios para lograrlo dependen del tipo de modelo:
Modelos de TensorFlow (formatos SavedModel y TF1 Hub): agregue
?tf-hub-format=compressed
a la URL del modelo de TensorFlow.Modelos TFJS: agregue
?tfjs-format=compressed
a la URL del modelo TFJS para descargar el archivo comprimido o/model.json?tfjs-format=file
para leerlo desde el almacenamiento remoto.Modelos TF Lite: agregue
?lite-format=tflite
a la URL del modelo TF Lite.
Por ejemplo:
Tipo | URL del modelo | Tipo de descarga | Parámetro de URL | Descargar URL |
TensorFlow (SavedModel, formato TF1 Hub) | https://tfhub.dev/google/spice/2 | .tar.gz | ?tf-hub-format=compressed | 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=compressed | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed |
Además, algunos modelos también están alojados en un formato que se puede leer directamente desde el almacenamiento remoto sin necesidad de descargarlos. Esto es especialmente útil si no hay almacenamiento local disponible, como ejecutar un modelo TF.js en el navegador o cargar un SavedModel en Colab. Tenga en cuenta que leer modelos alojados de forma remota sin descargarlos localmente puede aumentar la latencia.
Tipo | URL del modelo | Tipo de respuesta | Parámetro de URL | URL de la solicitud |
TensorFlow (SavedModel, formato TF1 Hub) | https://tfhub.dev/google/spice/2 | Cadena de texto (Ruta a la carpeta de GCS donde se almacena el modelo sin comprimir) | ?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 |
Protocolo de la biblioteca tensorflow_hub
En esta sección se describe cómo alojamos modelos en tfhub.dev para usarlos con la biblioteca tensorflow_hub. Si quiere alojar su propio repositorio de modelos para trabajar con la biblioteca tensorflow_hub, su servicio de distribución HTTP debe proporcionar una implementación de este protocolo.
Tenga en cuenta que esta sección no aborda el alojamiento de los modelos TF Lite y TFJS, ya que no se descargan a través de la biblioteca tensorflow_hub
. Para obtener más información sobre cómo alojar estos tipos de modelos, consulte lo que se menciona anteriormente.
Alojamiento comprimido
Los modelos se almacenan en tfhub.dev como archivos comprimidos tar.gz. De forma predeterminada, la biblioteca tensorflow_hub descarga el modelo comprimido automáticamente. También se pueden descargar manualmente al agregar ?tf-hub-format=compressed
a la URL del modelo, por ejemplo:
La raíz del archivo es la raíz del directorio del modelo y debe contener un SavedModel, como en este ejemplo:
Los archivos tarball para usar con el formato TF1 Hub heredado también tendrán un archivo ./tfhub_module.pb
.
Cuando se invoca una de las API de carga de modelos de la biblioteca tensorflow_hub
(hub.KerasLayer, hub.load, etc.), la biblioteca descarga el modelo, lo descomprime y lo almacena en caché localmente. La biblioteca tensorflow_hub
requiere que las URL del modelo tengan versiones y que el contenido del modelo de una versión determinada sea inmutable, de modo que pueda almacenarse en caché indefinidamente. Obtenga más información sobre almacenar modelos en caché.
Alojamiento sin comprimir
Cuando la variable de entorno TFHUB_MODEL_LOAD_FORMAT
o el indicador de línea de comandos --tfhub_model_load_format
se establece en UNCOMPRESSED
, el modelo se lee directamente desde el almacenamiento remoto (GCS) en lugar de descargarlo y descomprimirlo localmente. Cuando este comportamiento está habilitado, la biblioteca agrega ?tf-hub-format=uncompressed
a la URL del modelo. Esa solicitud devuelve la ruta a la carpeta en GCS que contiene los archivos del modelo sin comprimir. Como ejemplo,
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
devoluciones
gs://tfhub-modules/google/spice/2/uncompressed
en el cuerpo de la respuesta 303. Luego, la biblioteca lee el modelo desde ese destino GCS.