9

Paralelismo em GPU e usar a evolução para melhorar a evolução

AI999第5课:方法演化:从优化解到优化算法本身
00:00

Quando algoritmos evolutivos são usados paramelhorar os próprios algoritmos evolutivos, o sistema passa a ter duas camadas de computação simultâneas: a camada interna executa e avalia um grande número de configurações de algoritmo em inúmeras instâncias de tarefas, enquanto a camada externa seleciona, muta e atualiza configurações com base nesses resultados. Sem uma base de paralelismo robusta, a evolução externa se torna um gargalo, arrastada pela avaliação serial da camada interna.O paralelismo em GPUé justamente a chave para transformar o “uso da evolução para melhorar a evolução” de uma ideia teórica em um processo executável de alto rendimento: as tarefas internas rodam em lote e em paralelo, produzindo continuamente dados de desempenho, e a evolução externa usa esses dados como feedback para selecionar continuamente configurações de algoritmo melhores.

Usar a evolução para melhorar a evolução: ciclo duplo fechado com paralelismo em GPUEnvio da nova geração de configuraçõesEvolução externa: seletor de configuraçõesCom base no feedback de aptidão, seleciona · muta · atualiza configurações de algoritmoFeedback de aptidãoCamada de agregação de avaliações: feedback estatísticoAgrega o desempenho das tarefas paralelas internas → estima a aptidão de cada configuraçãoAgregação do desempenho das tarefasExecução em lote paralela em GPU · Camada interna: configuração × instância de tarefaConfiguração θ1Configuração θ2Configuração θ3Configuração θ4Cada unidade = uma execução paralela e uma pontuação de uma configuração de algoritmo em uma instância de tarefaPor que o paralelismo é essencialAmostras de feedback mais abundantesEstimativa de aptidão mais estávelDireção de busca mais confiávelMecanismo de ciclo fechadoRendimento paraleloFeedback de desempenhoSeleção de configuração

Cada camada com sua função

  • Camada interna (execução e avaliação): executa em lote, na GPU, um grande número de configurações candidatas de algoritmo (diferentes hiperparâmetros, operadores ou estratégias de busca), realizando a execução e a pontuação em cada instância de tarefa. As tarefas têm granularidade fina e são numerosas, o que combina perfeitamente com a característica de rendimento em lote da GPU.
  • Camada intermediária (agregação de feedback): agrega o desempenho bruto do grande volume de tarefas internas em indicadores estatísticos, estimando a qualidade de cada configuração em toda a distribuição de tarefas e formando a aptidão utilizada pela camada externa.
  • Camada externa (seleção de configuração): usa o feedback estatístico como entrada para realizar seleção, mutação ou atualização, gerando a próxima geração de configurações e devolvendo-a à camada interna, fechando o ciclo.

Por que o paralelismo em GPU é insubstituível

Em um laço serial tradicional, o tempo de relógio de uma única rodada de iteração é determinado conjuntamente por “número de configurações candidatas × número de amostras de tarefas”; com um tamanho um pouco maior, ele já se torna insuportável, e o laço serial passa a ser o principal gargalo que limita a escala das configurações candidatas e das amostras de tarefas. O paralelismo em GPU permite que um grande número de algoritmos internos rode simultaneamente, reduzindo o laço serial de “principal gargalo” a “custo de processamento em lote aceitável”, ampliando ao mesmo tempo o espaço de configurações explorável e o volume de amostras de tarefas.

Mecanismo central: um ciclo fechado

Todo o sistema pode ser resumido como “rendimento paralelo das tarefas internas → agregação do feedback de desempenho → seleção de configurações na camada externa” : quanto maior o grau de paralelismo, mais abundantes são as amostras de feedback, mais estável é a estimativa de aptidão da camada externa e mais confiável é a direção de melhoria das configurações; as configurações aprimoradas são então devolvidas à camada inferior, entrando na próxima rodada de rendimento paralelo. É justamente esse ciclo fechado que confere aos algoritmos a capacidade de auto-otimização contínua e transforma o “uso da evolução para melhorar a evolução” de uma ideia teórica em um processo altamente eficiente e executável.

Pontos de atenção
Não confunda as duas camadas: a interna é “o algoritmo executa tarefas e atribui pontuações”, a externa é “a evolução escolhe configurações”. O feedback só pode vir do desempenho real de execução da camada interna, e não de suposições aleatórias da camada externa nem de constantes definidas manualmente.