0 / 0
Volver a la versión inglesa de la documentación
Importación de modelos en un espacio de despliegue
Última actualización: 28 nov 2024
Importación de modelos en un espacio de despliegue

Importe modelos de aprendizaje automático entrenados fuera de IBM watsonx.ai Runtime para poder desplegar y probar los modelos. Revise las infraestructuras de modelo que están disponibles para importar modelos.

Aquí importar un modelo entrenado significa:

  1. Almacena el modelo entrenado en tu repositorio watsonx.ai Runtime
  2. Opcional: Despliega el modelo almacenado en tu servicio watsonx.ai Runtime

y repositorio significa un grupo de Cloud Object Storage . Para obtener más información, consulte Creación de espacios de despliegue.

Puede importar un modelo de estas maneras:

Para obtener más información, consulte:

Para ver un ejemplo de cómo añadir un modelo mediante programación utilizando el cliente Python, consulte este cuaderno:

Para ver un ejemplo de cómo añadir un modelo mediante programación utilizando la API REST, consulte este cuaderno:

Formas disponibles de importar modelos, por tipo de entorno

Esta tabla enumera las formas disponibles para importar modelos a watsonx.ai Runtime, por tipo de framework.

Opciones de importación para modelos, por tipo de entorno
Opción import Spark MLlib Scikit-learn XGBoost TensorFlow PyTorch
Importación de un objeto de modelo
Importación de un modelo utilizando una vía de acceso a un archivo
Importación de un modelo utilizando una vía de acceso a un directorio

Adición de un modelo utilizando la interfaz de usuario

Nota:

Si desea importar un modelo en el formato PMML, puede importar directamente el archivo .xml del modelo.

Para importar un modelo utilizando la interfaz de usuario:

  1. En la pestaña Activos de su espacio en watsonx.ai Runtime, haga clic en Importar activos.
  2. Vaya a Archivo local y seleccione Modelo.
  3. Seleccione el archivo de modelo que desea importar y pulse Importar.

El mecanismo de importación selecciona automáticamente un tipo de modelo coincidente y una especificación de software basándose en la serie de versión del archivo .xml .

Importación de un objeto de modelo

Nota:

Este método de importación está soportado por un número limitado de infraestructuras ML. Para obtener más información, consulte maneras disponibles de importar modelos, por tipo de entorno.

Para importar un objeto de modelo:

  1. Si el modelo se encuentra en una ubicación remota, siga Descarga de un modelo almacenado en una ubicación remota.
  2. Almacene el objeto modelo en su repositorio watsonx.ai Runtime. Para obtener más información, consulte Almacenamiento del modelo en el repositorio watsonx.ai Runtime.

Importación de un modelo utilizando una vía de acceso a un archivo

Nota:

Este método de importación está soportado por un número limitado de infraestructuras ML. Para obtener más información, consulte maneras disponibles de importar modelos, por tipo de entorno.

Para importar un modelo utilizando una vía de acceso a un archivo:

  1. Si el modelo se encuentra en una ubicación remota, siga Descarga de un modelo almacenado en una ubicación remota para descargarlo.

  2. Si el modelo está ubicado localmente, colóquelo en un directorio específico:

      !cp <saved model> <target directory>
      !cd <target directory>
    
  3. Para los modelos scikit-learn, XGBoost, Tensorflow y PyTorch, si el archivo descargado no es un archivo .tar.gz, realice un archivado:

      !tar -zcvf <saved model>.tar.gz <saved model>
    

    El archivo de modelo debe estar en la carpeta de nivel superior del directorio, por ejemplo:

    assets/
    <saved model>
    variables/
    variables/variables.data-00000-of-00001
    variables/variables.index
    
  4. Utilice la ruta del archivo guardado para almacenar el archivo de modelo en su repositorio watsonx.ai Runtime. Para obtener más información, consulte Almacenamiento del modelo en el repositorio watsonx.ai Runtime.

Importación de un modelo utilizando una vía de acceso a un directorio

Nota:

Este método de importación está soportado por un número limitado de infraestructuras ML. Para obtener más información, consulte maneras disponibles de importar modelos, por tipo de entorno.

Para importar un modelo utilizando una vía de acceso a un directorio:

  1. Si el modelo se encuentra en una ubicación remota, consulte Descarga de un modelo almacenado en una ubicación remota.

  2. Si el modelo está ubicado localmente, colóquelo en un directorio específico:

    !cp <saved model> <target directory>
    !cd <target directory>
    

    Para los modelos scikit-learn, XGBoost, Tensorflowy PyTorch , el archivo de modelo debe estar en la carpeta de nivel superior del directorio, por ejemplo:

    assets/
    <saved model>
    variables/
    variables/variables.data-00000-of-00001
    variables/variables.index
    
  3. Utilice la ruta del directorio para almacenar el archivo de modelo en su repositorio watsonx.ai Runtime. Para obtener más información, consulte Almacenamiento del modelo en el repositorio watsonx.ai Runtime.

Descarga de un modelo almacenado en una ubicación remota

Siga este código de ejemplo para descargar el modelo desde una ubicación remota:

import os
from wget import download

target_dir = '<target directory name>'
if not os.path.isdir(target_dir):
    os.mkdir(target_dir)
filename = os.path.join(target_dir, '<model name>')
if not os.path.isfile(filename):
    filename = download('<url to model>', out = target_dir)

Aspectos a tener en cuenta al importar modelos

Para obtener más información sobre la importación de un tipo de modelo específico, consulte:

Para obtener más información sobre los frameworks que puede utilizar con watsonx.ai Runtime, consulte Frameworks compatibles.

Modelos guardados en formato PMML

  • El único tipo de despliegue disponible para los modelos que se importan de PMML es el despliegue en línea.
  • El archivo PMML debe tener la extensión de archivo .xml .
  • No se pueden utilizar modelos PMML en un flujo de secuencias de SPSS.
  • El archivo PMML no debe contener un prólogo. En función de la biblioteca que esté utilizando al guardar el modelo, se puede añadir un prólogo al principio del archivo de forma predeterminada. Por ejemplo, si el archivo contiene una serie de prólogo como spark-mllib-lr-model-pmml.xml, elimine la serie antes de importar el archivo PMML en el espacio de despliegue.

En función de la biblioteca que esté utilizando al guardar el modelo, se puede añadir un prólogo al principio del archivo de forma predeterminada, como en este ejemplo:

::::::::::::::
spark-mllib-lr-model-pmml.xml
::::::::::::::

Debe eliminar ese prólogo antes de poder importar el archivo PMML a watsonx.ai Runtime.

Modelos Spark MLlib

  • Sólo están disponibles los modelos de clasificación y regresión.
  • Los transformadores personalizados, las funciones definidas por el usuario y las clases no están disponibles.

Scikit-modelos de aprendizaje

  • .pkl y .pickle son los formatos de importación disponibles.
  • Para serializar o decapitar el modelo, utilice el paquete joblib .
  • Sólo están disponibles los modelos de clasificación y regresión.
  • El tipo de entrada de nombre de datos de Pandas para la API de predict() no está disponible.
  • El único tipo de despliegue disponible para los modelos scikit-learn es el despliegue en línea.

Modelos XGBoost

  • .pkl y .pickle son los formatos de importación disponibles.
  • Para serializar o decapitar el modelo, utilice el paquete joblib .
  • Sólo están disponibles los modelos de clasificación y regresión.
  • El tipo de entrada de nombre de datos de Pandas para la API de predict() no está disponible.
  • El único tipo de despliegue disponible para los modelos XGBoost es el despliegue en línea.

Modelos TensorFlow

  • .pb, .h5y .hdf5 son los formatos de importación disponibles.
  • Para guardar o serializar un modelo TensorFlow , utilice el método tf.saved_model.save() .
  • tf.estimator no está disponible.
  • Los únicos tipos de despliegue disponibles para los modelos TensorFlow son: despliegue en línea y despliegue por lotes.

Modelos PyTorch

  • El único tipo de despliegue disponible para los modelos PyTorch es el despliegue en línea.

  • Para que un modelo Pytorch pueda ser importado a watsonx.ai Runtime, debe ser previamente exportado al formato ' .onnx '. Consulte este código.

    torch.onnx.export(<model object>, <prediction/training input data>, "<serialized model>.onnx", verbose=True, input_names=<input tensor names>, output_names=<output tensor names>)
    

Almacenamiento de un modelo en su repositorio watsonx.ai Runtime

Utilice este código para almacenar su modelo en su repositorio watsonx.ai Runtime:

from ibm_watson_machine_learning import APIClient

client = APIClient(<your credentials>)
sw_spec_uid = client.software_specifications.get_uid_by_name("<software specification name>")

meta_props = {
    client.repository.ModelMetaNames.NAME: "<your model name>",
    client.repository.ModelMetaNames.SOFTWARE_SPEC_UID: sw_spec_uid,
    client.repository.ModelMetaNames.TYPE: "<model type>"}

client.repository.store_model(model=<your model>, meta_props=meta_props)

Notas:

  • En función de la infraestructura de modelo utilizada, <your model> puede ser el objeto de modelo real, una vía de acceso completa a un archivo de modelo guardado o una vía de acceso a un directorio donde se encuentra el archivo de modelo. Para obtener más información, consulte maneras disponibles de importar modelos, por tipo de entorno.

  • Para ver una lista de las especificaciones de software disponibles para utilizar como <software specification name>, utilice el método client.software_specifications.list().

  • Para ver una lista de tipos de modelo disponibles para utilizar como model_type, consulte Especificaciones de software y especificaciones de hardware para despliegues.

  • Cuando exporte un modelo Pytorch al formato ' .onnx ', especifique la bandera ' keep_initializers_as_inputs=True y establezca ' opset_version ' en 9 (los despliegues en tiempo de ejecuciónwatsonx.ai utilizan el tiempo de ejecución ONNX ' caffe2 ' que no admite versiones de opset superiores a 9).

    torch.onnx.export(net, x, 'lin_reg1.onnx', verbose=True, keep_initializers_as_inputs=True, opset_version=9)
    

Tema padre: Activos en espacios de despliegue

Búsqueda y respuesta de IA generativa
Estas respuestas las genera un modelo de lenguaje grande en watsonx.ai que se basa en el contenido de la documentación del producto. Más información