- Sam Altman anunció que ChatGPT atiende a aproximadamente 700 millones de usuarios por semana
- Al ejecutar un modelo de nivel GPT-4 en local, la falta de VRAM y la baja velocidad son graves, y surge la duda de cómo OpenAI maneja un uso a tan gran escala con baja latencia y alto rendimiento
- Quiere entender técnicas que van más allá de un simple clúster de GPU, como optimización de modelos, procesamiento distribuido, hardware dedicado y balanceo de carga
Resumen de los comentarios clave
1. Estructura de inferencia distribuida a gran escala
- Model Sharding
- Los parámetros se almacenan distribuidos entre varias GPU
- Cuando llega una solicitud, cada GPU realiza cálculos sobre su parte de los parámetros y luego se combinan los resultados
- Tensor Parallelism
- Varias GPU ejecutan en paralelo los cálculos dentro de una misma capa
- Pipeline Parallelism
- Las capas se dividen en varias etapas para procesarlas de forma secuencial y simultánea, como en una tubería
- Se usa paralelismo mixto para optimizar la memoria de GPU y la carga de cómputo
2. Optimización de memoria y velocidad
- Quantization: convierte los parámetros a una precisión de menos bits para reducir el uso de VRAM
- Offloading de capas: mueve algunas capas a la memoria de CPU cuando hace falta
- LoRA / Adapter Layers: solo se ajustan finamente tareas específicas (
fine-tuning), evitando recargar todo el modelo
- KV Caching: reutiliza el contexto para eliminar cálculos repetidos
3. Hardware dedicado y networking
- Uso masivo de NVIDIA H100, A100 y algunas TPU de última generación
- Transferencia de datos ultrarrápida entre GPU con NVLink y NVSwitch, y entre clústeres con Infiniband
- Construcción de una red troncal global entre centros de datos para minimizar la latencia
4. Distribución geográfica y balanceo de carga
- Despliegue de granjas de GPU en múltiples regiones del mundo
- Con GeoDNS, las solicitudes de los usuarios se conectan a la región más cercana
- Los clústeres de GPU se escalan dinámicamente según los patrones de tráfico
- Si una región concentra demasiada carga, el tráfico global se redistribuye
5. Optimización del procesamiento de solicitudes
- Batch Inference: agrupa solicitudes de varios usuarios para hacer la inferencia de una sola vez
- Preprocesamiento con modelos pequeños: las solicitudes simples se resuelven con modelos pequeños, y solo las complejas llaman a un modelo grande
- Caching de resultados: los resultados de prompts idénticos o solicitudes similares se devuelven de inmediato desde caché
- Prompt engineering evita desperdiciar tokens innecesariamente
6. Optimización operativa y de costos
- Se minimizan los recursos ociosos con monitoreo y scheduling del uso de GPU
- Mejora de la eficiencia energética de los centros de datos e incorporación de refrigeración líquida
- Mejora de la velocidad de inferencia con optimizaciones propias de compilador y runtime
- Operación de pipelines automatizados para actualización y despliegue de modelos
Ejemplo de flujo de arquitectura integral
- Recepción de la solicitud del usuario → enrutamiento a la región más cercana con GeoDNS
- Preprocesamiento → las solicitudes simples van a un modelo pequeño; solo las complejas se envían a un modelo grande
- Procesamiento de inferencia distribuida
- Se aplica model sharding + tensor parallelism + pipeline parallelism
- Se intercambian resultados intermedios mediante redes de alta velocidad entre GPU
- Posprocesamiento y caching de resultados → se guarda caché para solicitudes idénticas o similares
- Entrega de la respuesta → resultados en 1~2 segundos
Aún no hay comentarios.