n-version-programming

6 posts

El testing diferencial funciona sin una prueba formal, pero los fallos de modo común son el problema

El testing diferencial te permite encontrar bugs sin conocer la respuesta correcta. El problema es que los errores correlacionados parecen acuerdo. Así es como detectar los puntos ciegos.

Puedes confiar en el testing diferencial sin una prueba formal, pero solo si entiendes exactamente dónde se desmorona. La debilidad se llama common-mode…

Las pruebas no demostrarán que dos funciones sean equivalentes. Esto es lo que sí lo hará.

La programación en N versiones asume que tus implementaciones coinciden. Analizamos por qué las pruebas no bastan, cómo los solucionadores SMT pueden demostrar equivalencia realmente y dónde trazar la línea entre lo suficientemente bueno y lo formalmente verificado.

Construiste un sistema de N versiones. Tres implementaciones independientes de la misma función crítica, un votante que elige el resultado mayoritario y una…

¿Y si mis variantes de LLM discrepan? ¿Cuál tiene razón?

Ejecutar múltiples LLMs en paralelo detecta errores que cualquier modelo individual enviaría con total confianza. Así es como construir un sistema de resolución de discrepancias que realmente funciona.

Envías un prompt a GPT-4o. Devuelve un blob JSON con una confianza de 0.97. Envías el mismo prompt a Claude 3.5 Sonnet. Devuelve un blob JSON diferente,…

Cinco implementaciones y ninguna mayoría: cómo elegir realmente la mejor

La programación de N versiones suena simple: ejecutar varias implementaciones y elegir la mejor respuesta. En la práctica, 'mejor' es mucho más difícil de definir que 'más común'.

Tienes cinco implementaciones de la misma función. Tres devuelven el mismo resultado. Una es ligeramente diferente. Una lanza una excepción. ¿Cuál es la…

El mismo LLM puede escribir cinco versiones de tu función. Así es como hacerlas realmente diferentes.

La programación N-version con LLMs no requiere múltiples modelos. Puedes extraer implementaciones diversas y correctas de un solo modelo variando prompts, personas y restricciones de razonamiento.

La programación N-version asume que la diversidad proviene de diferentes autores. Con los LLMs, eso significa diferentes modelos, diferentes proveedores, tal…

NASA Ejecutó 27 Copias del Mismo Programa. Los Bugs Votaron en Bloque.

La programación N-version prometía que equipos independientes cometerían errores independientes. El experimento de Knight y Leveson en 1986 demostró lo contrario, y NASA abandonó la idea en silencio.

A principios de los años ochenta, NASA se enfrentó a una pregunta que aún atormenta a la ingeniería safety-critical hoy en día: ¿cómo toleras bugs que aún no…