En esta página se describe cómo puedes usar la guía de inicio rápido de inferencia de GKE para simplificar el despliegue de cargas de trabajo de inferencia de IA y aprendizaje automático en Google Kubernetes Engine (GKE). Inference Quickstart es una utilidad que te permite especificar tus requisitos empresariales de inferencia y obtener configuraciones de Kubernetes optimizadas basadas en las prácticas recomendadas y en las comparativas de Google para modelos, servidores de modelos, aceleradores (GPUs y TPUs), escalado y almacenamiento. De esta forma, no tendrás que dedicar tiempo a ajustar y probar las configuraciones manualmente.
Esta página está dirigida a ingenieros de aprendizaje automático (ML), administradores y operadores de plataformas, y especialistas en datos e IA que quieran saber cómo gestionar y optimizar GKE de forma eficiente para la inferencia de IA/ML. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas de usuario habituales de GKE.
Para obtener más información sobre los conceptos y la terminología del servicio de modelos, así como sobre cómo las funciones de IA generativa de GKE pueden mejorar y respaldar el rendimiento del servicio de modelos, consulta el artículo Acerca de la inferencia de modelos en GKE.
Antes de leer esta página, asegúrate de que conoces Kubernetes, GKE y el servicio de modelos.
Guía de inicio rápido para usar la inferencia
Inicio rápido de inferencia te permite analizar el rendimiento y la rentabilidad de tus cargas de trabajo de inferencia, así como tomar decisiones basadas en datos sobre la asignación de recursos y las estrategias de implementación de modelos.
Estos son los pasos generales para usar Inicio rápido de inferencia:
Analizar el rendimiento y el coste: explora las configuraciones disponibles y fíltralas en función de tus requisitos de rendimiento y coste mediante el comando
gcloud container ai profiles list
. Para ver el conjunto completo de datos de comparativas de una configuración específica, usa el comandogcloud container ai profiles benchmarks list
. Este comando te permite identificar el hardware más rentable para tus requisitos de rendimiento específicos.Implementar manifiestos: después del análisis, puedes generar un manifiesto de Kubernetes optimizado e implementarlo. También puedes habilitar optimizaciones para el almacenamiento y el escalado automático. Puedes implementar desde la Google Cloud consola o mediante el comando
kubectl apply
. Antes de implementar, debes asegurarte de que tienes suficiente cuota de acelerador para las GPUs o TPUs seleccionadas en tu proyecto de Google Cloud .(Opcional) Ejecuta tus propias comparativas: las configuraciones y los datos de rendimiento proporcionados se basan en comparativas que usan el conjunto de datos de ShareGPT. El rendimiento de tus cargas de trabajo puede variar con respecto a esta base. Para medir el rendimiento de tu modelo en diferentes condiciones, puedes usar la herramienta de referencia de inferencia experimental.
Ventajas
La guía de inicio rápido de la inferencia te ayuda a ahorrar tiempo y recursos proporcionándote configuraciones optimizadas. Estas optimizaciones mejoran el rendimiento y reducen los costes de infraestructura de las siguientes formas:
- Recibirás prácticas recomendadas detalladas y personalizadas para configurar el acelerador (GPU y TPU), el servidor de modelos y las configuraciones de escalado. GKE actualiza periódicamente Inference Quickstart con las correcciones, las imágenes y las métricas de rendimiento más recientes.
- Puedes especificar los requisitos de latencia y de rendimiento de tu carga de trabajo mediante la interfaz de usuario de la consolaGoogle Cloud o una interfaz de línea de comandos, y obtener prácticas recomendadas detalladas y personalizadas como manifiestos de implementación de Kubernetes.
Cómo funciona
La guía de inicio rápido de inferencia proporciona prácticas recomendadas personalizadas basadas en las exhaustivas comparativas internas de Google sobre el rendimiento de una sola réplica para combinaciones de modelos, servidores de modelos y topologías de aceleradores. Estos gráficos de comparativas muestran la latencia frente al rendimiento, incluidas las métricas de tamaño de la cola y de la caché de clave-valor, que representan las curvas de rendimiento de cada combinación.
Cómo se generan las prácticas recomendadas personalizadas
Medimos la latencia en tiempo normalizado por token de salida (NTPOT) y tiempo hasta el primer token (TTFT) en milisegundos, así como el rendimiento en tokens de salida por segundo, saturando los aceleradores. Para obtener más información sobre estas métricas de rendimiento, consulta el artículo Acerca de la inferencia de modelos en GKE.
El siguiente perfil de latencia de ejemplo muestra el punto de inflexión en el que el rendimiento se estabiliza (verde), el punto posterior al de inflexión en el que la latencia empeora (rojo) y la zona ideal (azul) para obtener un rendimiento óptimo con la latencia objetivo. La guía de inicio rápido de la inferencia proporciona datos de rendimiento y configuraciones para esta zona ideal.
En función de los requisitos de latencia de una aplicación de inferencia, Inicio rápido de inferencia identifica las combinaciones adecuadas y determina el punto de funcionamiento óptimo en la curva de latencia-rendimiento. Este punto define el umbral de la herramienta de adaptación dinámica horizontal de pods (HPA), con un búfer para tener en cuenta la latencia de escalado. El umbral general también indica el número inicial de réplicas necesarias, aunque el HPA ajusta este número de forma dinámica en función de la carga de trabajo.
Cálculo de costes
Para calcular el coste, la guía de inicio rápido de Inferencias usa una relación de coste de salida a entrada configurable. Por ejemplo, si esta proporción es 4, se supone que cada token de salida cuesta cuatro veces más que un token de entrada. Para calcular las métricas de coste por token, se usan las siguientes ecuaciones:
\[ \$/\text{output token} = \frac{\text{GPU \$/s}}{(\frac{1}{\text{output-to-input-cost-ratio}} \cdot \text{input tokens/s} + \text{output tokens/s})} \]
donde
\[ \$/\text{input token} = \frac{\text{\$/output token}}{\text{output-to-input-cost-ratio}} \]
Comparativas
Las configuraciones y los datos de rendimiento proporcionados se basan en comparativas que usan el conjunto de datos ShareGPT para enviar tráfico con la siguiente distribución de entradas y salidas.
Tokens de entrada | Tokens de salida | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Mín. | Mediana | Media | P90 | P99 | Máx. | Mín. | Mediana | Media | P90 | P99 | Máx. |
4 | 108 | 226 | 635 | 887 | 1024 | 1 | 132 | 195 | 488 | 778 | 1024 |
Antes de empezar
Antes de empezar, asegúrate de que has realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando
gcloud components update
.
En la Google Cloud consola Google Cloud , en la página del selector de proyectos, selecciona o crea un proyecto.
Asegúrate de que la facturación esté habilitada en tu Google Cloud proyecto.
Asegúrate de que tu proyecto tenga suficiente capacidad de acelerador:
- Si usas GPUs, consulta la página Cuotas.
- Si usas TPUs, consulta Asegurar la cuota de TPUs y otros recursos de GKE.
Prepararse para usar la interfaz de usuario de IA/ML de GKE
Si usas la Google Cloud consola, también debes crear un clúster de Autopilot si aún no lo has hecho en tu proyecto. Sigue las instrucciones que se indican en Crear un clúster de Autopilot.
Prepararse para usar la interfaz de línea de comandos
Si usas la CLI de gcloud para ejecutar Inicio rápido de inferencia, también debes ejecutar estos comandos adicionales:
Habilita la API
gkerecommender.googleapis.com
:gcloud services enable gkerecommender.googleapis.com
Define el proyecto de cuota de facturación que usas para las llamadas a la API:
gcloud config set billing/quota_project PROJECT_ID
Comprueba que tu versión de la herramienta de línea de comandos gcloud sea al menos la 536.0.1. De lo contrario, ejecuta lo siguiente:
gcloud components update
Limitaciones
Ten en cuenta las siguientes limitaciones antes de empezar a usar la guía de inicio rápido de Inference:
- Google Cloud El modelo de implementación de la consola solo admite la implementación en clústeres de Autopilot.
- La guía de inicio rápido de inferencia no proporciona perfiles para todos los modelos admitidos por un servidor de modelos determinado.
- Si no defines la variable de entorno
HF_HOME
cuando usas un manifiesto generado para un modelo grande (90 GiB o más) de Hugging Face, debes usar un clúster con discos de arranque más grandes que los predeterminados o modificar el manifiesto para definirHF_HOME
como/dev/shm/hf_cache
. De esta forma, se usará la RAM para la caché en lugar del disco de arranque del nodo. Para obtener más información, consulta la sección Solución de problemas. - La carga de modelos desde Cloud Storage solo se admite en clústeres con el controlador CSI de FUSE de Cloud Storage y la federación de Workload Identity para GKE habilitados. Ambos están habilitados de forma predeterminada en los clústeres Autopilot. Para obtener más información, consulta el artículo Configurar el controlador de CSI de FUSE de Cloud Storage para GKE.
Analizar y ver configuraciones optimizadas para la inferencia de modelos
En esta sección se describe cómo consultar y analizar las recomendaciones de configuración mediante la CLI de Google Cloud.
Usa el comando gcloud container ai profiles
para explorar y analizar perfiles optimizados (combinaciones de modelo, servidor de modelos,
versión del servidor de modelos y aceleradores):
Modelos
Para explorar y seleccionar un modelo, usa la opción models
.
gcloud container ai profiles models list
Perfiles
Usa el comando list
para consultar los perfiles generados y filtrarlos en función de tus
requisitos de rendimiento y coste. Por ejemplo:
gcloud container ai profiles list \
--model=openai/gpt-oss-20b \
--pricing-model=on-demand \
--target-ttft-milliseconds=300
El resultado muestra los perfiles admitidos con métricas de rendimiento, como el rendimiento, la latencia y el coste por millón de tokens en el punto de inflexión. El resultado será similar al siguiente:
Instance Type Accelerator Cost/M Input Tokens Cost/M Output Tokens Output Tokens/s NTPOT(ms) TTFT(ms) Model Server Model Server Version Model
a3-highgpu-1g nvidia-h100-80gb 0.009 0.035 13335 67 297 vllm gptoss openai/gpt-oss-20b
Los valores representan el rendimiento observado en el punto en el que el rendimiento deja de aumentar y la latencia empieza a aumentar drásticamente (es decir, el punto de inflexión o de saturación) de un perfil determinado con este tipo de acelerador. Para obtener más información sobre estas métricas de rendimiento, consulte el artículo Acerca de la inferencia de modelos en GKE.
Para ver la lista completa de las marcas que puedes definir, consulta la documentación del comando list
.
Toda la información sobre precios solo está disponible en dólares estadounidenses y se aplica de forma predeterminada a la región us-east5
, excepto en las configuraciones que usan máquinas A3, que se aplican de forma predeterminada a la región us-central1
.
Comparativas
Para obtener todos los datos de comparativas de un perfil específico, usa el comando benchmarks list
.
Por ejemplo:
gcloud container ai profiles benchmarks list \
--model=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--model-server=vllm \
--pricing-model=on-demand
El resultado contiene una lista de métricas de rendimiento de las comparativas realizadas a diferentes frecuencias de solicitudes.
El comando muestra el resultado en formato CSV. Para almacenar el resultado en un archivo, usa la redirección de salida. Por ejemplo:
gcloud container ai profiles benchmarks list > profiles.csv
.
Para ver la lista completa de las marcas que puedes definir, consulta la documentación del comando benchmarks list
.
Después de elegir un modelo, un servidor de modelos, una versión del servidor de modelos y un acelerador, puedes crear un manifiesto de implementación.
Implementar configuraciones recomendadas
En esta sección se describe cómo generar y desplegar recomendaciones de configuración mediante la consola Google Cloud o la línea de comandos.
Consola
- En la consola de Google Cloud , ve a la página de IA/ML de GKE.
- Haz clic en Desplegar modelos.
Selecciona el modelo que quieras implementar. Los modelos compatibles con Inicio rápido de inferencia se muestran con la etiqueta Optimizado.
- Si has seleccionado un modelo base, se abrirá una página de modelo. Haz clic en Desplegar. Puedes modificar la configuración antes de la implementación real.
- Se te pedirá que crees un clúster de Autopilot si no hay ninguno en tu proyecto. Sigue las instrucciones que se indican en Crear un clúster de Autopilot. Después de crear el clúster, vuelve a la página de IA/ML de GKE en la Google Cloud consola para seleccionar un modelo.
La página de implementación del modelo se rellena automáticamente con el modelo que has seleccionado, así como con el servidor de modelos y el acelerador recomendados. También puedes configurar ajustes como la latencia máxima y la fuente del modelo.
(Opcional) Para ver el manifiesto con la configuración recomendada, haz clic en Ver YAML.
Para desplegar el manifiesto con la configuración recomendada, haz clic en Desplegar. La operación de implementación puede tardar varios minutos en completarse.
Para ver tu despliegue, ve a la página Kubernetes Engine > Cargas de trabajo.
gcloud
Prepárate para cargar modelos desde tu registro de modelos: la guía de inicio rápido de inferencia admite la carga de modelos desde Hugging Face o Cloud Storage.
Hugging Face
Si aún no tienes uno, genera un token de acceso de Hugging Face y un secreto de Kubernetes correspondiente.
Para crear un secreto de Kubernetes que contenga el token de Hugging Face, ejecuta el siguiente comando:
kubectl create secret generic hf-secret \ --from-literal=hf_api_token=HUGGING_FACE_TOKEN \ --namespace=NAMESPACE
Sustituye los siguientes valores:
- HUGGING_FACE_TOKEN: el token de Hugging Face que has creado antes.
- NAMESPACE: el espacio de nombres de Kubernetes en el que quieras implementar tu servidor de modelos.
Es posible que algunos modelos también requieran que aceptes y firmes su contrato de licencia de consentimiento.
Cloud Storage
Puedes cargar modelos compatibles desde Cloud Storage con una configuración optimizada de Cloud Storage FUSE. Para ello, primero debes cargar el modelo de Hugging Face en tu segmento de Cloud Storage.
Puedes desplegar este trabajo de Kubernetes para transferir el modelo y cambiar
MODEL_ID
al modelo compatible con la guía de inicio rápido de inferencia.Generar manifiestos: tienes estas opciones para generar manifiestos:
- Configuración básica: genera los manifiestos estándar de Kubernetes Deployment, Service y PodMonitoring para desplegar un servidor de inferencia de una sola réplica.
- (Opcional) Configuración optimizada para el almacenamiento: genera un manifiesto con una configuración optimizada de Cloud Storage FUSE para cargar modelos desde un segmento de Cloud Storage. Para habilitar esta configuración, usa la marca
--model-bucket-uri
. Una configuración optimizada de Cloud Storage FUSE puede mejorar el tiempo de inicio de los pods de LLM en más de 7 veces. (Opcional) Configuración optimizada para el autoescalado: genera un manifiesto con un HPA para ajustar automáticamente el número de réplicas del servidor de modelos en función del tráfico. Para habilitar esta configuración, especifica un objetivo de latencia con marcas como
--target-ntpot-milliseconds
.
Configuración base
En el terminal, usa la opción
manifests
para generar manifiestos de Deployment, Service y PodMonitoring:gcloud container ai profiles manifests create
Usa los parámetros obligatorios
--model
,--model-server
y--accelerator-type
para personalizar tu manifiesto.También puedes definir estos parámetros:
--target-ntpot-milliseconds
: define este parámetro para especificar el umbral de HPA. Este parámetro le permite definir un umbral de escalado para mantener la latencia del percentil 50 del tiempo normalizado por token de salida (NTPOT), que se mide en el percentil 50, por debajo del valor especificado. Elige un valor superior a la latencia mínima de tu acelerador. El HPA se configura para obtener el máximo rendimiento si especificas un valor de NTPOT superior a la latencia máxima de tu acelerador. Por ejemplo:gcloud container ai profiles manifests create \ --model=google/gemma-2-27b-it \ --model-server=vllm \ --model-server-version=v0.7.2 \ --accelerator-type=nvidia-l4 \ --target-ntpot-milliseconds=200
--target-ttft-milliseconds
: filtra los perfiles que superan el objetivo de latencia TTFT.--output-path
: si se especifica, la salida se guarda en la ruta proporcionada en lugar de imprimirse en la terminal, de modo que puedes editarla antes de implementarla. Por ejemplo, puedes usarlo con la opción--output=manifest
si quieres guardar tu manifiesto en un archivo YAML. Por ejemplo:gcloud container ai profiles manifests create \ --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \ --model-server vllm \ --accelerator-type=nvidia-tesla-a100 \ --output=manifest \ --output-path /tmp/manifests.yaml
Para ver la lista completa de las marcas que puedes definir, consulta la documentación del comando
manifests create
.Optimizado para el almacenamiento
Puedes mejorar el tiempo de inicio de los pods cargando modelos desde Cloud Storage con una configuración optimizada de Cloud Storage FUSE. Para cargar datos desde Cloud Storage, se necesitan las versiones 1.29.6-gke.1254000, 1.30.2-gke.1394000 o posteriores de GKE.
Para ello, siga estos pasos:
- Carga el modelo del repositorio de Hugging Face en tu depósito de Cloud Storage.
Define la marca
--model-bucket-uri
al generar el archivo de manifiesto. De esta forma, el modelo se configura para que se cargue desde un segmento de Cloud Storage mediante el controlador CSI de Cloud Storage FUSE. El URI debe apuntar a la ruta que contiene el archivoconfig.json
y los pesos del modelo. Puede especificar una ruta a un directorio del segmento añadiéndola al URI del segmento.Por ejemplo:
gcloud container ai profiles manifests create \ --model=google/gemma-2-27b-it \ --model-server=vllm \ --accelerator-type=nvidia-l4 \ --model-bucket-uri=gs://BUCKET_NAME \ --output-path=manifests.yaml
Sustituye
BUCKET_NAME
por el nombre del segmento de Cloud Storage.Antes de aplicar el manifiesto, debes ejecutar el comando
gcloud storage buckets add-iam-policy-binding
que se encuentra en los comentarios del manifiesto. Este comando es necesario para conceder a la cuenta de servicio de GKE permiso para acceder al segmento de Cloud Storage mediante Workload Identity Federation for GKE.Si tienes previsto escalar tu implementación a más de una réplica, debes elegir una de las siguientes opciones para evitar errores de escritura simultánea en la ruta de caché de XLA (
VLLM_XLA_CACHE_PATH
):- Opción 1 (recomendada): primero, escala la implementación a 1 réplica. Espera a que el pod esté listo, lo que le permite escribir en la caché de XLA. A continuación, aumenta el número de réplicas que quieras. Las réplicas posteriores leerán de la caché rellenada sin conflictos de escritura.
- Opción 2: Eliminar por completo la variable de entorno
VLLM_XLA_CACHE_PATH
del manifiesto. Este enfoque es más sencillo, pero inhabilita el almacenamiento en caché de todas las réplicas.
En los tipos de acelerador de TPU, esta ruta de caché se usa para almacenar la caché de compilación de XLA, que acelera la preparación de los modelos para las implementaciones repetidas.
Para obtener más consejos sobre cómo mejorar el rendimiento, consulta Optimizar el controlador de CSI de Cloud Storage FUSE para mejorar el rendimiento de GKE.
Optimizada para el autoescalado
Puedes configurar el autoescalador de pods horizontal (HPA) para que ajuste automáticamente el número de réplicas del servidor de modelos en función de la carga. De esta forma, los servidores de modelos pueden gestionar de forma eficiente cargas variables aumentando o reduciendo la escala según sea necesario. La configuración de HPA sigue las prácticas recomendadas de escalado automático de las guías de GPUs y TPUs.
Para incluir configuraciones de HPA al generar manifiestos, usa una o ambas marcas:
--target-ntpot-milliseconds
y--target-ttft-milliseconds
. Estos parámetros definen un umbral de escalado para que el HPA mantenga la latencia del percentil 50 de NTPOT o TTFT por debajo del valor especificado. Si solo defines una de estas marcas, solo se tendrá en cuenta esa métrica para el escalado.Elige un valor superior a la latencia mínima de tu acelerador. El HPA se configura para obtener el máximo rendimiento si especificas un valor superior a la latencia máxima de tu acelerador.
Por ejemplo:
gcloud container ai profiles manifests create \ --model=google/gemma-2-27b-it \ --accelerator-type=nvidia-l4 \ --target-ntpot-milliseconds=250
Crea un clúster: puedes servir tu modelo en clústeres de Autopilot o estándar de GKE. Te recomendamos que uses un clúster de Autopilot para disfrutar de una experiencia de Kubernetes totalmente gestionada. Para elegir el modo de funcionamiento de GKE que mejor se adapte a tus cargas de trabajo, consulta Elegir un modo de funcionamiento de GKE.
Si no tienes ningún clúster, sigue estos pasos:
Autopilot
Sigue estas instrucciones para crear un clúster de Autopilot. GKE se encarga de aprovisionar los nodos con capacidad de GPU o TPU en función de los manifiestos de implementación, siempre que tengas la cuota necesaria en tu proyecto.
Estándar
- Crea un clúster de zona o regional.
Crea un grupo de nodos con los aceleradores adecuados. Sigue estos pasos en función del tipo de acelerador que hayas elegido:
- GPUs: primero, consulta la página Cuotas de la Google Cloud consola para comprobar que tienes suficiente capacidad de GPU. A continuación, sigue las instrucciones de Crear un grupo de nodos de GPU.
- TPUs: primero, asegúrate de que tienes suficientes TPUs siguiendo las instrucciones de Asegurar la cuota de TPUs y otros recursos de GKE. A continuación, consulta Crear un grupo de nodos de TPU.
(Opcional, pero recomendado) Habilita las funciones de observabilidad: en la sección de comentarios del manifiesto generado, se proporcionan comandos adicionales para habilitar las funciones de observabilidad sugeridas. Al habilitar estas funciones, obtendrás más estadísticas que te ayudarán a monitorizar el rendimiento y el estado de las cargas de trabajo y la infraestructura subyacente.
A continuación, se muestra un ejemplo de un comando para habilitar las funciones de observabilidad:
gcloud container clusters update $CLUSTER_NAME \ --project=$PROJECT_ID \ --location=$LOCATION \ --enable-managed-prometheus \ --logging=SYSTEM,WORKLOAD \ --monitoring=SYSTEM,DEPLOYMENT,HPA,POD,DCGM \ --auto-monitoring-scope=ALL
Para obtener más información, consulta Monitorizar las cargas de trabajo de inferencia.
(Solo HPA) Implementa un adaptador de métricas: si se han generado recursos de HPA en los manifiestos de implementación, es necesario un adaptador de métricas, como el adaptador de métricas personalizadas de Stackdriver. El adaptador de métricas permite que el HPA acceda a las métricas del servidor de modelos que usan la API de métricas externas de kube. Para implementar el adaptador, consulta la documentación del adaptador en GitHub.
Despliega los manifiestos: ejecuta el comando
kubectl apply
e introduce el archivo YAML de tus manifiestos. Por ejemplo:kubectl apply -f ./manifests.yaml
Probar los endpoints de implementación
Si has implementado el manifiesto, el servicio implementado se expone en el siguiente endpoint:
http://model-model_server-service:8000/
El servidor de modelos, como vLLM, suele escuchar en el puerto 8000.
Para probar la implementación, debes configurar la redirección de puertos. Ejecuta el siguiente comando en un terminal independiente:
kubectl port-forward service/model-model_server-service 8000:8000
Para ver ejemplos de cómo crear y enviar una solicitud a tu endpoint, consulta la documentación de vLLM.
Control de versiones del archivo de manifiesto
Inference Quickstart proporciona los archivos de manifiesto más recientes que se han validado en versiones recientes del clúster de GKE. El manifiesto devuelto para un perfil puede cambiar con el tiempo, de modo que recibas una configuración optimizada en el momento del despliegue. Si necesitas un manifiesto estable, guárdalo y almacénalo por separado.
El manifiesto incluye comentarios y una anotación recommender.ai.gke.io/version
con el siguiente formato:
# Generated on DATE using:
# GKE cluster CLUSTER_VERSION
# GPU_DRIVER_VERSION GPU driver for node version NODE_VERSION
# Model server MODEL_SERVER MODEL_SERVER_VERSION
La anotación anterior tiene los siguientes valores:
- DATE: la fecha en la que se generó el manifiesto.
- CLUSTER_VERSION: la versión del clúster de GKE que se usa para la validación.
- NODE_VERSION: la versión del nodo de GKE que se usa para la validación.
- GPU_DRIVER_VERSION: (solo GPU) versión del controlador de la GPU utilizada para la validación.
- MODEL_SERVER: el servidor de modelos usado en el manifiesto.
- MODEL_SERVER_VERSION: la versión del servidor de modelos que se usa en el manifiesto.
Monitorizar las cargas de trabajo de inferencia
Para monitorizar las cargas de trabajo de inferencia implementadas, ve al Explorador de métricas de la Google Cloud consola.
Habilitar la monitorización automática
GKE incluye una función de monitorización automática que forma parte de las funciones de observabilidad más amplias. Esta función analiza el clúster en busca de cargas de trabajo que se ejecuten en servidores de modelos compatibles e implementa los recursos de PodMonitoring que permiten que estas métricas de carga de trabajo se vean en Cloud Monitoring. Para obtener más información sobre cómo habilitar y configurar la monitorización automática, consulta Configurar la monitorización automática de aplicaciones para cargas de trabajo.
Después de habilitar la función, GKE instala paneles precompilados para monitorizar aplicaciones de cargas de trabajo compatibles.
Si implementas desde la página de IA/ML de GKE en la Google Cloud consola,
los recursos de PodMonitoring y HPA se crearán automáticamente con la configuración de targetNtpot
.
Solución de problemas
- Si define una latencia demasiado baja, es posible que Inicio rápido de inferencia no genere ninguna recomendación. Para solucionar este problema, seleccione una latencia objetivo entre la latencia mínima y la máxima observadas en los aceleradores seleccionados.
- La guía de inicio rápido de Inferencias existe independientemente de los componentes de GKE, por lo que la versión de tu clúster no es directamente relevante para usar el servicio. Sin embargo, te recomendamos que uses un clúster nuevo o actualizado para evitar discrepancias en el rendimiento.
- Si recibes un error
PERMISSION_DENIED
para los comandosgkerecommender.googleapis.com
que indica que falta un proyecto de cuota, debes configurarlo manualmente. Ejecutagcloud config set billing/quota_project PROJECT_ID
para solucionarlo.
Se ha expulsado el pod debido a que el almacenamiento efímero es insuficiente
Cuando implementas un modelo grande (90 GiB o más) de Hugging Face, es posible que tu pod se expulse y aparezca un mensaje de error similar a este:
Fails because inference server consumes too much ephemeral storage, and gets evicted low resources: Warning Evicted 3m24s kubelet The node was low on resource: ephemeral-storage. Threshold quantity: 10120387530, available: 303108Ki. Container inference-server was using 92343412Ki, request is 0, has larger consumption of ephemeral-storage..,
Este error se produce porque el modelo se almacena en caché en el disco de arranque del nodo, que es un tipo de almacenamiento efímero. El disco de arranque se usa para el almacenamiento efímero cuando el manifiesto de la implementación no asigna a la variable de entorno HF_HOME
un directorio de la RAM del nodo.
- De forma predeterminada, los nodos de GKE tienen un disco de arranque de 100 GiB.
- GKE reserva el 10% del disco de arranque para la sobrecarga del sistema, lo que deja 90 GiB para tus cargas de trabajo.
- Si el tamaño del modelo es de 90 GiB o más y se ejecuta en un disco de arranque de tamaño predeterminado, kubelet expulsa el pod para liberar almacenamiento efímero.
Para solucionar este problema, elige una de las siguientes opciones:
- Usar la RAM para almacenar en caché el modelo: en el manifiesto de tu implementación, asigna el valor
/dev/shm/hf_cache
a la variable de entornoHF_HOME
. De esta forma, se usa la RAM del nodo para almacenar en caché el modelo en lugar del disco de arranque. - Aumenta el tamaño del disco de arranque:
- GKE Standard: aumenta el tamaño del disco de arranque cuando creas un clúster, creas un grupo de nodos o actualizas un grupo de nodos.
- Autopilot: para solicitar un disco de arranque más grande, crea una clase de Compute personalizada y define el campo
bootDiskSize
en la reglamachineType
.
El pod entra en un bucle de fallos al cargar modelos de Cloud Storage
Después de implementar un manifiesto que se haya generado con la marca --model-bucket-uri
, es posible que la implementación se quede bloqueada y que el pod entre en el estado CrashLoopBackOff
.
Si compruebas los registros del contenedor inference-server
, puede que se muestre un error engañoso, como huggingface_hub.errors.HFValidationError
. Por ejemplo:
huggingface_hub.errors.HFValidationError: Repo id must use alphanumeric chars or '-', '_', '.', '--' and '..' are forbidden, '-' and '.' cannot start or end the name, max length is 96: '/data'.
Este error suele producirse cuando la ruta de Cloud Storage proporcionada en la marca --model-bucket-uri
es incorrecta. El servidor de inferencia, como vLLM, no encuentra los archivos de modelo necesarios (como config.json
) en la ruta montada.
Si no encuentra los archivos locales, el servidor asume que la ruta es un ID de repositorio de Hugging Face Hub. Como la ruta no es un ID de repositorio válido, el servidor falla con un error de validación y entra en un bucle de fallos.
Para solucionar este problema, compruebe que la ruta que ha proporcionado a la marca --model-bucket-uri
apunta al directorio exacto de su contenedor de Cloud Storage que
contiene el archivo config.json
del modelo y todos los pesos del modelo asociados.
Siguientes pasos
- Visita el portal de orquestación de IA y aprendizaje automático en GKE para consultar nuestras guías oficiales, tutoriales y casos prácticos sobre cómo ejecutar cargas de trabajo de IA y aprendizaje automático en GKE.
- Para obtener más información sobre la optimización del servicio de modelos, consulta el artículo Prácticas recomendadas para optimizar la inferencia de modelos de lenguaje extensos con GPUs. En él se explican las prácticas recomendadas para servir LLMs con GPUs en GKE, como la cuantización, el paralelismo de tensores y la gestión de la memoria.
- Para obtener más información sobre las prácticas recomendadas para el autoescalado, consulta estas guías:
- Para obtener información sobre las prácticas recomendadas de almacenamiento, consulta Optimizar el controlador de CSI de Cloud Storage FUSE para mejorar el rendimiento de GKE.
- Consulta ejemplos experimentales para aprovechar GKE y acelerar tus iniciativas de IA y aprendizaje automático en GKE AI Labs.