En esta página, se describe cómo puedes usar la guía de inicio rápido de GKE Inference para simplificar la implementación de cargas de trabajo de inferencia de IA/ML en Google Kubernetes Engine (GKE). Inference Quickstart es una utilidad que te permite especificar tus requisitos comerciales de inferencia y obtener configuraciones de Kubernetes optimizadas según las prácticas recomendadas y las comparativas de Google para modelos, servidores de modelos, aceleradores (GPU, TPU), escalamiento y almacenamiento. Esto te ayuda a evitar el proceso que requiere mucho tiempo de ajustar y probar las configuraciones de forma manual.
Esta página está dirigida a ingenieros de aprendizaje automático (AA), administradores y operadores de plataformas, y especialistas en IA y datos que desean comprender cómo administrar y optimizar GKE de manera eficiente para la inferencia de IA/AA. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Trusted Cloud by S3NS , consulta Roles y tareas comunes de los usuarios de GKE.
Para obtener más información sobre los conceptos y la terminología de la entrega de modelos, y cómo las capacidades de IA generativa de GKE pueden mejorar y respaldar el rendimiento de la entrega de modelos, consulta Acerca de la inferencia de modelos en GKE.
Antes de leer esta página, asegúrate de estar familiarizado con Kubernetes, GKE y la publicación de modelos.
Usa la guía de inicio rápido de Inference
El inicio rápido de la inferencia te permite analizar el rendimiento y la eficiencia en cuanto a costos de tus cargas de trabajo de inferencia, y tomar decisiones basadas en datos sobre la asignación de recursos y las estrategias de implementación de modelos.
Los pasos generales para usar la guía de inicio rápido de Inference son los siguientes:
Analiza el rendimiento y el costo: Explora las configuraciones disponibles y fíltralas según tus requisitos de rendimiento y costo con el comando
gcloud container ai profiles list
. Para ver el conjunto completo de datos de comparativas para 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.Implementa manifiestos: Después de tu análisis, puedes generar un manifiesto de Kubernetes optimizado y, luego, implementarlo. De manera opcional, puedes habilitar optimizaciones para el almacenamiento y el ajuste de escala automático. Puedes realizar la implementación desde la consola de Trusted Cloud o con el comando
kubectl apply
. Antes de la implementación, debes asegurarte de tener suficiente cuota de acelerador para las GPU o TPU seleccionadas en tu proyecto Trusted Cloud by S3NS .(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 este valor de referencia. Para medir el rendimiento de tu modelo en diversas condiciones, puedes usar la herramienta experimental de comparativas de inferencia.
Beneficios
La guía de inicio rápido de Inference te ayuda a ahorrar tiempo y recursos, ya que proporciona configuraciones optimizadas. Estas optimizaciones mejoran el rendimiento y reducen los costos de infraestructura de las siguientes maneras:
- Recibirás prácticas recomendadas detalladas y personalizadas para configurar el acelerador (GPU y TPU), el servidor de modelos y los parámetros de configuración de escalamiento. GKE actualiza de forma rutinaria la guía de inicio rápido de Inference con las correcciones, las imágenes y las comparativas de rendimiento más recientes.
- Puedes especificar los requisitos de latencia y capacidad de procesamiento de tu carga de trabajo con la IU de la consola deTrusted 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 Inference proporciona prácticas recomendadas personalizadas basadas en las exhaustivas comparativas internas de Google sobre el rendimiento de una sola réplica para combinaciones de topología de modelos, servidores de modelos y aceleradores. Estos gráficos de comparativas muestran la latencia en comparación con la capacidad de procesamiento, incluidas las métricas de tamaño de la cola y de caché de KV, que trazan las curvas de rendimiento para 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, y la capacidad de procesamiento en tokens de salida por segundo, saturando los aceleradores. Para obtener más información sobre estas métricas de rendimiento, consulta Acerca de la inferencia de modelos en GKE.
En el siguiente ejemplo de perfil de latencia, se ilustra el punto de inflexión en el que el rendimiento alcanza su punto máximo (verde), el punto posterior a la inflexión en el que la latencia empeora (rojo) y la zona ideal (azul) para un rendimiento óptimo en el objetivo de latencia. La guía de inicio rápido de Inference proporciona datos de rendimiento y configuraciones para esta zona ideal.
Según los requisitos de latencia de una aplicación de inferencia, Inference Quickstart identifica combinaciones adecuadas y determina el punto de funcionamiento óptimo en la curva de latencia-capacidad de procesamiento. Este punto establece el umbral del Horizontal Pod Autoscaler (HPA), con un búfer para tener en cuenta la latencia del aumento de escala. El umbral general también proporciona información sobre la cantidad inicial de réplicas necesarias, aunque el HPA ajusta dinámicamente esta cantidad en función de la carga de trabajo.
Cálculo de costos
Para calcular el costo, la guía de inicio rápido de Inference usa una proporción de costos de salida a entrada configurable. Por ejemplo, si esta proporción se establece en 4, se supone que cada token de salida cuesta cuatro veces más que un token de entrada. Para calcular las métricas de costo por token, se utilizan 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
Los datos de rendimiento y las configuraciones proporcionados se basan en comparativas que utilizan el conjunto de datos de ShareGPT para enviar tráfico con la siguiente distribución de entrada y salida.
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 comenzar
Antes de comenzar, asegúrate de haber 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,
instala y, luego,
inicializa
gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
En la Trusted Cloud consola, en la página de selección de proyecto, selecciona o crea un Trusted Cloud by S3NS proyecto.
Asegúrate de tener habilitada la facturación para tu Trusted Cloud by S3NS proyecto.
Asegúrate de tener suficiente capacidad de acelerador para tu proyecto:
- Si usas GPUs, consulta la página Cuotas.
- Si usas TPUs, consulta Asegúrate de tener cuota para las TPU y otros recursos de GKE.
Prepárate para usar la interfaz de usuario de IA/AA de GKE
Si usas la consola de Trusted Cloud , también debes crear un clúster de Autopilot si aún no se creó uno en tu proyecto. Sigue las instrucciones en Crea un clúster de Autopilot.
Prepárate para usar la interfaz de línea de comandos
Si usas gcloud CLI para ejecutar la guía de inicio rápido de Inference, también debes ejecutar estos comandos adicionales:
gkerecommender.googleapis.com
Habilita la APIgcloud services enable gkerecommender.googleapis.com
Configura el proyecto de cuota de facturación que usas para las llamadas a la API:
gcloud config set billing/quota_project PROJECT_ID
Verifica que tu versión de gcloud CLI sea al menos la 536.0.1. De lo contrario, ejecuta el siguiente comando:
gcloud components update
Limitaciones
Ten en cuenta las siguientes limitaciones antes de comenzar a usar la guía de inicio rápido de Inference:
- La implementación de modelos de la consola deTrusted Cloud solo admite la implementación en clústeres de Autopilot.
- La guía de inicio rápido de Inference no proporciona perfiles para todos los modelos admitidos por un servidor de modelos determinado.
- Si no configuras 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 establecerHF_HOME
en/dev/shm/hf_cache
. Esto 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 admite la implementación en clústeres con el controlador de CSI de Cloud Storage FUSE y la federación de identidades para cargas de trabajo de GKE habilitados, que están habilitados de forma predeterminada en los clústeres de Autopilot. Para obtener más detalles, consulta Configura el controlador de CSI de Cloud Storage FUSE para GKE.
Analiza y visualiza las configuraciones optimizadas para la inferencia del modelo
En esta sección, se describe cómo explorar y analizar las recomendaciones de configuración con Google Cloud CLI.
Usa el comando gcloud container ai profiles
para explorar y analizar los 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 explorar los perfiles generados y filtrarlos según tus requisitos de rendimiento y costos. 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 costo por millón de tokens en el punto de inflexión. Se verá parecido al siguiente ejemplo:
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 procesamiento deja de aumentar y la latencia comienza a aumentar de forma drástica (es decir, el punto de inflexión o saturación) para un perfil determinado con este tipo de acelerador. Para obtener más información sobre estas métricas de rendimiento, consulta Acerca de la inferencia de modelos en GKE.
Para obtener la lista completa de marcas que puedes establecer, consulta la documentación del comando list
.
Toda la información sobre los precios está disponible solo en dólares estadounidenses y, de forma predeterminada, se muestra la región us-east5
, excepto en el caso de las configuraciones que usan máquinas A3, que se muestran de forma predeterminada en la región us-east5
.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 ejecutadas a diferentes tasas de solicitudes.
El comando muestra el resultado en formato CSV. Para almacenar el resultado como un archivo, usa el redireccionamiento de salida. Por ejemplo: gcloud container ai profiles benchmarks list > profiles.csv
Para obtener la lista completa de marcas que puedes establecer, 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 continuar con la creación de un manifiesto de implementación.
Implementa los parámetros de configuración recomendados
En esta sección, se describe cómo generar y, luego, implementar recomendaciones de configuración con la consola de Trusted Cloud o la línea de comandos.
Console
- En la consola de Trusted Cloud , ve a la página de GKE AI/ML.
- Haz clic en Deploy Models.
Selecciona un modelo que quieras implementar. Los modelos compatibles con la guía de inicio rápido de Inference se muestran con la etiqueta Optimized.
- Si seleccionaste un modelo base, se abrirá una página del modelo. Haz clic en Implementar. Aún puedes modificar la configuración antes de la implementación real.
- Se te solicitará que crees un clúster de Autopilot si no hay uno en tu proyecto. Sigue las instrucciones en Crea un clúster de Autopilot. Después de crear el clúster, vuelve a la página de IA/AA de GKE en la consola de Trusted Cloud para seleccionar un modelo.
La página de implementación del modelo se completa previamente con el modelo seleccionado, así como con el servidor de modelos y el acelerador recomendados. También puedes configurar parámetros 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 implementar el manifiesto con la configuración recomendada, haz clic en Implementar. La operación de implementación puede tardar varios minutos en completarse.
Para ver tu implementación, ve a la página Kubernetes Engine > Cargas de trabajo.
gcloud
Prepárate para cargar modelos desde tu registro de modelos: El inicio rápido de la 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 Secret de Kubernetes correspondiente.
Para crear un Secret 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
Reemplaza los siguientes valores:
- HUGGING_FACE_TOKEN: El token de Hugging Face que creaste antes.
- NAMESPACE: Es el espacio de nombres de Kubernetes en el que deseas 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 bucket de Cloud Storage.
Puedes implementar este trabajo de Kubernetes para transferir el modelo, cambiando
MODEL_ID
al modelo compatible con la guía de inicio rápido de Inference.Generar manifiestos: Tienes estas opciones para generar manifiestos:
- Configuración básica: Genera los manifiestos estándar de Kubernetes Deployment, Service y PodMonitoring para implementar un servidor de inferencia de una sola réplica.
- (Opcional) Configuración optimizada para el almacenamiento: Genera un manifiesto con una configuración ajustada de Cloud Storage FUSE para cargar modelos desde un bucket 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 del Pod de LLM en más de 7 veces. (Opcional) Configuración optimizada para el ajuste de escala automático: Genera un manifiesto con un Horizontal Pod Autoscaler (HPA) para ajustar automáticamente la cantidad 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 básica
En la 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.De manera opcional, puedes establecer estos parámetros:
--target-ntpot-milliseconds
: Establece este parámetro para especificar tu umbral de HPA. Este parámetro te permite definir un umbral de ajuste para mantener la latencia del percentil 50 del tiempo normalizado por token de salida (NTPOT) por debajo del valor especificado. Elige un valor superior a la latencia mínima de tu acelerador. El HPA se configura para lograr la capacidad de procesamiento máxima 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 del TTFT.--output-path
: Si se especifica, el resultado se guarda en la ruta de acceso proporcionada, en lugar de imprimirse en la terminal, para que puedas editarlo antes de implementarlo. Por ejemplo, puedes usar esta opción con--output=manifest
si deseas 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 obtener la lista completa de marcas que puedes establecer, consulta la documentación del comando
manifests create
.Optimizada para almacenamiento
Puedes mejorar el tiempo de inicio del Pod cargando modelos desde Cloud Storage con una configuración optimizada de Cloud Storage FUSE. La carga desde Cloud Storage requiere las versiones 1.29.6-gke.1254000, 1.30.2-gke.1394000 o posteriores de GKE.
Para ello, sigue estos pasos:
- Carga el modelo del repositorio de Hugging Face en tu bucket de Cloud Storage.
Configura la marca
--model-bucket-uri
cuando generes tu manifiesto. Esto configura el modelo para que se cargue desde un bucket de Cloud Storage con el controlador CSI de Cloud Storage FUSE. El URI debe apuntar a la ruta de acceso que contiene el archivoconfig.json
y los pesos del modelo. Puedes especificar una ruta de acceso a un directorio dentro del bucket anexándola al URI del bucket.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
Reemplaza
BUCKET_NAME
por el nombre del depósito 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 otorgar permiso a la cuenta de servicio de GKE para acceder al bucket de Cloud Storage con la federación de identidades para cargas de trabajo de GKE.Si planeas escalar tu Deployment 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 acceso de la caché de XLA (
VLLM_XLA_CACHE_PATH
):- Opción 1 (recomendada): Primero, ajusta la Deployment a 1 réplica. Espera a que el Pod esté listo, lo que le permite escribir en la caché de XLA. Luego, aumenta la escala hasta la cantidad de réplicas que desees. Las réplicas posteriores leerán desde la caché completada sin conflictos de escritura.
- Opción 2: Quita por completo la variable de entorno
VLLM_XLA_CACHE_PATH
del manifiesto. Este enfoque es más simple, pero inhabilita el almacenamiento en caché para todas las réplicas.
En los tipos de aceleradores de TPU, esta ruta de acceso a la caché se usa para almacenar la caché de compilación de XLA, lo que acelera la preparación del modelo para implementaciones repetidas.
Para obtener más sugerencias sobre cómo mejorar el rendimiento, consulta Cómo optimizar el controlador de CSI de Cloud Storage FUSE para el rendimiento de GKE.
Optimizado para el ajuste de escala automático
Puedes configurar el Horizontal Pod Autoscaler (HPA) para que ajuste automáticamente la cantidad de réplicas del servidor de modelos según la carga. Esto ayuda a los servidores de tu modelo a controlar de manera eficiente las cargas variables, ya que se escalan verticalmente o de forma horizontal según sea necesario. La configuración del HPA sigue las prácticas recomendadas de ajuste de escala automático para las guías de GPUs y TPUs.
Para incluir configuraciones de HPA cuando generes manifiestos, usa una o ambas marcas
--target-ntpot-milliseconds
y--target-ttft-milliseconds
. Estos parámetros definen un umbral de ajuste para que el HPA mantenga la latencia del P50 para el NTPOT o el TTFT por debajo del valor especificado. Si solo estableces una de estas marcas, solo se tendrá en cuenta esa métrica para el ajuste de escala.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 entregar tu modelo en clústeres de GKE Autopilot o Standard. Te recomendamos que uses un clúster de Autopilot para una experiencia de Kubernetes completamente administrada. Para elegir el modo de operación de GKE que se adapte mejor a tus cargas de trabajo, consulta Elige un modo de operación de GKE.
Si no tienes un clúster existente, 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 según los manifiestos de implementación, si tienes la cuota necesaria en tu proyecto.
Estándar
- Crea un clúster zonal o regional.
Crea un grupo de nodos con los aceleradores adecuados. Sigue estos pasos según el tipo de acelerador que elegiste:
- GPUs: Primero, consulta la página Cuotas en la consola de Trusted Cloud para asegurarte de tener suficiente capacidad de GPU. Luego, sigue las instrucciones en Crea un grupo de nodos de GPU.
- TPUs: Primero, asegúrate de tener suficientes TPU. Para ello, sigue las instrucciones que se indican en Asegúrate de tener cuota para las TPUs y otros recursos de GKE. Luego, continúa con Crea un nodo TPU 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. Habilitar estas funciones proporciona más estadísticas para ayudarte a supervisar el rendimiento y el estado de las cargas de trabajo y la infraestructura subyacente.
El siguiente es 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 Supervisa tus cargas de trabajo de inferencia.
(Solo para HPA) Implementa un adaptador de métricas: Se necesita un adaptador de métricas, como el adaptador de métricas personalizadas de Stackdriver, si se generaron recursos de HPA en los manifiestos de implementación. El adaptador de métricas permite que el HPA acceda a las métricas del servidor del modelo que usan la API de métricas externas de kube. Para implementar el adaptador, consulta la documentación del adaptador en GitHub.
Implementa los manifiestos: Ejecuta el comando
kubectl apply
y pasa el archivo YAML para tus manifiestos. Por ejemplo:kubectl apply -f ./manifests.yaml
Prueba tus extremos de implementación
Si implementaste el manifiesto, el servicio implementado se expone en el siguiente extremo:
http://model-model_server-service:8000/
Por lo general, el servidor de modelos, como vLLM, escucha en el puerto 8000.
Para probar tu implementación, debes configurar la redirección de puertos. Ejecuta el siguiente comando en una terminal independiente:
kubectl port-forward service/model-model_server-service 8000:8000
Para ver ejemplos de cómo compilar y enviar una solicitud a tu extremo, consulta la documentación de vLLM.
Control de versiones del manifiesto
La guía de inicio rápido de Inference proporciona los manifiestos más recientes que se validaron en versiones recientes del clúster de GKE. El manifiesto que se devuelve para un perfil puede cambiar con el tiempo, de modo que recibas una configuración optimizada en la implementación. 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
en 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: Es la fecha en la que se generó el manifiesto.
- CLUSTER_VERSION: Es la versión del clúster de GKE que se usa para la validación.
- NODE_VERSION: Es la versión del nodo de GKE que se usa para la validación.
- GPU_DRIVER_VERSION: (Solo para GPU) Es la versión del controlador de GPU que se usa para la validación.
- MODEL_SERVER: Es el servidor del modelo que se usa en el manifiesto.
- MODEL_SERVER_VERSION: Es la versión del servidor del modelo que se usa en el manifiesto.
Supervisa tus cargas de trabajo de inferencia
Para supervisar las cargas de trabajo de inferencia implementadas, ve al Explorador de métricas en la Trusted Cloud consola.
Habilita la supervisión automática
GKE incluye una función de supervisió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 y, luego, implementa los recursos PodMonitoring que permiten que las métricas de estas cargas de trabajo sean visibles en Cloud Monitoring. Para obtener más información sobre cómo habilitar y configurar la supervisión automática, consulta Configura la supervisión automática de aplicaciones para cargas de trabajo.
Después de habilitar la función, GKE instala paneles prediseñados para supervisar aplicaciones para cargas de trabajo compatibles.
Si realizas la implementación desde la página de IA/ML de GKE en la Trusted Cloud consola, los recursos de PodMonitoring y HPA se crearán automáticamente para ti con la configuración detargetNtpot
.
Soluciona problemas
- Si estableces una latencia demasiado baja, es posible que la guía de inicio rápido de Inference no genere una recomendación. Para solucionar este problema, selecciona un objetivo de latencia entre la latencia mínima y máxima que se observó para los aceleradores seleccionados.
- La guía de inicio rápido de Inference 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, recomendamos usar un clúster nuevo o actualizado para evitar discrepancias en el rendimiento.
- Si recibes un error
PERMISSION_DENIED
para los comandos degkerecommender.googleapis.com
que indica que falta un proyecto de cuota, debes configurarlo de forma manual. Ejecutagcloud config set billing/quota_project PROJECT_ID
para corregir este problema.
Se desalojó el Pod debido a que el almacenamiento efímero es insuficiente.
Cuando implementas un modelo grande (90 GiB o más) desde Hugging Face, es posible que se expulse tu Pod con 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, una forma de almacenamiento efímero. El disco de arranque se usa para el almacenamiento efímero cuando el manifiesto de implementación no establece la variable de entorno HF_HOME
en 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 resolver este problema, elige una de las siguientes opciones:
- Usa RAM para el almacenamiento en caché del modelo: En el manifiesto de implementación, establece la variable de entorno
HF_HOME
en/dev/shm/hf_cache
. Esto 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 procesamiento personalizada y establece el campo
bootDiskSize
en la reglamachineType
.
El Pod entra en un bucle de fallas cuando carga modelos desde Cloud Storage
Después de implementar un manifiesto que se generó con la marca --model-bucket-uri
, es posible que la Deployment se detenga y el Pod entre en un estado CrashLoopBackOff
.
Revisar los registros del contenedor inference-server
podría mostrar 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'.
Por lo general, este error se produce cuando la ruta de Cloud Storage proporcionada en la marca --model-bucket-uri
es incorrecta. El servidor de inferencia, como vLLM, no puede encontrar los archivos del modelo requeridos (como config.json
) en la ruta de acceso activada.
Cuando no se encuentran los archivos locales, el servidor recurre a suponer que la ruta de acceso es un ID de repositorio de Hugging Face Hub. Como la ruta de acceso no es un ID de repositorio válido, el servidor falla con un error de validación y entra en un bucle de fallas.
Para resolver este problema, verifica que la ruta de acceso que proporcionaste a la marca --model-bucket-uri
apunte al directorio exacto de tu bucket de Cloud Storage que contiene el archivo config.json
del modelo y todos los pesos asociados del modelo.
¿Qué sigue?
- Visita el portal de organización de IA/AA en GKE para explorar nuestras guías, instructivos y casos de uso oficiales para ejecutar cargas de trabajo de IA/AA en GKE.
- Para obtener más información sobre la optimización de la entrega de modelos, consulta Prácticas recomendadas para optimizar la inferencia de modelos de lenguaje grandes con GPUs. Abarca las prácticas recomendadas para la entrega de LLM con GPU en GKE, como la cuantización, el paralelismo de tensor y la administración de memoria.
- Para obtener más información sobre las prácticas recomendadas para el ajuste de escala automático, consulta estas guías:
- Para obtener información sobre las prácticas recomendadas de almacenamiento, consulta Cómo optimizar el controlador de CSI de Cloud Storage FUSE para el rendimiento de GKE.
- Explora muestras experimentales para aprovechar GKE y acelerar tus iniciativas de IA/AA en GKE AI Labs.