n-version-programming

6 posts

Differential Testing Funciona Sem uma Prova Formal, mas Common-Mode Failures São o Problema

Differential testing permite encontrar bugs sem saber a resposta correta. O problema é que erros correlacionados parecem concordância. Veja como identificar os pontos cegos.

Você pode confiar em differential testing sem uma prova formal, mas apenas se entender exatamente onde ele falha. A fraqueza se chama common-mode failure.…

Testes Não Provarão Que Duas Funções São Equivalentes. Veja o Que Vai.

A programação N-version assume que suas implementações concordam. Veja por que os testes não são suficientes, como os solvers SMT podem de fato provar equivalência, e onde traçar a linha entre bom o suficiente e formalmente verificado.

Você construiu um sistema n-version. Três implementações independentes da mesma função crítica, um voter que escolhe o resultado da maioria, e uma sensação de…

E Se Minhas Variantes de LLM Discordarem? Qual Está Certa?

Executar múltiplos LLMs em paralelo captura erros que qualquer modelo individual enviaria com confiança. Aqui está como construir um sistema de resolução de divergências que realmente funciona.

Você envia um prompt para o GPT-4o. Ele retorna um blob JSON com uma confiança de 0.97. Você envia o mesmo prompt para o Claude 3.5 Sonnet. Ele retorna um blob…

Cinco Implementações e Nenhuma Maioria: Como Escolher a Melhor na Prática

N-version programming parece simples: execute várias implementações e escolha a melhor resposta. Na prática, 'melhor' é muito mais difícil de definir do que 'mais comum'.

Você tem cinco implementações da mesma função. Três retornam o mesmo resultado. Uma é ligeiramente diferente. Uma lança uma exceção. Qual está certa? A maioria…

O Mesmo LLM Pode Escrever Cinco Versões da Sua Função. Veja Como Fazê-las Realmente Diferentes.

Programação N-version com LLMs não requer múltiplos modelos. Você pode extrair implementações diversas e corretas de um único modelo variando prompts, personas e restrições de raciocínio.

A programação N-version assume que a diversidade vem de autores diferentes. Com LLMs, isso significa modelos diferentes, provedores diferentes, talvez…

A NASA Executou 27 Cópias do Mesmo Programa. Os Bugs Votaram em Bloco.

A programação N-version prometia que equipes independentes cometeriam erros independentes. O experimento de Knight e Leveson em 1986 provou o oposto, e a NASA abandonou a ideia em silêncio.

No início dos anos 1980, a NASA enfrentou uma questão que ainda assombra a engenharia safety-critical hoje: como tolerar bugs que ainda não encontraste? A…