Limitación de tasa y disyuntores en sistemas de IA
Los sistemas de IA distribuidos son complejos. Manejan volúmenes enormes de solicitudes y una inferencia de modelos pesada. Dependes de clústeres de GPU, bases de datos y APIs de terceros. Un componente defectuoso o un pico de tráfico pueden colapsar todo tu sistema.
Necesitas dos herramientas para proteger tu sistema: la limitación de tasa (rate limiting) y los disyuntores (circuit breakers).
Limitación de tasa (Rate Limiting) La limitación de tasa impide que un solo usuario o servicio consuma demasiados recursos. Garantiza un acceso justo para todos.
Métodos comunes:
- Token Bucket: El mejor para la IA. Permite ráfagas cortas de actividad manteniendo un promedio constante.
- Leaky Bucket: Mantiene un flujo constante de solicitudes.
- Fixed Window: Simple, pero puede causar picos al inicio de una nueva ventana.
- Sliding Window: Más preciso que las ventanas fijas.
Consejo profesional para IA: Limita por recuento de tokens, no solo por solicitudes. Un prompt con 4,000 tokens consume más recursos que un prompt con 10 tokens.
Disyuntores (Circuit Breakers) Un disyuntor monitorea las llamadas a servicios como tu servidor de GPU o tu base de datos vectorial. Si un servicio falla demasiadas veces, el disyuntor se abre. Esto detiene inmediatamente todas las llamadas a ese servicio, lo que evita el colapso total del sistema.
El circuito sigue tres estados:
- Cerrado (Closed): Todo funciona normalmente.
- Abierto (Open): El servicio está fallando. Las llamadas fallan rápidamente o utilizan un mecanismo de respaldo (fallback).
- Semiabierto (Half-Open): El sistema prueba el servicio para ver si se ha recuperado.
Mejores prácticas:
- Rastrea las llamadas lentas. Si un LLM tarda demasiado, trátalo como un fallo.
- Separa los tipos de error. No actives el disyuntor por errores de usuario como 400 Bad Request. Actívalo solo por errores de conexión o tiempos de espera agotados (timeouts).
Comunidad de aprendizaje opcional: https://t.me/GyaanSetuAi