Atrás

Desarrollador lucha con colorizador de registros intensivo en CPU creado por un LLM

Desarrollador lucha con colorizador de registros intensivo en CPU creado por un LLM

Antecedentes

Un programador buscó automatizar la creación de una herramienta de colorización de registros mediante la solicitud del modelo de lenguaje grande Claude. El objetivo era generar un script de Python separado que pudiera aceptar entrada por tuberías, analizar códigos de color ANSI y mostrar los registros dentro de una ventana desplazable.

El desafío

Claude produjo un script que inicialmente parecía funcionar: los registros se mostraban y el desplazamiento era posible. Sin embargo, cuando el desarrollador probó el desplazamiento horizontal más allá de una corta distancia, el uso de la CPU de la máquina host aumentó dramáticamente, iluminándose "como un árbol de Navidad en llamas". La herramienta consumió casi el 100 por ciento de un solo núcleo de CPU durante las operaciones de desplazamiento.

Explicación de la causa raíz

Cuando se le preguntó por qué la carga de la CPU era tan alta, el modelo explicó que el cuello de botella se debía a la forma en que la herramienta manejaba los redibujados de la pantalla. Cada nueva línea provocaba un redibujado completo de la altura de la terminal, y cada repetición de tecla, como mantener presionada una tecla de flecha, hacía que el programa escaneara todo el búfer, calculara el ancho visible y redibujara toda la vista. Este procesamiento exhaustivo para cada pequeña interacción resultó en el excesivo consumo de CPU.

Búsqueda de una solución de impacto cero en la CPU

El desarrollador solicitó una versión de la herramienta con "impacto cero en la CPU". Claude aclaró que lograr un impacto cero en la CPU no era factible dado la necesidad de analizar secuencias ANSI, dividir líneas y repintar la pantalla en cada evento de desplazamiento. En cambio, el modelo sugirió enfoques de bajo impacto que podrían reducir, pero no eliminar, la carga de procesamiento.

Optimizaciones intentadas

Siguiendo el consejo del modelo, el desarrollador y Claude experimentaron con varias estrategias de ajuste de rendimiento. La colaboración involucró consumir una cantidad sustancial de tokens a medida que el modelo generaba cambios de código y explicaciones incrementales. A pesar de estos esfuerzos, el desarrollador admitió una capacidad limitada para entender el código de Python en evolución, lo que obstaculizó la orientación y las pruebas efectivas.

Resultado

Después de varios días de interacción intensiva en tokens y revisiones de código, el esfuerzo de desarrollo llegó a un impasse. La herramienta siguió siendo intensiva en CPU durante el desplazamiento, y las optimizaciones de bajo impacto prometidas no entregaron una reducción satisfactoria en el uso de recursos. El desarrollador concluyó que el proyecto había llegado a un punto muerto, reconociendo tanto las capacidades como las limitaciones de confiar en un LLM para tareas de ingeniería de software críticas para el rendimiento.

Usado: News Factory APP - descubrimiento de noticias y automatización - ChatGPT para Empresas

También disponible en: