Servicio de alto rendimiento con Triton Inference Server
Repositorio de modelos, model config.pbtxt, instancias de modelos simultáneas y batching dinámico.
Servicio de alto rendimiento con Triton Inference Server es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Qué es Triton
NVIDIA Triton Inference Server es un sistema de servicio listo para producción que aloja muchos modelos a la vez en CPU y GPU. Admite varios backends (TensorRT, ONNX, PyTorch, TensorFlow, Python) mediante una única API HTTP/gRPC, con procesamiento por lotes y concurrencia integrados.
El repositorio de modelos
Triton carga los modelos desde un repositorio de modelos: un directorio en el que cada modelo tiene su propia carpeta, una subcarpeta de versión numérica y un archivo config.pbtxt.
model_repository/
resnet50/
config.pbtxt
1/
model.onnx
bert/
config.pbtxt
1/
model.ptconfig.pbtxt: backend
El archivo config.pbtxt describe cómo debe ejecutar Triton un modelo. El backend (o plataforma) indica a Triton qué entorno de ejecución debe usar.
name: "resnet50"
backend: "onnxruntime"
max_batch_size: 32Tensores de entrada y salida
Debe declarar cada entrada y salida: su nombre, tipo de datos y dims del tensor (forma). Las formas deben coincidir con lo que espera el modelo. La dimensión de lote inicial está implícita en max_batch_size.
input [
{
name: "input"
data_type: TYPE_FP32
dims: [ 3, 224, 224 ]
}
]
output [
{
name: "output"
data_type: TYPE_FP32
dims: [ 1000 ]
}
]Tipos de datos
Triton utiliza tipos de datos de tensor explícitos para que los clientes y el modelo coincidan en la disposición de bytes:
TYPE_FP32coma flotante de 32 bits (habitual en imágenes)TYPE_FP16precisión media (más rápida en GPU)TYPE_INT64identificadores de tokens para PLNTYPE_INT8modelos cuantizados
Procesamiento dinámico por lotes: la idea
El procesamiento dinámico por lotes permite que Triton combine varias solicitudes entrantes en un lote más grande antes de ejecutar el modelo. Las GPU son mucho más eficientes con lotes grandes, por lo que esto aumenta considerablemente el rendimiento sin cambiar el código del cliente.
Configurar el procesamiento dinámico por lotes
Se habilita en la configuración y se establece cuánto tiempo espera Triton para reunir solicitudes. Un valor pequeño de max_queue_delay_microseconds intercambia un poco de latencia por un rendimiento mucho mayor.
dynamic_batching {
preferred_batch_size: [ 8, 16 ]
max_queue_delay_microseconds: 1000
}Instancias de modelo simultáneas
De forma predeterminada, Triton ejecuta una copia (instancia) de un modelo. Con instance_group puede ejecutar varias instancias en paralelo en una o más GPU, procesando solicitudes independientes simultáneamente y mejorando el aprovechamiento.
instance_group [
{
count: 2
kind: KIND_GPU
gpus: [ 0 ]
}
]Procesamiento por lotes frente a concurrencia
Resuelven problemas diferentes:
- Procesamiento dinámico por lotes fusiona solicitudes en una única llamada al modelo (rendimiento por llamada)
- Instancias simultáneas ejecutan varias llamadas al modelo a la vez (paralelismo)
Son técnicas complementarias; las configuraciones de producción suelen utilizar ambas.
perf_analyzer
perf_analyzer es una herramienta de Triton que carga el servidor con solicitudes sintéticas e informa del rendimiento (inferencias por segundo) y de los percentiles de latencia. Úsela para encontrar la configuración de lote y concurrencia que maximice el rendimiento dentro de su presupuesto de latencia.
perf_analyzer -m resnet50 \
--concurrency-range 1:8 \
--percentile 95Leer el resultado de perf_analyzer
La herramienta recorre distintos niveles de concurrencia e imprime el rendimiento y la latencia de cada uno. Debe buscar el punto de inflexión de la curva: el punto en el que aumentar la concurrencia deja de mejorar el rendimiento o hace que la latencia P95 supere su límite.
# Concurrency: 4, throughput: 1820 infer/sec, p95 latency: 9.1 ms
# Concurrency: 8, throughput: 1905 infer/sec, p95 latency: 17.4 msComprobación rápida
Compruebe cuánto sabe sobre Triton.
Resumen
Ha aprendido a ofrecer servicios de alto rendimiento con Triton:
- Repositorio de modelos: carpetas por modelo con subdirectorios de versión y
config.pbtxt config.pbtxtdeclara el backend, las formas de los tensores de entrada y salida y los tipos de datos- El procesamiento dinámico por lotes aumenta el rendimiento; las instancias simultáneas añaden paralelismo
- perf_analyzer compara rendimiento y latencia para ajustar la configuración
Preguntas frecuentes
¿La lección «Servicio de alto rendimiento con Triton Inference Server» es gratis?
Sí — el texto completo de «Servicio de alto rendimiento con Triton Inference Server» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Servicio de alto rendimiento con Triton Inference Server»?
Repositorio de modelos, model config.pbtxt, instancias de modelos simultáneas y batching dinámico. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Servicio de alto rendimiento con Triton Inference Server»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Contenerización de modelos de ML con Docker
- Despliegue en la nube: AWS SageMaker
- Servicio de alto rendimiento con Triton Inference Server
- Escalado y autoescalado de endpoints de modelos