Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ ModelArts/ Prácticas recomendadas/ Inferencia del modelo/ Creación de una aplicación de IA con un modelo grande y despliegue de un servicio en tiempo real
Actualización más reciente 2024-09-20 GMT+08:00

Creación de una aplicación de IA con un modelo grande y despliegue de un servicio en tiempo real

Contexto

Actualmente, un gran modelo puede tener cientos de miles de millones o incluso billones de parámetros, y su tamaño es cada vez mayor. Un modelo grande con cientos de miles de millones de parámetros supera los 200 GB, y plantea nuevos requisitos para la gestión de versiones y el despliegue en producción de la plataforma. Por ejemplo, las aplicaciones de IA requieren un ajuste dinámico de la cuota de almacenamiento del tenant. La lentitud de carga y arranque de los modelos requiere una configuración flexible del tiempo de espera en el despliegue. Es necesario acortar el tiempo de recuperación del servicio en caso de que sea necesario volver a cargar el modelo tras un reinicio provocado por una excepción de carga.

Para satisfacer los requisitos anteriores, la plataforma de inferencia de ModelArts ofrece una solución para la gestión de aplicaciones de IA y el despliegue de servicios en los escenarios de aplicaciones de modelos grandes.

Restricciones

  • Debe solicitar la cuota de tamaño de una aplicación de IA y agregar la lista blanca almacenada en caché utilizando el almacenamiento local del nodo.
  • Debe utilizar el motor personalizado Custom para configurar la carga dinámica.
  • Se requiere un grupo de recursos dedicado para desplegar el servicio.
  • El espacio en disco del grupo de recursos dedicado debe ser superior a 1 TB.

Aplicación para aumentar la cuota de tamaño de una aplicación de IA y utilizar el almacenamiento local del nodo para almacenar en caché la lista blanca

Durante el despliegue del servicio, el paquete del modelo cargado dinámicamente se almacena en el espacio temporal del disco de forma predeterminada. Cuando se detiene el servicio, los archivos cargados se eliminan y deben volver a cargarse cuando se reinicia el servicio. Para evitar la carga repetida, la plataforma permite cargar el paquete modelo desde el espacio de almacenamiento local del nodo en el grupo de recursos y mantiene válidos los archivos cargados incluso cuando el servicio se detiene o se reinicia (utilizando el valor hash para garantizar la coherencia de los datos).

Para utilizar un modelo de gran tamaño, es necesario utilizar un motor personalizado y activar la carga dinámica al importar el modelo. En este sentido, debe realizar las siguientes operaciones:

  • Si el tamaño del modelo supera la cuota predeterminada, envíe un ticket de servicio para aumentar la cuota de tamaño de una sola aplicación de IA. La cuota de tamaño predeterminada de una aplicación de IA es de 20 GB.
  • Envíe un ticket de servicio para agregar la lista blanca almacenada en caché utilizando el almacenamiento local del nodo.

Carga de datos del modelo y verificación de la coherencia de los objetos cargados

Para garantizar la integridad de los datos durante la carga dinámica, es necesario verificar la coherencia de los objetos cargados al cargar los datos del modelo en OBS. Los SDK de obsutil, OBS Browser+ y OBS soportan la verificación de la consistencia de los datos durante la carga. Puede elegir el método que mejor se adapte a sus necesidades. Para obtener más detalles, consulte Verificación de la consistencia de los datos durante la carga.

Por ejemplo, si carga datos con OBS Browser+, active la verificación de MD5, como se muestra en Figura 1. Cuando la carga dinámica está activada y se utiliza el almacenamiento persistente local del nodo, OBS Browser+ verifica la consistencia de los datos durante la carga de datos.

Figura 1 Configuración de la verificación de MD5 para OBS Browser+

Creación de un grupo de recursos dedicado

Para utilizar el almacenamiento local persistente, debe crear un grupo de recursos dedicado cuyo espacio en disco sea superior a 1 TB. Puede ver la información del disco en la ficha Specifications de la página Basic Information del grupo de recursos dedicado. Si un servicio no puede desplegarse y el sistema muestra un mensaje indicando que el espacio en disco es insuficiente, consulte ¿Qué debo hacer si los recursos son insuficientes cuando se despliega, inicia, actualiza o modifica un servicio en tiempo real?.

Figura 2 Consulta de la información de disco del grupo de recursos dedicado

Creación de una aplicación de IA

Si utiliza un modelo grande para crear una aplicación de IA e importar el modelo desde OBS, complete las siguientes configuraciones:

  1. Utilice un motor personalizado y active la carga dinámica.

    Para utilizar un modelo de gran tamaño, es necesario utilizar un motor personalizado y activar la carga dinámica al importar el modelo. Puede crear un motor personalizado para satisfacer requisitos especiales de paquetes de dependencias de imágenes y marcos de inferencia en escenarios de modelos grandes. Consulte Creación de una aplicación de IA con un motor personalizado para obtener detalles sobre cómo crear un motor personalizado.

    Cuando se utiliza un motor personalizado, la carga dinámica está activada de forma predeterminada. El paquete de modelo se separa de la imagen y el modelo se carga dinámicamente en la carga de servicio durante el despliegue de servicio.

  2. Configure la comprobación de estado.

    La comprobación de la salud es obligatoria para las aplicaciones de IA importadas utilizando un gran modelo para identificar los servicios no disponibles que se muestran como iniciados.

    Figura 3 Uso de un motor personalizado, activación de la carga dinámica y configuración de la comprobación de estado

Despliegue de un servicio en tiempo real

Al desplegar el servicio, complete las siguientes configuraciones:

  1. Personalice el intervalo de tiempo de espera de despliegue.

    Por lo general, el tiempo necesario para cargar e iniciar un modelo grande es largo al que el de un modelo común. Establezca Timeout en un valor adecuado. De lo contrario, el tiempo de espera puede transcurrir antes de que finalice la puesta en marcha del modelo, y el despliegue puede fallar.

  2. Agregue una variable de entorno.

    Durante el despliegue del servicio, agregue la siguiente variable de entorno para establecer la política de equilibrio de carga del tráfico de servicio en afinidad de clúster, evitando que las instancias de servicio no preparadas afecten a la tasa de éxito de la predicción:

    MODELARTS_SERVICE_TRAFFIC_POLICY: cluster
    Figura 4 Personalización del intervalo de despliegue y adición de una variable de entorno

Se recomienda desplegar varias instancias para mejorar la confiabilidad del servicio.