Creación de una implementación para un modelo base personalizado en GPU dedicadas

Después de instalar y registrar un modelo de base personalizado para utilizarlo con watsonx.ai, puede crear un despliegue para el modelo.

Después de cargar y registrar un modelo de fundación personalizado con watsonx.ai, puede desplegar el modelo para que esté disponible para la inferencia. Utiliza uno de estos métodos:

Antes de empezar

Antes de crear un despliegue, planifique la especificación de hardware que necesitará para el despliegue. En la mayoría de los casos, puede seleccionar una especificación de hardware predefinida. Si va a desplegar un modelo cuantizado o tiene otras especificaciones que requieren una especificación de hardware personalizada, cree la especificación de hardware mediante Python o watsonx.ai antes de iniciar el proceso de despliegue. Si desea desplegar un modelo que utiliza una especificación de hardware personalizada, debe desplegarlo mediante programación. Para obtener más información, consulte Creación de un despliegue mediante programación.

Para obtener más información, consulte:

Nota:

Si utiliza una especificación de hardware con recursos insuficientes para el despliegue, el despliegue fallará con el siguiente mensaje:

Failed to deploy the custom foundation model due to an internal error. The runtime failed to start due to 'insufficient resources'. Retry the operation. Contact IBM support if the problem persists.

Además, comprueba si las especificaciones del software disponible se ajustan a la arquitectura de tu modelo. Para obtener más información, consulta los requisitos para implementar modelos básicos personalizados.

Creación de un despliegue desde un espacio

Para crear un despliegue del modelo de base personalizado desde un espacio, empiece añadiendo el activo de modelo al espacio. A continuación, crea la implementación.

Importación del activo de modelo en un espacio

Para importar un activo de modelo de base personalizado en el espacio de despliegue:

  1. En el espacio de despliegue, seleccione el separador Activos y pulse Importar activos.

  2. En el catálogo Importar activos , pulse Modelo de base personalizado y elija el modelo a importar.

    Importar activo de modelo de fundación personalizado

  3. Introduce los datos de tu modelo y haz clic en «Añadir ».

    Nota: Si el activo de modelo de base personalizado se ha guardado en un proyecto, puede promocionar el modelo del proyecto al espacio en lugar de importar el activo de modelo.

Despliegue de modelos de base personalizados desde un espacio de despliegue

Siga estos pasos para crear un despliegue en línea para un modelo de base personalizado desde un espacio de despliegue:

  1. En la página de detalles de despliegue, pulse Nuevo despliegue.

  2. Especifique un nombre para el despliegue y, opcionalmente, especifique un nombre de servicio, una descripción y etiquetas.

    Nota:
    • Utiliza el campo «Nombre del servicio» para especificar un nombre para tu implementación en lugar del ID de implementación.
    • El nombre del servidor debe ser único dentro del espacio de nombres.
    • El nombre del servidor solo debe contener estos caracteres: [ a-z,0-9,_] y debe tener una longitud máxima de 36 caracteres.
    • En los flujos de trabajo en los que se utilice periódicamente tu modelo base personalizado, te recomendamos que le asignes el mismo nombre de servicio cada vez que lo implementes. De esta forma, después de eliminar y volver a implementar el modelo, podrás seguir utilizando el mismo punto final en tu código.

  3. Seleccione una especificación de hardware y una especificación de software.

    Restricción:

    No puede crear una especificación de hardware personalizada desde la interfaz de usuario en un espacio de despliegue. Para obtener más información sobre cómo crear y seleccionar una especificación de hardware, consulte Gestión de especificaciones de hardware para despliegues. Después de crear la especificación de hardware personalizada, puede seleccionarla mediante programación o desde la interfaz de usuario para el modelo de base personalizado.

  4. Opcional: si desea anular algunos de los parámetros del modelo base, introduzca nuevos valores para dichos parámetros. Para obtener información sobre los parámetros de modelo disponibles, consulte «Propiedades y parámetros de los modelos de cimentación personalizados ».

  5. Pulse Crear.

Nota:
  • Si utilizas la watsonx-cfm-caikit-1.1 especificación del software para implementar tu modelo, no se utiliza el valor del max_concurrent_requests parámetro.
  • Los modelos de series temporales no admiten parámetros. No introduzcas ningún parámetro al implementar un modelo de series temporales personalizado. Si se especifican parámetros al implementar un modelo de series temporales personalizado, estos no tendrán ningún efecto.
  • Los modelos que utilizan imágenes de tiempo de ejecución de inferencia personalizadas ignoran los parámetros que se configuran en la fase de creación de la implementación. Un ingeniero de MLOps debe establecer los parámetros al crear una definición de tiempo de ejecución o durante el registro del modelo. Además, la lista de parámetros aceptados puede diferir de la lista de parámetros que utilizan los modelos que emplean entornos de ejecución de inferencia estándar.
  • En las tareas del modelo :
    • Si no seleccionas ninguna tarea:
    • Si el modelo no incluye una plantilla de chat, la tarea predeterminada es la generación de texto.
    • Si el modelo incluye una plantilla de chat, las tareas predeterminadas son: generación de texto y chat de texto.
  • Las tareas que selecciones al implementar el modelo sustituyen a las tareas que hayas configurado en la fase de creación del modelo.

Creación de un despliegue mediante programación

Para crear un despliegue mediante programación, primero debe obtener el ID de activo de modelo y, a continuación, crear el despliegue.

Listado de los modelos de base personalizados desplegables

Ejecute este código para ver la lista de modelos de base personalizados disponibles utilizando la API dewatsonx:

curl --location 'https://<cluster_url>/ml/v4/custom_foundation_models' \
--header 'Authorization: Bearer $TOKEN'

Salida de ejemplo:

{
    "first": {
        "href": "/ml/v4/custom_foundation_models?limit=100"
    },
    "limit": 100,
    "resources": [
        {
            "model_id": "example_model_13b",
            "parameters": [
               {
                    "default": 16,
                    "display_name": "Max Number of Sequences",
                    "max": 256,
                    "min": 1,
                    "name": "max_num_seqs",
                    "type": "number"
                },
                {
                    "default": 2048,
                    "display_name": "Max Model Length",
                    "max": 8192,
                    "min": 256,
                    "name": "max_model_length",
                    "type": "number"
                }
            ]
        },
        {
            "model_id": "example_model_70b",
            "parameters": [
                {
                    "default": 16,
                    "display_name": "Max Number of Sequences",
                    "max": 256,
                    "min": 1,
                    "name": "max_num_seqs",
                    "type": "number"
                },
                {
                    "default": 2048,
                    "display_name": "Max Model Length",
                    "max": 8192,
                    "min": 256,
                    "name": "max_model_length",
                    "type": "number"
                }
            ],
            "tags": [
                "example_model",
                "70b"
            ]
        }
    ],
    "total_count": 2
}
Nota:

Si accede a la lista de modelos mediante programación, puede acceder a todos los parámetros que puede establecer para el modelo seleccionado. En el caso de los modelos que se implementan a través de la interfaz de usuario, los parámetros están disponibles durante la fase de creación de la implementación en línea. Consulte la descripción de los parámetros para los modelos de cimentación personalizados.

Creación del activo de modelo de base

Puede crear un activo de modelo en dos contextos: contexto de proyecto y contexto de espacio.

  • Si crea un activo de modelo en el contexto del proyecto, puede importar el modelo en el proyecto y, a continuación, evaluar el modelo en un cuaderno de Jupyter y, finalmente, promocionarlo al espacio.
  • Si crea un activo de modelo en el contexto de espacio, puede importar el modelo y, a continuación, desplegarlo en línea. Se puede acceder al modelo implementado desde Prompt Lab.

Para crear un activo de modelo para el modelo de base personalizado en el contexto de espacio, ejecute este código:

Nota:

El functions campo es opcional. Define todas las modalidades con las que tu modelo puede interactuar.

curl -X POST "https://<cluster_url>/ml/v4/models?version=2024-01-29" \
-H "Authorization: Bearer $TOKEN" \
-H "content-type: application/json" \
--data '{
            "name": "<a meaningful name>",
            "space_id": "<your space id>",
            "foundation_model": {
            "model_id": "<your model id>",
            "functions": ["text_generation", "text_chat", "image_chat", "audio_chat", "video_chat"],
            },
            "type": "custom foundation model 1.0",
            "software_spec": {
            "name": "<software specification>"
            }
        }'

Para crear un activo de modelo para el modelo de base personalizado en el contexto de proyecto, utilice este código:

curl -X POST "https://<cluster_url>/ml/v4/models?version=2024-01-29" \
-H "Authorization: Bearer $TOKEN" \
-H "content-type: application/json" \
--data '{
            "name": "<a meaningful name>",
            "project_id": "<your project id>",
            "foundation_model": {
            "model_id": "<your model id>",
            "functions": ["text_generation", "text_chat", "image_chat", "audio_chat", "video_chat"],
            },
            "type": "custom foundation model 1.0",
            "software_spec": {
            "name": "<software specification>"
            }
        }'
Nota:
  • El tipo de modelo debe ser custom_foundation_model_1.0.
  • watsonx-cfm-caikit-1.1El nombre de la especificación del software debe ser, o watsonx-tsfm-runtime-1.0.
  • No es posible personalizar las especificaciones del software.

Creación de un despliegue en línea

Este código de ejemplo muestra un despliegue de ejemplo con algunos de los parámetros alterados temporalmente.

curl -X POST "https://<cluster_url>/ml/v4/deployments?version=2024-01-29" \
-H "Authorization: Bearer $TOKEN" \
-H "content-type: application/json" \
--data '{
  "asset":{
    "id":<your custom foundation model id>
  },
  "online":{
    "parameters":{
      "serving_name":"test_custom_fm",
      "foundation_model": {
            "max_model_length": 2048,
            "max_num_seqs": 16,
            "functions": [
            "text_generation",
            "text_chat",
            "image_chat",
            "embedding",
            "rerank"
        ],
      }
    }
  },
  "hardware_spec": {                        // Only one, of "id" or "name" must be set.
    "id": "<your custom hardware spec id>",
    "num_nodes": 1
  },
  "description": "Testing deployment using custom foundation model",
  "name":"custom_fm_deployment",
  "project_id":<your project id>
}'
Nota:
  • Si utilizas la watsonx-cfm-caikit-1.1 especificación del software para implementar tu modelo, el max_concurrent_requests parámetro no se utiliza.
  • Utiliza el serving_name campo para especificar un nombre para tu implementación en lugar del ID de implementación.
  • El nombre del servidor debe ser único dentro del espacio de nombres.
  • El nombre del servidor solo debe contener estos caracteres: [ a-z,0-9,_] y debe tener una longitud máxima de 36 caracteres.
  • En los flujos de trabajo en los que se utilice periódicamente tu modelo base personalizado, te recomendamos que le asignes el mismo nombre de servicio cada vez que lo implementes. De esta forma, después de eliminar y volver a implementar el modelo, podrás seguir utilizando el mismo punto final en tu código.
  • Los modelos de series temporales no admiten parámetros. No introduzcas ningún parámetro al implementar un modelo de series temporales personalizado. Si se especifican parámetros al implementar un modelo de series temporales personalizado, estos no tendrán ningún efecto.
    • Si no seleccionas ninguna función:
    • Si el modelo no incluye una plantilla de chat, la tarea predeterminada es la generación de texto.
    • Si el modelo incluye una plantilla de chat, las funciones predeterminadas son: text_generation y text_chat.
  • Las funciones que selecciones al implementar tu modelo sustituyen a las que el administrador haya establecido en la fase de creación del modelo.
  • Si el modelo admite la función de integración o reordenación (puedes comprobarlo consultando la ficha del modelo), puedes especificar embedding o rerank en la functions matriz para habilitar dicha función.

Ver el estado de una implementación

Para consultar el estado de una implementación existente, utiliza este comando:

curl -X GET "https://<cluster_url>/ml/v4/deployments/<your deployment ID>?version=2024-01-29&project_id=<your project ID>" \
-H "Authorization: Bearer $TOKEN"
Nota:

El deployed_asset_type se devuelve como custom_foundation_model.

Próximos pasos

Inferencia de modelos base personalizados implementados