El despliegue personalizado de EAS (Elastic Algorithm Service) ofrece una forma flexible y completa de alojar servicios de inference de IA. Esta función le permite empaquetar cualquier algoritmo o modelo como un servicio en línea.
Se recomienda probar primero scenario-based deployment para escenarios de uso como LLM y ComfyUI. Si este enfoque no cubre sus necesidades, utilice el despliegue personalizado.
Inicio rápido: despliegue de un servicio web sencillo
En esta sección se explica cómo desplegar rápidamente un servicio web sencillo mediante el despliegue basado en imágenes.
Paso 1: preparar el archivo de código
Guarde a continuación el código de la aplicación Flask como un app.py. Tenga en cuenta que el servicio escucha en el puerto 8000.
Paso 2: cargar el código en OSS
Cargue el app.py en un OSS bucket. Asegúrese de que el bucket de OSS y el espacio de trabajo de EAS se encuentren en la misma región. Por ejemplo, cargue el archivo en el directorio oss://examplebucket/code/.
Paso 3: configurar y desplegar el servicio
Inicie sesión en la PAI console. Seleccione una región en la parte superior de la página. Después, seleccione el espacio de trabajo deseado y haga clic en Enter Elastic Algorithm Service (EAS).
En la pestaña Inference Service, haga clic en Deploy Service. En la sección Custom Model Deployment, haga clic en Custom Deployment.
-
En la página de configuración, establezca los parámetros clave de las secciones Environment Information y Resource Information de la siguiente manera:
Deployment Method: seleccione Image-based Deployment.
Image Configuration: seleccione la Alibaba Cloud Image
python-inference:3.9-ubuntu2004.-
Storage Mounting: monte el directorio de OSS que contiene el
app.pyen la ruta/mnt/data/del contenedor.URI: seleccione el directorio de OSS donde se ubica su código. En este ejemplo, el directorio es
oss://examplebucket/code/.Mount Path: especifique una ruta local dentro del contenedor para el directorio. En este ejemplo, la ruta es
/mnt/data/.
Command: dado que
app.pyya se montó en el directorio/mnt/data/del contenedor, el comando de inicio es:python /mnt/data/app.py.Third-party Library Settings: el código de ejemplo depende de la biblioteca
flask, la cual no viene incluida en la imagen oficial seleccionada. Agregueflasken Third-party Libraries. EAS instala automáticamente la biblioteca cuando inicia el servicio.-
Resource Configuration: asigne los recursos de cómputo adecuados para el servicio. Para este ejemplo sencillo, basta con una instancia pequeña de CPU.
Resource Type: recursos públicos.
Resource Specification: seleccione
ecs.c7.large.
Una vez completada la configuración, haga clic en Deploy. Cuando el estado del servicio cambie a Running, podrá invoke the service.
Configuración adicional
Entorno de ejecución
En la sección Environment Information, configure el entorno de ejecución y las dependencias de su servicio.
|
Parámetro |
Descripción |
|
Image Configuration |
Entorno base de ejecución del servicio. Puede usar las imágenes oficiales proporcionadas por PAI o utilizar su propia imagen si selecciona Custom Image o introduce una Image Address. Para obtener más información, consulte Custom images. Nota
Si la imagen incluye una interfaz web, seleccione Enable Web App. EAS inicia automáticamente el servidor web, lo que le permite acceder directamente a la página frontal. |
|
Mount storage |
Monte modelos, código o datos desde servicios de almacenamiento en la nube, como OSS y NAS, en una ruta local del contenedor. Esta práctica desacopla el código y los datos del entorno, además de simplificar las actualizaciones independientes. Para obtener más información, consulte storage mounting. |
|
Mount dataset |
Para gestionar versiones de sus modelos o datos, utilice la función Dataset durante el montaje. Para obtener más información, consulte Create and manage datasets. |
|
Command |
Establezca el comando de inicio de la imagen, por ejemplo, |
|
Port Number |
Establezca el puerto de escucha del servicio. En algunos escenarios, este parámetro es opcional. Por ejemplo, si su servicio se suscribe a una cola de mensajes en lugar de depender del tráfico de la puerta de enlace de EAS, especificar un puerto es opcional. Importante
El motor de EAS reserva los puertos 8080 y 9090. Para evitar conflictos al iniciar, no utilice estos puertos cuando despliegue un nuevo servicio. |
|
Third-party Library Settings |
Si solo necesita instalar algunas bibliotecas adicionales de Python, agregue los nombres directamente o especifique una Path of requirements.txt para evitar reconstruir la imagen. |
|
Environment Variables |
Establezca variables de entorno para la instancia del servicio como pares clave-valor. |
Recursos de cómputo
En la sección Resource Information, configure los recursos de cómputo de su servicio. Esto incluye seleccionar un tipo de recurso y una especificación de instancia, configurar el disco del sistema, así como establecer el número de réplicas y las directivas de programación. Para obtener más información, consulte resource configuration.
Redes del servicio
VPC: configure una VPC si su servicio necesita acceder a recursos de red pública, conectarse a bases de datos o colas de mensajes dentro de una VPC, o si desea que los clientes invoquen el servicio directamente a través de una VPC. Para obtener más información, consulte Accessing public or internal network resources.
Invocación del servicio: tras el despliegue, elija el método de invocación adecuado según su escenario de negocio, como una puerta de enlace, NLB, Nacos o gRPC. Para obtener más información, consulte service invocation.
Seguridad del servicio
En la sección Features, configure la autenticación y la seguridad de los datos de su servicio.
|
Parámetro |
Descripción |
|
Custom Authentication |
Si prefiere no usar el token generado por el sistema, personalice el token de autenticación para acceder al servicio. |
|
Configure Secure Encryption Environment |
Intégrese con el servicio de gestión de confianza del sistema para cifrar de forma segura los datos, modelos y código durante el despliegue y la invocación, lo que habilita la inference confiable. Esta función se aplica principalmente a los archivos de almacenamiento montados. Habilítela después de configurar el montaje de almacenamiento. Para obtener más información, consulte Secure encrypted inference service. |
|
Instance RAM Role |
Asociar un Instance RAM Role a una instancia permite que el código del servicio use credenciales temporales de Security Token Service (STS) para acceder a otros recursos en la nube. Este método elimina la necesidad de AccessKeys fijas y reduce el riesgo de filtración de claves. Para obtener más información, consulte Configure an EAS RAM role. |
|
AI Safety Guardrail |
Esta función comprueba la seguridad del contenido en las entradas y salidas de los servicios de inference de LLM para interceptar material dañino. Admite las API de OpenAI Completions (texto a texto), Chat Completions (texto a texto) e Image Generation (texto a imagen).. Nota
Esta función solo está disponible en la región China (Shanghai). |
|
Visibility |
Controla la visibilidad del servicio en la lista de servicios:
|
Estabilidad del servicio
En la sección Features, configure los siguientes ajustes relacionados con la estabilidad:
Service Response Timeout Period: configure el tiempo de espera de cada solicitud. El valor predeterminado es de 5 segundos. Para escenarios que consumen mucho tiempo, como la inference de modelos grandes o la salida en streaming, aumente este valor para evitar que las solicitudes se interrumpan.
Health Check: el sistema sondea periódicamente el estado de las instancias y reemplaza automáticamente las que presentan anomalías, lo que permite la autorrecuperación ante fallos. Para obtener más información, consulte health check.
Compute monitoring & fault tolerance: monitorea en tiempo real el estado de los recursos de cómputo de los servicios de inference distribuidos, lo que posibilita la detección automática de fallos y la autorrecuperación inteligente. Para obtener más información, consulte Compute power monitoring and fault tolerance.
Estrategias de despliegue y actualización: utilice funciones como canary release, actualizaciones continuas, apagado controlado y programaciones de actualización para garantizar que el servicio no se interrumpa durante las mejoras de versión. Para obtener más información, consulte Release management.
Rendimiento del servicio
Utilice la aceleración de almacenamiento y la programación inteligente para mejorar el rendimiento del servicio, agilizar el inicio, aumentar el throughput y reducir la latencia.
Distributed cache acceleration: almacena en caché los archivos de modelos o datos provenientes del almacenamiento montado, como OSS, en el almacenamiento local de la instancia para reducir la latencia de E/S. Para obtener más información, consulte Model cache acceleration.
Model Weight Service (MoWS): mejora significativamente la eficiencia de escalado y la velocidad de inicio en despliegues con muchas instancias, ya que guarda en caché los pesos del modelo de forma local y los comparte entre instancias. Para obtener más información, consulte Model Weight Service.
LLM Intelligent Router: en servicios de LLM con varias instancias de backend, esta función distribuye dinámicamente las solicitudes según la carga del backend. De este modo, equilibra la capacidad de cómputo y el uso de memoria GPU entre las instancias, además de optimizar el aprovechamiento de los recursos del clúster. Para obtener más información, consulte LLM intelligent router deployment.
Observability del servicio
En la sección Features, habilite las siguientes funciones de observability para conocer el estado del servicio y solucionar problemas:
|
Parámetro |
Descripción |
|
Save Call Records |
Persiste todos los registros de solicitudes y respuestas del servicio en MaxCompute o Simple Log Service para fines de auditoría, análisis o resolución de problemas.
|
|
Tracing Analysis |
Algunas imágenes oficiales incluyen un componente de recopilación integrado que permite habilitar el rastreo con un solo clic. Para otras imágenes, integre un agente de ARMS mediante una configuración sencilla y obtenga monitoreo de extremo a extremo de la cadena de llamadas del servicio. Para obtener más información, consulte Enable tracing for LLM applications in EAS. Para configurar el rastreo:
|
Servicios asíncronos y elásticos
Inference asíncrona: para escenarios de inference de larga duración, como AIGC y procesamiento de video, se recomienda habilitar una Asynchronous Queue. El cliente recibe una respuesta inmediata y puede recuperar el resultado final mediante sondeos o un callback. Para obtener más información, consulte Deploy an asynchronous inference service.
Elastic Job Service: en la sección Features, habilite Task Mode para desplegar el servicio de inference como un servicio de trabajos bajo demanda. Resulta útil para el procesamiento por lotes de datos y las tareas programadas. Los recursos se liberan automáticamente al finalizar la tarea, lo que reduce costos. Para obtener más información, consulte Elastic Job Service.
Configuración JSON
En la sección Service Configuration, consulte y edite directamente la configuración JSON completa correspondiente a los ajustes actuales de la interfaz.
Para automatizar procesos y lograr una configuración detallada, también puede definir y desplegar servicios directamente mediante un archivo JSON. Para obtener más información, consulte Deploy services by using JSON.