Nas práticas iniciais da computação evolutiva, os objetos "evoluídos" eram quase sempreparâmetros numéricos— taxa de aprendizado, tamanho do lote, intensidade de regularização, modo de inicialização de pesos. O espaço de busca era um conjunto de números, e a avaliação consistia em um treinamento mais uma validação. Com o aumento da capacidade computacional e a maturidade dos grandes modelos, os objetos evolutivos se expandiram significativamente: programas, arquiteturas de modelos, mecanismos de algoritmos e até mesmo todo um bloco deestado de engenharia de software(configurações, versões de dependências, contratos de interface, estratégias de implantação e execução).
Esse caminho de expansão pode ser representado por uma clara cadeia de setas: parâmetros numéricos → programas e arquiteturas de modelos → estado de engenharia de software e candidatos em nível de sistema. Quanto mais à direita no nível hierárquico, maior o poder de expressão e mais tipos de mudanças podem ser cobertos, tornando assim possível a evolução em nível de sistema.
Três níveis de objetos evolutivos, cada um com seu próprio custo
- Nível de parâmetros numéricos: o candidato é apenas um conjunto de números, barato de gerar e rápido de avaliar, mas só responde "se o ajuste está bom" e não consegue suprir um mecanismo que já faltava.
- Nível de programas e arquiteturas de modelos: os candidatos são arquiteturas de rede, combinações de operadores, fluxos de trabalho de prompts ou patches de código — as mudanças alteram "o que o sistema é capaz de fazer", e não apenas "quão preciso ele é".
- Nível de estado de engenharia de software: os candidatos são configurações, versões de dependências, contratos de interface e estratégias de implantação, que determinam diretamente se o sistema pode operar de forma estável e ser reproduzido.
Mudança de foco: de "como gerar candidatos" para "como executar e avaliar"
Quando os candidatos passam de números a programas, a etapa de "gerar candidatos" deixa de ser o gargalo: os grandes modelos conseguem produzir estruturas, mecanismos e patches em massa. O que realmente determina se a evolução é eficaz é omecanismo de execução e avaliação— quem consegue realmente colocar os candidatos em execução e quem consegue, dentro de um custo aceitável, determinar se eles merecem ser mantidos.
Quanto maior o poder de expressão, maior a carga de avaliação. Um parâmetro numérico basta com um único treinamento para ser pontuado; já um patch de código exige isolamento em sandbox, testes de regressão e comparação com baseline para responder a três perguntas: ele é realmente eficaz, traz riscos e seus resultados podem ser reproduzidos. Sandbox, testes de regressão e baseline são justamente os dispositivos de engenharia usados para restringir custo, risco e reprodutibilidade, permitindo que as mudanças sejam mantidas ou descartadas de forma estável.
Trade-offs de engenharia: mais candidatos não significa melhor evolução
Na prática das equipes, o caminho comum é começar ajustando taxa de aprendizado e hiperparâmetros, e então expandir gradualmente para a busca de arquiteturas de rede, combinações de operadores, fluxos de trabalho de prompts ou patches de código. A cada nível expandido, é preciso responder simultaneamente: quanto poder computacional e tempo a avaliação vai consumir? Os candidatos com falha podem contaminar o sistema existente? Os mesmos resultados poderão ser reproduzidos na próxima vez? Só quando houver equilíbrio entre poder de expressão, custo de avaliação, reprodutibilidade e segurança é que a evolução em nível de sistema se torna realmente viável.
