À medida que a escala computacional cresce continuamente, a forma de gerar candidatos passou por uma mudança radical. No passado, as soluções candidatas costumavam depender de enumeração manual ou de uma única saída de modelo; hoje,exploração paralela em GPU,construção estruturada por grandes modeloseparticipação de modelos na codificação e mutaçãoampliam em conjunto as fontes de candidatos. A questão central já não é apenas "é possível gerar uma resposta?", mas sim "quais mudanças podem ser geradas, observadas, retidas e herdadas".
As três novas fontes de geração de candidatos
- Exploração paralela em GPU:Muitas possibilidades são exploradas simultaneamente, e a geração de candidatos passa da tentativa e erro sequencial para a busca paralela no espaço. Por exemplo, amostrar milhares de pontos ao mesmo tempo no espaço de parâmetros e avaliá-los em paralelo.
- Construção estruturada por grandes modelos:Os grandes modelos são capazes de compreender linguagem natural e código, construindo soluções candidatas de estrutura complexa, e não apenas gerando respostas textuais. Podem gerar programas completos, casos de teste ou configurações de sistema.
- Participação de modelos na codificação e mutação:As formas de codificação e mutação manuais passam a contar com a participação de modelos em sua geração. As fontes de candidatos se expandem de regras escritas por humanos para regras e estruturas geradas por modelos, por exemplo, fazendo o modelo propor novos operadores de mutação ou estratégias de codificação.
Definição de limites antes de entrar na evolução
Antes que os candidatos entrem na evolução, é preciso definir claramente os seguintes limites:
- Quais objetos podem ser alterados:Determinar os objetos evolutivos: a estrutura do código, os hiperparâmetros ou toda a arquitetura?
- Quais resultados podem ser observados:Definir métricas observáveis, como acurácia, latência, consumo de recursos, entre outras.
- Qual critério decide que uma mudança deve ser retida:Estabelecer critérios de retenção, geralmente uma função de avaliação multiobjetivo ou um limiar.
Estratégia de avaliação em camadas
A avaliação precisa ser estratificada:avaliações paralelizáveis devem ser paralelizadas ao máximo;avaliações de alto custo devem ser reduzidas com modelos substitutos. Por exemplo, métricas de desempenho simples podem ser calculadas em paralelo na GPU, enquanto avaliações caras que exigem interação com o ambiente real são aproximadas por modelos substitutos, ampliando o espaço de busca sob poder computacional limitado.
Identificação de estruturas evolutivas e preservação de resultados
É necessário identificar quais estruturas dos métodos existentes podem ser evoluídas ainda mais, em vez de apenas ajustar parâmetros numéricos. Por exemplo, tratar o modo de conexão dos módulos em uma rede neural e a estrutura de fluxo de controle do código como objetos mutáveis. Ao mesmo tempo, é preciso preservar código, testes e evidências de validação, para que a próxima rodada de trabalho não precise começar do zero e para evitar retrabalho.
Integração ao ciclo do EvoX
Quando os limites acima estão claros, a tarefa pode ser integrada ao ciclo do EvoX:Modelo propõe candidatos,Ferramentas executam mudanças,Ambiente retorna feedback,Mecanismo evolutivo conclui a seleção,Runtime organiza a computação,o sistema persistente herda resultados já validados. Assim, componentes inteligentes dispersos se acumulam continuamente, formando um sistema em constante evolução.
