Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Inferencia y orquestación de la CPU
Descripción general de
Las instancias de CPU son una opción de procesamiento de primera clase para una amplia gama de cargas de trabajo de IA en Amazon EKS. Desde modelos de lenguaje reducido (SLM) y la clásica inferencia de aprendizaje automático hasta canalizaciones de datos y orquestación de agentes, las CPU ofrecen una excelente relación precio-rendimiento, una amplia disponibilidad de capacidad y una semántica de programación familiar de Kubernetes.
La CPU y la GPU son complementarias, no competitivas. A medida que los procesos de inteligencia artificial de los agentes se van haciendo más complejos, la superficie de trabajo de la CPU crece con ellos: cada llamada de inferencia va acompañada de la ejecución de herramientas, el ensamblaje del contexto, la búsqueda vectorial, las barreras y la lógica de orquestación que se ejecuta en la CPU. Recomendamos diseñar arquitecturas que utilicen ambos tipos de procesamiento de forma deliberada, colocando cada carga de trabajo en el nivel en el que ofrezca la mejor relación costo-rendimiento.
No todas las cargas de trabajo necesitan una GPU. El enrutamiento, la clasificación, la recuperación, la incrustación, la orquestación y una parte cada vez mayor de la inferencia de modelos de lenguaje se ejecutan de forma eficaz en la CPU. Current-generation Las instancias de CPU de arm64 y x86 ofrecen una excelente relación precio-rendimiento para la inferencia de aprendizaje automático. En combinación con la consolidación de nodos de Karpenter, el escalado basado en eventos de KEDA y el servicio cuantificado de modelos, esto proporciona una solución lista para la producción que los equipos de plataformas pueden utilizar sin una gran experiencia en GPU.
Esta guía es para:
-
Los ingenieros de plataformas diseñan clústeres EKS multiusuario para cargas de trabajo de IA.
-
Los profesionales del aprendizaje automático evalúan los backends de inferencia para modelos con parámetros inferiores a 30 000 B.
-
FinOps equipos que buscan palancas de costes concretas sin sacrificar los SLO.
Qué aprenderá:
-
Qué cargas de trabajo de IA pertenecen a las CPU y dónde se necesitan las GPU o Trainium.
-
Cómo aplicar un marco de decisión cuatridimensional a cualquier carga de trabajo nueva.
-
Dos patrones de producción: prefiltrado SLM con agentes y granjas modelo de alta densidad.
-
Mejores prácticas de optimización: cuantificación, empaquetado en contenedores, programación puntual y escalado automático.
aviso
Todas las recomendaciones de esta guía deben validarse empíricamente. La familia de instancias adecuada (arm64, x86, GPU o Trainium) depende del modelo, los datos y el presupuesto de latencia. Usa esta guía como punto de partida bien fundamentado y, a continuación, compárala antes de comprometerte.
¿Por qué usar CPU para cargas de trabajo de IA?
Los canales de IA de producción distribuyen el trabajo en muchos niveles de cómputo. Las CPU gestionan el enrutamiento, la clasificación, la recuperación, la orquestación y una parte cada vez mayor de las inferencias. Current-generation Las instancias de CPU ofrecen una buena relación precio-rendimiento y una programación conocida de Kubernetes, lo que las convierte en una opción práctica para muchas cargas de trabajo de IA.
Hay tres factores que hacen que la CPU sea atractiva para estas cargas de trabajo:
Capacidad y disponibilidad
Las instancias de GPU suelen requerir reservas de capacidad con semanas de antelación. Las instancias de CPU están ampliamente disponibles en todas las regiones de AWS sin complementos de dispositivo especializados, sin configuración de DRA ni particiones MIG. Cuando necesite escalar rápidamente, la capacidad de la CPU es la opción más disponible.
Economía
Current-generation Las instancias de CPU ofrecen una buena relación precio-rendimiento para la inferencia de aprendizaje automático. Para los equipos que realizan FinOps revisiones o administran clústeres con varios usuarios, la diferencia de coste entre la CPU y la GPU es significativa, especialmente en el caso de los SLM cuantificados, en los que la aceleración de la GPU ofrece una rentabilidad decreciente. Recomendamos realizar una evaluación comparativa de las familias de instancias disponibles (Graviton, AMD e Intel) para encontrar el mejor coste por token para su carga de trabajo.
Simplicidad operativa
Los módulos de CPU utilizan la programación estándar de Kubernetes (afinidad de nodos requestslimits, distribución de topología). Sin complementos de dispositivo, sin programadores personalizados, sin tipos de recursos. nvidia.com/gpu Los equipos que desean ejecutar cargas de trabajo de IA sin una gran experiencia en GPU pueden acelerar la producción en la CPU.
Aumenta la superficie de la CPU en las canalizaciones de agentes
En los procesos de inteligencia artificial de los agentes, cada llamada de inferencia de la GPU va acompañada de trabajo de la CPU: ejecución de herramientas, ensamblaje del contexto, búsqueda vectorial, incrustación de búsquedas, barreras de protección, validación de respuestas, gestión de la memoria y lógica de orquestación. A medida que los agentes se hacen más complejos (más herramientas, cadenas más largas, razonamiento en varios pasos), estas cargas de trabajo de la CPU crecen de forma superlineal. Protocolos como el MCP (Model Context Protocol) lo amplifican aún más: cada llamada a la herramienta MCP desencadena la recuperación, la transformación y el formateo de datos que se ejecutan íntegramente en la CPU.
CPU o GPU/Trainium: ¿cuándo elegir cada una
| Factor | Elige CPU | Elige GPU/Trainium |
|---|---|---|
|
Tamaño del modelo |
SLM 1-8B (cuantificados); incrustaciones; clasificadores |
Más de 8 mil millones para inferencias en línea de baja latencia; más de 70 mil millones en general |
|
Latencia SLO |
p95 (100-500 ms) aceptable |
p95 < 50 ms (se requiere menos de 50 ms |
|
Concurrency (Simultaneidad) |
< 100 req/s por punto final |
> 100 req/s sostenidos |
|
Tipo de carga de trabajo |
Orquestación, recuperación, ETL, puntuación por lotes |
Inferencia, ajuste y formación en línea |
|
Capacidad |
Disponibilidad inmediata, sin reservas |
A menudo requiere capacidad reservada |
|
Sensibilidad a los costos |
La CPU ofrece los mejores precios por token para las cargas de trabajo aptas |
La GPU se amortiza cuando se utiliza mucho |
|
Experiencia del equipo |
Operaciones estándar de Kubernetes |
Requiere conocimientos sobre las operaciones de la GPU |
|
Soberanía de datos |
Inferencia de SLM en VPC; registro de auditoría completo; los datos nunca salen de su cuenta |
Lo mismo si se autogestiona; no está disponible con API externas |
sugerencia
Estos umbrales son puntos de partida. Te recomendamos que ejecutes el motor de inferencia de destino en las familias de instancias candidatas (arm64 y x86) con tu modelo y patrón de tráfico reales antes de decidirte por un nivel de cómputo.
Marco de decisiones sobre cargas de trabajo
La elección del cómputo adecuado para una carga de trabajo de IA se reduce a cuatro dimensiones:
-
Tamaño y precisión del modelo: ¿La cuantificación mantiene la calidad dentro del rango aceptable?
-
SLO de latencia y rendimiento: ¿Cuáles son sus p50/p95 objetivos y las tasas máximas de solicitudes?
-
Tipo de carga de trabajo: ¿inferencia en línea, puntuación por lotes, recuperación u orquestación?
-
Restricciones de costo y capacidad: ¿ FinOps presupuesto, disponibilidad regional, estrategia de reservas?
Utilice la siguiente tabla como matriz de decisiones.
| Carga de trabajo | CPU | GPU/Trainium | Notas |
|---|---|---|---|
|
SLM (parámetros de 1 a 8 GB, cuantificados) |
Opción por defecto. Excelente relación precio-rendimiento con una latencia de 100 a 500 ms, QPS moderado. Compare todas las familias de instancias. |
Cuando p95 <50ms or concurrency >100 req/s. |
Se recomienda la cuantificación Q4_K_M o Q8_0 |
|
Modelos medianos (parámetros 8-30B) |
Puntuación por lotes, asíncrona y fuera de línea. Pruebe la cuantificación del cuarto trimestre. |
Inferencia en línea, contextos largos, latencia estrecha. |
Compare el cuarto trimestre en todas las familias de instancias |
|
LLM de gran tamaño (más de 70 000 millones de parámetros) |
Non-real-time solo, cuantificación pesada |
Predeterminado para la inferencia en línea de producción |
Incluso 70 GB pueden funcionar en la CPU; se espera una latencia alta |
|
ML clásico, incrustaciones, CV |
High-density servir; empaquetar en contenedores entre nodos. |
Visión intensa o multimodal a escala. |
TorchServe, Triton en la CPU maneja miles de modelos. |
|
Flujos de datos, ETL, datos sintéticos |
Ray y Spark en la CPU para la preparación de datos y la ingeniería de funciones. |
N/A |
Las CPU son la base de toda esta etapa de preparación de datos |
|
Orquestación de agentes y recuperación de RAG |
Network-bound servicios: pasarelas de API, capas de proxy, recuperadores, fragmentadores. |
N/A |
Ventajas de las instancias de CPU con un gran ancho de banda. |
|
Fine-tuning /Capacitación |
Preparación de datos y organización de canalizaciones. |
Capacitación y destilación de modelos. |
Híbrido: preparación de la CPU, tren de GPU, inferencia de CPU. |
|
Compliance-sensitive inferencia (FSI, sanidad, gobierno) |
Los SLM en la VPC de la CPU. Los datos permanecen en la cuenta, todo el registro de auditoría. |
Lo mismo si se autogestiona en la GPU. |
La CPU gana en cuanto a costes para los modelos sub-8B en entornos regulados. |
aviso
Si bien técnicamente es posible ejecutar más de 70 000 millones de modelos en la CPU con una cuantificación elevada (el cuarto trimestre o inferior), esto solo es viable para cargas de trabajo en tiempo no real, fuera de línea o por lotes. Espere tasas de generación de fichas bajas de un solo dígito (de 1 a 5 tokens/sec), requisitos de memoria superiores a 40 GB incluso en el cuarto trimestre y una latencia medida en minutos por respuesta para obtener resultados más largos. Para cualquier caso de uso interactivo o sensible a la latencia, los modelos de más de 70 000 millones son compatibles con GPU o Trainium.
Flujo de trabajo comparativo rápido
Antes de decidirte por una familia de instancias, te recomendamos realizar una evaluación comparativa estructurada en la que se comparen las familias de CPU candidatas (arm64 y x86) con las de GPU en función de una única métrica comparable: el coste por cada 1000 consultas con la latencia de p95 objetivo. Implementa un nodo por familia con una configuración de modelo idéntica (misma cuantificación, tamaño de contexto y número de subprocesos), realiza pruebas de carga para cada uno de ellos y compara. Si una instancia de CPU cumple con el SLO de tu p95, es probable que gane en cuanto a costes. Si no lo consigue por un pequeño margen, prueba la última generación de esa familia antes de pasarte a la GPU. Si la latencia sigue siendo demasiado alta en tu objetivo de simultaneidad, esa es la señal para transferir la carga de trabajo a la GPU.
Patrones de producción
Patrón 1: IA de agencia: SLM Pre-Filter en la CPU con escalación de LLM
La mayoría de los flujos de trabajo de los agentes ejecutan los mismos patrones restringidos de forma repetida: clasifican la solicitud, eligen una herramienta, extraen datos estructurados y validan una respuesta. Estas tareas no requieren un modelo de 70 B de parámetros.
Las investigaciones sobre los SLM (ar Xiv:2506.02153
En este patrón, un SLM en la CPU gestiona la mayoría de las solicitudes de principio a fin. Una capa de enrutamiento (que también se ejecuta en la CPU) escala solo los casos realmente complejos a un GPU-hosted LLM.
Componentes que se ejecutan en la CPU:
-
Capa de pasarela/proxy de API: gestiona la autenticación, el enrutamiento y la limitación de velocidad
-
Organizador de agentes: gestiona las llamadas y el estado de las herramientas
-
Servicio de inferencia SLM: modelo cuantificado de 1 a 8 B que utiliza un motor de inferencia como llama.cpp
, Ollama o vLLM en la CPU -
OpenSearch Recuperación vectorial: en nodos de CPU
Componentes de: GPU/Trainium
-
Gran LLM para síntesis compleja y razonamiento de contexto prolongado
Por qué funciona este patrón: en muchos flujos de trabajo de agencias, un SLM puede clasificar o extraer del 60 al 80% de las solicitudes. Por cada llamada de LLM que evites, también evitas el trabajo de la CPU que supone armar una ventana de contexto de gran tamaño, poner barreras en caso de respuesta prolongada y gestionar estados complejos. El nivel de CPU se escala de forma independiente del nivel de GPU.
Las categorías de carga de trabajo de la CPU en una canalización de agencias típica incluyen: ejecución de herramientas (llamadas al servidor MCP, llamadas a la API, consultas a bases de datos), ensamblaje de contextos, búsqueda vectorial e incrustación de búsquedas, lógica de orquestación y planificación, filtros de seguridad y barreras de seguridad, validación y formateo de respuestas, memoria de agentes y administración del estado, y. logging/observability
Este patrón también se ajusta a un ciclo de vida de ajuste preciso: recopile datos de dominio en los nodos de la CPU, realice ajustes en la GPU y, a continuación, vuelva a implementar el modelo cuantificado en la CPU para realizar inferencias a un costo sustancialmente menor que un punto final LLM. Una investigación de LoRa Land (ar Xiv:2405.00732
Patrón 2: CPU Model Farm High-Density
Los canales de aprendizaje automático de producción utilizan de forma rutinaria cientos o miles de modelos más pequeños: incrustaciones, recomendadores, clasificadores, calificadores y modelos de visión artificial BERT-based . Estos modelos, que son ligeros por sí solos, se vuelven caros cuando a cada uno se le asignan sus propios recursos de GPU.
Recomendamos un servicio de CPU de alta densidad (agrupar varios modelos por nodo TorchServe o utilizar Triton en la CPU), con Karpenter gestionando el ciclo de vida de los nodos y KEDA escalando en función de la carga observada.
Este patrón se extiende de forma natural a las arquitecturas RAG: la incrustación, la generación, la fragmentación de documentos y la recuperación, OpenSearch todo ello se ejecuta de forma rentable en los nodos de la CPU, y los resultados se envían a un LLM solo para el último paso de generación. GPU-hosted La granja de CPU gestiona el volumen; la GPU, la complejidad.
Para los sectores regulados (servicios financieros, sanidad, gobierno), este patrón es especialmente atractivo: cientos de modelos especializados que se ejecutan en la VPC en la CPU, con registros de auditoría completos y datos que nunca salen de la cuenta. El requisito de conformidad para la autogestión de las inferencias se alinea naturalmente con la ventaja económica que supone la CPU para los modelos sub-8B.
Mejores prácticas de optimización
Cuantización
No es práctico ejecutar un modelo 7B con un BF16 completo en la CPU; ejecutarlo con la cuantificación del cuarto trimestre es viable y rentable. Comprender por qué la cuantificación ayuda a la CPU es clave para tomar buenas decisiones de infraestructura.
Por qué la cuantificación es importante para la inferencia de la CPU. La inferencia de la CPU depende del ancho de banda de la memoria, no del cómputo. Durante la fase de decodificación (generación de los tokens de uno en uno), se leen todos los pesos del modelo en la RAM para cada token producido. La CPU pasa la mayor parte del tiempo esperando a que lleguen los datos de la memoria, no haciendo cálculos. Un modelo 7B con el modelo BF16 ocupa aproximadamente 14 GB; en el modelo Q4_K_M, se reduce a unos 4 GB. Como el obstáculo es el traslado de bytes de la RAM a los núcleos de la CPU, un modelo 3,5 veces más pequeño lee 3,5 veces más rápido, lo que se traduce casi directamente en una generación de fichas 3,5 veces más rápida. Esta es la razón por la que la cuantificación es la optimización más impactante para la inferencia de la CPU y por la que las nuevas generaciones de CPU con más canales de memoria producen inferencias más rápidas incluso a la misma velocidad de reloj.
Recomendamos crear su motor de inferencia con backends optimizados para la arquitectura (ARM NEON/SVE2 para arm64, AVX-512/AMX para x86), establecer el recuento de subprocesos igual al recuento de vCPU y seleccionar los formatos de cuantificación Q4_K_M o Q8_0.
| Cuantización | Impacto en la calidad | Rendimiento frente al BF16 | Caso de uso |
|---|---|---|---|
|
Q4_K_M |
Bajo (delta de perplejidad del 1 al 3%, depende del modelo) |
~4-5 veces más rápido |
Producto predeterminado de producción para los SLM |
|
Q8_0 |
Insignificante |
~ 2 veces más rápido |
Quality-sensitive tareas |
|
Q5_K_M |
Muy bajo |
~3,5 veces más rápido |
Equilibrio entre calidad y velocidad |
|
BF16 |
Ninguno |
1x (línea de base) |
Evite el uso de la CPU para los modelos 7B o más |
En los modelos sub-2B, la CPU gana en relación precio-rendimiento frente a la GPU. Estos modelos son lo suficientemente pequeños como para que la aceleración de la GPU proporcione un beneficio mínimo, mientras que el costo por hora es significativamente mayor. Si su carga de trabajo puede utilizar un modelo inferior a 2B, la CPU es el valor predeterminado recomendado.
Architecture-specific optimizaciones: en arm64, las instancias Graviton de la generación actual son compatibles con el SVE2. Cree su motor de inferencia con la bandera adecuada para su objetivo. -march En la versión x86, son compatibles AVX-512 con las instancias EPYC de AMD y las instancias Intel Xeon añaden AMX para la aceleración matricial. Como la inferencia depende del ancho de banda de la memoria, las nuevas generaciones de CPU con más canales de memoria DDR5 producen inferencias más rápidas incluso a la misma velocidad de reloj. Al elegir los tipos de instancias, priorice el ancho de banda de la memoria por encima del número de núcleos.
Dimensionamiento de la ventana de contexto: en el caso de las cargas de trabajo de clasificación y enrutamiento, las entradas suelen tener menos de 200 fichas y las salidas, de 2 a 3 fichas. Si se establece una ventana de contexto pequeña (por ejemplo, 512 fichas) en lugar de la predeterminada de 2048, se reduce el uso de memoria caché en KV y se mejora la latencia por solicitud. Aumente la ventana de contexto únicamente si las entradas son realmente largas.
Flash Attention: active Flash Attention si su motor de inferencia lo admite. Flash Attention reduce el uso de memoria para el cálculo de la atención al evitar la materialización de toda la matriz de atención. En la CPU, el beneficio es menor que en la GPU, pero sigue siendo útil para entradas más largas.
sugerencia
La degradación de la calidad del Q4_K_M varía según el modelo y la tarea. Evalúe siempre en su propio conjunto de datos antes de implementarlo en producción.
Bin-packing para un servicio denso
Para los modelos clásicos de aprendizaje automático e incrustación (normalmente de menos de 500 MB cada uno), el objetivo es la máxima densidad de pods por nodo con una latencia de cola estable. Hay dos factores que determinan si lo logras: solicitudes de recursos precisas y subprocesos controlados.
Base su uso observado requests de p50-p90 bajo una carga realista. Utilice Ricitos de Oro, recomendaciones de VPA o histogramas de Prometheus de una prueba de carga. Los valores predeterminados casi siempre son incorrectos en ambas direcciones.
Las bibliotecas ML (PyTorchONNX Runtime, MKL, OpenBLAS) generan tantos subprocesos como vCPU pueden ver en el nodo, no las CPU asignadas al pod. En un nodo denso con 20 pods, cada pod intenta generar 32 subprocesos. El nodo se acelera al cambiar de contexto y la latencia de p99 aumenta. Corrija esto de forma explícita:
env: - name: OMP_NUM_THREADS value: "2" # match your cpu request (2000m = 2 threads) - name: MKL_NUM_THREADS value: "2" - name: OPENBLAS_NUM_THREADS value: "2" - name: INTRA_OP_NUM_THREADS # PyTorch / ONNX Runtime value: "2" - name: NUM_INTER_THREADS value: "1" # keep inter-op parallelism minimal
Establezca cada valor igual o inferior a su solicitud de CPU. Para los módulos con más de 4 núcleos, el punto de referencia comienza con 2 a 4 subprocesos. Muchos modelos pequeños funcionan mejor con menos subprocesos debido a la eficiencia de la memoria caché. Si usa HPA con muchos módulos delgados, casi siempre ganan entre 1 y 2 subprocesos por módulo.
Programación y optimización de costes
Dos prácticas se combinan para reducir considerablemente los costes de inferencia de la CPU: las instancias puntuales con la consolidación de Karpenter y las imágenes de contenedores de varios arcos.
La consolidación de Karpenter funciona bien para la inferencia de la CPU, ya que los módulos de inferencia sin estado situados detrás de una cola o un balanceador de carga toleran las interrupciones sin problemas. Configure la consolidación para actuar en los nodos infrautilizados con un presupuesto que limite las interrupciones simultáneas (por ejemplo, el 20% de los nodos a la vez) a fin de evitar caídas de capacidad durante la reducción de la escala. Las nodePool especificaciones de Karpenter permiten combinar Spot y On-Demand capacidad en un solo grupo, con Spot como la opción preferida y como alternativa. On-Demand
La creación de imágenes con varios arcos (arm64yamd64) desbloquea aún más esta funcionalidad. Con ambas arquitecturas disponibles, Karpenter puede seleccionar entre una amplia gama de familias de instancias (Graviton, AMD, Intel) en función del precio y la disponibilidad en tiempo real. Esto resulta especialmente útil para las cargas de trabajo puntuales, en las que la diversificación entre tipos de instancias y arquitecturas reduce la frecuencia de las interrupciones. Utilice docker buildx una canalización de CI con compilaciones multiplataforma para producir un único manifiesto que abarque ambas arquitecturas.
Optimización del inicio de contenedores
Cuando Karpenter aprovisiona un nuevo nodo (ampliándolo o reemplazándolo por Spot), el motor de ejecución del contenedor debe extraer la imagen de inferencia antes de que el pod pueda iniciarse. En el caso de imágenes de inferencia de varios GB, esto puede añadir entre 30 y 60 segundos al inicio del pod.
Recomendamos usar Bottlerocket
Para obtener una guía de configuración detallada, consulte la sección Rendimiento de esta guía, que trata sobre la configuración de SOCI, la extracción previa de instantáneas de EBS y las estrategias de caché en tiempo de ejecución de los contenedores.
Observabilidad
Sin observabilidad en la capa del modelo, se escala a ciegas. Recomendamos exponer las métricas de Prometheus para cada servicio de inferencia y utilizarlas para impulsar los paneles operativos y de escalado de KEDA.
La mayoría de los servidores de inferencia (llama.cpp, vLLM, Triton) exponen las métricas en un punto final. TorchServe Prometheus-compatible /metrics Los nombres de las métricas varían según el servidor, pero los conceptos son los mismos.
Métricas clave para instrumentar:
| Categoría métrica | Description (Descripción) | Umbral de alerta |
|---|---|---|
|
Procesamiento de solicitudes o en curso |
Número de solicitudes gestionadas actualmente por el servidor. |
Úselo para escalar (consulte la sección de escalado automático a continuación) |
|
Solicitudes en cola o aplazadas |
Número de solicitudes en espera de un intervalo de procesamiento. |
Activador de escala. Cualquier cola sostenida significa que la latencia está a punto de degradarse. |
|
Rendimiento simbólico |
Tokens generados por segundo. |
Alerte si el rendimiento cae por debajo del 50% de la línea base bajo carga |
|
Solicita latencia |
End-to-end histograma de latencia (procesamiento rápido más generación de token). |
Alerta si el p95 supera tu SLO |
|
Utilización de caché KV |
Cuán llena está la caché clave-valor (de 0,0 a 1,0). Si se acerca a 1,0, el servidor empezará a rechazar o poner en cola las solicitudes. |
Alerta a más del 85% |
|
Memoria de contenedores |
Memoria RSS por pod ( |
Alerta al 85% del límite |
Escalado automático: escala en función de la profundidad de la cola, no del uso de la CPU
La utilización de la CPU es una métrica de saturación. Alcanza su punto máximo cuando la latencia ya se ha degradado. Cuando el escalado automático basado en la utilización reacciona, los usuarios ya están esperando.
La profundidad de las colas (solicitudes deferred/waiting) es uno de los principales indicadores. Aumenta antes de que disminuya la latencia, ya que las solicitudes comienzan a ponerse en cola cuando todos los espacios de procesamiento están ocupados. Al aumentar la profundidad de las colas, se aprovisionan nuevas réplicas mientras las existentes siguen respondiendo con normalidad.
KEDA admite la combinación de múltiples métricas en una sola fórmula de escalado mediante scalingModifiers (requiere KEDA 2.12+). El patrón recomendado para las cargas de trabajo de inferencia consiste en combinar las solicitudes en curso con las solicitudes en cola, lo que supone una gran ponderación de la métrica de colas:
advanced: scalingModifiers: formula: "running + (waiting * 10)" target: "25" activationTarget: "5"
La fórmula running + (waiting * 10) significa que incluso 3 solicitudes en cola elevan la métrica combinada a 55, muy por encima del objetivo de 25. El escalado se activa antes de que la latencia disminuya. El valor activationTarget de 5 evita que el ruido desencadene eventos innecesarios de escala desde cero.
Evaluación de la calidad del modelo para las cargas de trabajo CPU-First
La implementación de un SLM cuantificado en la CPU es una decisión de costo y latencia. Solo tiene sentido si el modelo sigue produciendo resultados correctos y útiles para su carga de trabajo.
Los modelos más pequeños o la cuantificación reducen los costes informáticos, pero pueden reducir la calidad. El impacto varía. Las cargas de trabajo que funcionan bien en la CPU (clasificación, extracción, enrutamiento, resumen, incrustaciones) suelen conservar una buena calidad en el B-7B rango de 3 si cuentan con la cuantificación y los avisos adecuados.
¿Qué evaluar
Las diferentes cargas de trabajo se degradan de diferentes maneras:
| Carga de trabajo | ¿Qué puede degradarse | ¿Qué medir |
|---|---|---|
|
Intención o clasificación de los billetes |
Errores en entradas ambiguas |
Precisión, F1 por clase |
|
Extracción estructurada (JSON) |
Faltan campos o un esquema incorrecto |
Coincidencia exacta, validez del esquema |
|
RAG responde |
¿Alucinaciones o ignorar el contexto |
Fidelidad, relevancia de la respuesta |
|
Resumen |
Datos faltantes o cobertura deficiente |
ROUGE-L, BertScore, revisión humana |
|
Enrutamiento de agentes |
¿Seleccionar la herramienta incorrecta |
Precisión de la herramienta |
|
Incrustaciones |
Peor calidad de recuperación |
Recordemos @K, NDCG |
Un flujo de trabajo de evaluación práctico
Recomendamos crear un control de calidad antes de la producción, de forma similar a como se realizaría una prueba de carga antes de elegir un tipo de instancia. El flujo de trabajo consta de cuatro etapas:
-
Cree un conjunto de datos de evaluación: cree un conjunto de datos de evaluación pequeño (de 100 a 300 ejemplos etiquetados) a partir de su carga de trabajo real. Evite los puntos de referencia genéricos, como el MMLU, que miden el razonamiento general en lugar de su tarea real.
-
Establezca una base de referencia: ejecute el conjunto de datos con un modelo confiable (por ejemplo, un LLM grande que sepa que produce resultados correctos).
-
Pruebe el modelo de CPU: ejecute el mismo conjunto de datos en su SLM cuantificado y compárelo.
-
Evalúe: defina su umbral de calidad antes de realizar la prueba, por ejemplo, «una precisión del SLM dentro de los 5 puntos porcentuales de la línea base». El umbral correcto depende de la tarea: un clasificador revisado por personas puede tolerar más errores que un sistema que toma decisiones automáticamente.
¿Cómo recuperar la calidad
Si el modelo funciona mal, pruebe lo siguiente en orden de esfuerzo:
-
Añada algunos ejemplos prácticos en el mensaje: Coste cero, inmediato. Incluir de 3 a 5 ejemplos etiquetados en el mensaje suele cerrar las brechas en las tareas de clasificación y extracción.
-
Utilice un formato de cuantificación de mayor calidad: pasar del cuarto trimestre al octavo trimestre suele recuperar gran parte de la calidad perdida, a costa de aproximadamente el doble de memoria y un menor rendimiento.
-
Utilice el enrutamiento híbrido: deje que el SLM se ocupe de casos sencillos y envíe entradas difíciles a un modelo más grande. Se trata de un cambio de arquitectura, pero mantiene el coste de la CPU bajo para la mayor parte del tráfico.
-
Fine-tune el modelo de tu dominio: la opción más cara, pero la más eficaz. Una investigación de LoRa Land (ar Xiv:2405.00732
) descubrió que los modelos 7B ajustados tienen un rendimiento superior en la mayoría de las tareas GPT-4 probadas para dominios específicos.