En esta página, se describe cómo puedes usar la Guía de inicio rápido de inferencia de GKE para simplificar la implementación de cargas de trabajo de inferencia de IA/ML en Google Kubernetes Engine (GKE). La Guía de inicio rápido de inferencia es una utilidad que te permite especificar tus requisitos empresariales de inferencia y obtener configuraciones optimizadas de Kubernetes según las prácticas recomendadas y las comparativas de Google para modelos, servidores de modelos, aceleradores (GPU, TPU) y escalamiento. Esto te ayuda a evitar el proceso lento de ajustar y probar configuraciones de forma manual.
Esta página está dirigida a ingenieros de aprendizaje automático (AA), administradores y operadores de la plataforma, y a especialistas en datos y AI que deseen 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 Google Cloud , consulta Tareas y roles comunes de los usuarios de GKE Enterprise.
Si deseas obtener más información sobre los conceptos y la terminología de la entrega de modelos, y cómo las funciones de IA generativa de GKE pueden mejorar y admitir 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.
Guía de inicio rápido para usar la inferencia
Los pasos de alto nivel para usar la Guía de inicio rápido de inferencia son los siguientes. Haz clic en los vínculos para obtener instrucciones detalladas.
- Consulta prácticas recomendadas personalizadas: Usa Google Cloud CLI en la terminal y, luego, proporciona entradas, como tu modelo abierto preferido (por ejemplo, Llama, Gemma o Mistral).
- Puedes especificar el objetivo de latencia de tu aplicación, lo que indica si es sensible a la latencia (como un chatbot) o a la capacidad de procesamiento (como las estadísticas por lotes).
- Según tus requisitos, la Guía de inicio rápido de inferencia proporciona opciones de acelerador, métricas de rendimiento y manifiestos de Kubernetes, que te brindan control total para la implementación o modificaciones adicionales. Los manifiestos generados hacen referencia a imágenes públicas del servidor de modelos, por lo que no tienes que crearlas tú mismo.
- Implementa manifiestos: Usa el comando
kubectl apply
para implementar los manifiestos recomendados desde la línea de comandos. Antes de realizar la implementación, debes asegurarte de tener suficiente cuota de acelerador para las GPUs o TPU seleccionadas en tu Google Cloud proyecto. - Supervisa el rendimiento: Usa Cloud Monitoring para supervisar las métricas que GKE usa para supervisar el rendimiento de la carga de trabajo. Puedes ver paneles específicos del servidor de modelos y ajustar tu implementación según sea necesario.
Beneficios
La Guía de inicio rápido de inferencia 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 aceleradores (GPU y TPU), el servidor de modelos y las configuraciones de escalamiento. GKE actualiza la herramienta de forma periódica con las correcciones, las imágenes y las comparativas de rendimiento más recientes.
- Puedes especificar los requisitos de latencia y rendimiento de tu carga de trabajo desde una interfaz de línea de comandos y obtener prácticas recomendadas detalladas y personalizadas como manifiestos de implementación de Kubernetes.
Casos de uso
La guía de inicio rápido de inferencia es adecuada para las siguientes situaciones:
- Descubre las arquitecturas de inferencia óptimas de GKE: Si estás realizando la transición desde otro entorno, como una implementación local o un proveedor de servicios en la nube diferente, y deseas obtener las arquitecturas de inferencia recomendadas más actualizadas en GKE para tus necesidades de rendimiento específicas.
- Agiliza las implementaciones de inferencia de IA/AA: Si eres un usuario experimentado de Kubernetes y deseas comenzar a implementar rápidamente cargas de trabajo de inferencia de IA, la Guía de inicio rápido de inferencia te ayuda a descubrir e implementar implementaciones de prácticas recomendadas en GKE, con configuraciones detalladas de YAML basadas en las prácticas recomendadas.
- Explora las TPU para mejorar el rendimiento: Si ya usas Kubernetes en GKE con GPUs, puedes usar la Guía de inicio rápido de inferencia para explorar los beneficios de usar TPUs y, posiblemente, lograr un mejor rendimiento.
Cómo funciona
La Guía de inicio rápido de inferencia proporciona prácticas recomendadas personalizadas basadas en las comparativas internas exhaustivas de Google del rendimiento de una sola réplica para combinaciones de modelos, servidores de modelos y topologías de aceleradores. Estas comparativas grafican la latencia en comparación con la capacidad de procesamiento, incluido el tamaño de la cola y las métricas de caché de KV, que trazan las curvas de rendimiento para cada combinación.
Cómo se generan prácticas recomendadas personalizadas
Medimos la latencia en tiempo normalizado por token de salida (NTPOT) 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 se estabiliza la capacidad de procesamiento (verde), el punto posterior a la inflexión en el que empeora la latencia (rojo) y la zona ideal (azul) para obtener una capacidad de procesamiento óptima en el objetivo de latencia. La Guía de inicio rápido de inferencia proporciona datos de rendimiento y parámetros de configuración para esta zona ideal.
Según los requisitos de latencia de una aplicación de inferencia, la Guía de inicio rápido de inferencia identifica las combinaciones adecuadas y determina el punto de funcionamiento óptimo en la curva de latencia-cantidad de procesamiento. Este punto establece el umbral del escalador automático de pod horizontal (HPA), con un búfer para tener en cuenta la latencia de escalamiento. El umbral general también informa la cantidad inicial de réplicas necesarias, aunque el HPA ajusta esta cantidad de forma dinámica según la carga de trabajo.
Comparativas
Los datos de rendimiento y configuración proporcionados se basan en comparativas que usan el conjunto de datos 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 |
Para ejecutar la comparativa por tu cuenta, sigue las instrucciones que se indican en AI-Hypercomputer/inference-benchmark. Proporcionamos diferentes opciones que puedes usar durante las comparativas para simular patrones de carga que sean representativos de tu carga de trabajo.
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 deseas 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 página del selector de proyectos de la consola de Google Cloud, selecciona o crea un Google Cloud proyecto.
Asegúrate de tener habilitada la facturación para tu Google Cloud 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 cuotas suficientes de TPU y GKE.
Genera un token de acceso de Hugging Face y un Secret de Kubernetes correspondiente, si aún no tienes uno. 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: 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.
Si usas la CLI de gcloud para ejecutar la Guía de inicio rápido de inferencia, también debes ejecutar estos comandos adicionales:
gkerecommender.googleapis.com
Habilita la APIgcloud services enable gkerecommender.googleapis.com
Habilita la autenticación de comandos (este paso es obligatorio para configurar el proyecto de facturación y cuotas que se usa para las llamadas a la API):
gcloud auth application-default login
Limitaciones
Ten en cuenta las siguientes limitaciones antes de comenzar a usar la guía de inicio rápido de inferencia:
- La Guía de inicio rápido de inferencia no proporciona perfiles para todos los modelos que admite un servidor de modelos determinado.
Obtén parámetros de configuración optimizados para la inferencia de modelos
Usa el comando gcloud alpha container ai recommender
para explorar y ver combinaciones optimizadas de modelos, servidores de modelos, versiones de servidores de modelos y aceleradores:
Modelos
Para explorar y seleccionar un modelo, usa la opción models
.
gcloud alpha container ai recommender models list
El resultado es similar al siguiente:
Supported models:
- deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
- google/gemma-2-27b-it
- google/gemma-2-2b-it
- meta-llama/Llama-3.2-1B-Instruct
- meta-llama/Llama-3.3-70B-Instruct
- meta-llama/Meta-Llama-3-8B
- mistralai/Mixtral-8x22B-Instruct-v0.1
- mistralai/Mixtral-8x7B-Instruct-v0.1
Servidores de modelos
Para explorar los servidores de modelos recomendados para el modelo que te interesa, usa la opción model-servers
. Por ejemplo:
gcloud alpha container ai recommender model-servers list \
--model=meta-llama/Meta-Llama-3-8B
El resultado es similar al siguiente:
Supported model servers:
- vllm
Versiones del servidor
De manera opcional, para explorar las versiones compatibles del servidor de modelos que te interesan, usa la opción model-server-versions
. Si omites este paso, la guía de inicio rápido de Inferencia usará la versión más reciente de forma predeterminada.
Por ejemplo:
gcloud alpha container ai recommender model-server-versions list \
--model=meta-llama/Meta-Llama-3-8B \
--model-server=vllm
El resultado es similar al siguiente:
Supported model server versions:
- e92694b6fe264a85371317295bca6643508034ef
- v0.7.2
Aceleradores
Para explorar los aceleradores recomendados para la combinación de modelo y servidor de modelos que te interesa, usa la opción accelerators
.
Por ejemplo:
gcloud alpha container ai recommender accelerators list \
--model=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--model-server-version=v0.7.2
El resultado es similar al siguiente:
Supported accelerators:
accelerator | model | model server | model server version | accelerator count | output tokens per second | ntpot ms
---------------------|-----------------------------------------|--------------|------------------------------------------|-------------------|--------------------------|---------
nvidia-tesla-a100 | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm | v0.7.2 | 1 | 3357 | 72
nvidia-h100-80gb | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm | v0.7.2 | 1 | 6934 | 30
For more details on each accelerator, use --format=yaml
El resultado muestra una lista de tipos de aceleradores y las siguientes métricas:
- Capacidad de procesamiento, en tokens de salida por segundo
- Tiempo normalizado por token de salida (NTPOT), en milisegundos
Los valores representan el rendimiento observado en el punto en el que la productividad deja de aumentar y la latencia comienza a aumentar de forma significativa (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 opciones adicionales, consulta la documentación de Google Cloud CLI.
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.
Genera y, luego, implementa las configuraciones recomendadas
En esta sección, se describe cómo generar e implementar recomendaciones de configuración mediante gcloud CLI.
Genera manifiestos: En la terminal, usa la opción
manifests
para generar manifiestos de Deployment, Service y PodMonitoring:gcloud alpha container ai recommender manifests create
Usa los parámetros
--model
,--model-server
,--model-server-version
y--accelerator
para personalizar tu manifiesto.De manera opcional, puedes establecer estos parámetros:
--target-ntpot-milliseconds
: Establece este parámetro para especificar el umbral de HPA. Este parámetro te permite definir un umbral de escalamiento para mantener la latencia P50 de NTPOT (tiempo normalizado por token de salida), que se mide en el cuartil 50, por debajo del valor especificado. Elige un valor superior a la latencia mínima de tu acelerador. El HPA se configurará para obtener la máxima capacidad de procesamiento si especificas NTPOT por encima de la latencia máxima de tu acelerador. Por ejemplo:gcloud alpha container ai recommender 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
--output
: Los valores válidos incluyenmanifest
,comments
yall
. De forma predeterminada, se establece enall
. Puedes elegir generar solo el manifiesto para implementar cargas de trabajo o solo los comentarios si deseas ver instrucciones para habilitar funciones.--output-path
: Si se especifica, el resultado se guardará en la ruta de acceso proporcionada en lugar de imprimirse en la terminal para que puedas editarlo antes de implementarlo. Por ejemplo, puedes usar esto con la opción--output=manifest
si deseas guardar tu manifiesto en un archivo YAML. Por ejemplo:gcloud alpha container ai recommender 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 opciones adicionales, consulta la documentación de Google Cloud CLI.
Aprovisiona tu infraestructura: Sigue estos pasos para asegurarte de que tu infraestructura esté configurada correctamente para la implementación, la supervisión y la escalabilidad de los modelos.
Implementa los manifiestos: Ejecuta el comando
kubectl apply
y pasa el archivo YAML de tus manifiestos. Por ejemplo:kubectl apply -f ./manifests.yaml
Aprovisiona tu infraestructura
Sigue estos pasos para asegurarte de que tu infraestructura esté configurada correctamente para la implementación, la supervisión y la escalamiento de modelos:
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 controla el aprovisionamiento de 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 elijas:
- GPUs: Primero, consulta la página Cuotas en la consola de Google Cloud para asegurarte de tener suficiente capacidad de GPU. Luego, sigue las instrucciones que se indican en Crea un grupo de nodos de GPU.
- TPUs: Primero, asegúrate de tener suficientes TPU siguiendo las instrucciones que se indican en Asegúrate de tener cuotas suficientes para las TPU y otros recursos de GKE. Luego, continúa con Crea un grupo de nodos TPU.
Habilita funciones de observabilidad(opcional, pero recomendado): En la sección de comentarios del manifiesto generado, se proporcionan comandos adicionales para habilitar las funciones de observabilidad sugeridas. Si habilitas estas funciones, obtendrás 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 funciones de observabilidad:
gcloud beta 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 HPA) Implementa un adaptador de métricas: Un adaptador de métricas, como el adaptador de métricas personalizadas de Stackdriver, es necesario 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 de modelos que usan la API de métricas externas de kube. Para implementar el adaptador, consulta la documentación del adaptador en GitHub.
Prueba los extremos de tu implementación
El servicio implementado se expone en el siguiente extremo:
http://model-model_server-service:port/
Prueba tu servicio. En otra terminal, ejecuta el siguiente comando para configurar la redirección de puertos:
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.
Supervisa tus cargas de trabajo de inferencia
Para supervisar tus cargas de trabajo de inferencia implementadas, ve al Explorador de métricas en la consola de Google Cloud.
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 ejecutan en servidores de modelos compatibles y, luego, implementa los recursos de PodMonitoring que permiten que estas métricas de 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 precompilados para supervisar aplicaciones de cargas de trabajo compatibles.
Soluciona problemas
- Si estableces la latencia demasiado baja, es posible que la Guía de inicio rápido de inferencia 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 inferencia 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 con ADC, debes configurarlo de forma manual. Ejecutagcloud config set billing/quota_project PROJECT_ID
para solucionar el problema.
¿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. En él, se abordan las prácticas recomendadas para la entrega de LLM con GPUs 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:
- Explora ejemplos adicionales, prácticas recomendadas y herramientas en el repositorio de ai-on-gke de GitHub.