Análisis de Zhipu sobre GLM-5 «El problema de los caracteres ilegibles»: millones de llamadas diarias del Agente de Codificación, dos bugs de condición de carrera ocultos en la caché KV

Según la monitorización de Beating, Zhipu publicó un análisis sobre los problemas de caracteres ilegibles, repeticiones y caracteres poco comunes que aparecían en la serie de modelos GLM-5 en el escenario de Coding Agent. Desde marzo, algunos usuarios reportaron que estas anomalías solo se activaban en tareas de Coding Agent con alta concurrencia y contextos largos (promedio superior a 70K tokens), y no podían reproducirse en entornos de inferencia estándar.

Zhipu afirmó que su sistema de inferencia soporta miles de millones de llamadas diarias a Coding Agent.

Tras varias semanas de investigación, el equipo identificó dos bugs de competencia en el nivel base que eran independientes entre sí. El primero ocurrió en la arquitectura de separación PD (desplegar la prellenado y la decodificación en nodos diferentes): tras un timeout en la decodificación, se recuperó el KV Cache (que almacena los estados de atención ya calculados para evitar recomputaciones), pero la escritura RDMA en la prellenado aún no había terminado, y una nueva solicitud se asignó a la misma memoria de video, sobrescribiendo datos antiguos con nuevos. La solución fue agregar una sincronización explícita antes de la recuperación, confirmando que la escritura había finalizado antes de liberar. Después del despliegue, la tasa de anomalías bajó de más de 0.1% a menos del 0.03%.

El segundo bug ocurrió en HiCache (KV Cache multinivel): al cargar en memoria del CPU de forma asíncrona en la caché, faltaba un punto de sincronización entre la línea de carga y la de cálculo, por lo que el cálculo podía comenzar a leer datos aún no cargados. Tras la corrección, estas anomalías desaparecieron por completo, y el parche fue enviado a la comunidad SGLang (PR #22811).

Durante la investigación, también se descubrió un hallazgo inesperado: el índice de aceptación de la muestra especulativa (una técnica de aceleración que predice tokens con un modelo pequeño y luego verifica con uno grande) puede servir como señal de detección de anomalías. Cuando hay caracteres ilegibles, casi todos los tokens en borrador son rechazados; en las repeticiones, la tasa de aceptación es anormalmente alta. El equipo implementó un monitoreo en línea: si se supera un umbral, se detiene automáticamente la generación y se reintenta.

Tras corregir los bugs, el equipo optimizó un cuello de botella: el almacenamiento en capas del KV Cache LayerSplit, donde cada GPU solo almacena parte de las capas en lugar de toda la caché, mediante cálculo colaborativo por difusión. Con una tasa de acierto del 90%, al aumentar la longitud del contexto de 40K a 120K tokens, la capacidad de procesamiento mejoró entre un 10% y un 132%, y cuanto más largo el contexto, mayores las ganancias.

Ver original
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
Añadir un comentario
Añadir un comentario
Sin comentarios
  • Anclado