5

Organização tensorial de população, avaliação e estado

AI999第4课:现代计算底座与张量化并行演化
00:00

Na implementação de engenharia de algoritmos evolutivos,a organização tensorialmapeia de forma unificada "o que é a população, como foi avaliada e em que etapa está a execução", antes dispersos em objetos e listas, para tensores regulares. Sua essência é estabelecer um contrato de dados unificado para população, avaliação e estado, conferindo semântica de memória comum ao cálculo em lote, à residência no dispositivo e ao escalonamento paralelo subsequente.

Organização tensorial de população, avaliação e estadoMapear de forma unificada soluções candidatas, avaliação de aptidão e estado do algoritmo em tensores computáveis em loteOrganização serial tradicionalObjetos e listas armazenados de forma dispersaLista de candidatosLista / coleção de objetosAvaliação individualChamadas em loop à função de avaliaçãoEstado dispersoEscalares / variáveis globaisLoop por indivíduoIdas e voltas frequentes entre host e dispositivoTensorizaçãoa organização tensorialPopulação · avaliação · estado unificados em tensores regulares, formando um contrato de dados unificadoNDTensor de população[N, D]N é a dimensão de lote, D é a dimensão de decisãoMutação e cruzamento em loteConcluído de uma só vezNMKMatriz de avaliação[N, M] ou [N, M+K]M objetivos, K restriçõesVetorização da função de avaliaçãoRetorna resultados do lote inteiroContêiner de tensores de estadoEscalar ou tensor pequenoGeração, melhor solução, estado do gerador aleatórioResidência unificada no dispositivoPermite checkpoint e reproduçãoExemplo: N = 1024, D = 50, M = 2 · população [1024, 50], avaliação [1024, 2]Dimensão de lote por fora: operadores vetorizados ao longo de toda a dimensão NIndivíduos de comprimento variável: preenchimento + máscara ou bucketingEstado unificado: reproduzível, rastreável, atualizável em lote

Tensorização da população: codificação como [N, D]

Organize N soluções candidatas ao longo da dimensão de lote como um tensor de codificação de formato [N, D]. Variáveis contínuas, discretas ou codificações multi-segmento podem ser expressas por tensores de campo ou blocos agrupados, mantendo tipo de dados e localização no dispositivo unificados.

  • Dimensão de lote por fora: normalmente coloca-se N na camada mais externa, para que o mesmo operador seja executado de forma vetorizada em todo o lote.
  • Blocos por campo: se o indivíduo for composto por múltiplos segmentos de parâmetros, pode ser dividido em [N, D1] + [N, D2] + … mantendo o armazenamento contíguo.
  • Tratamento de comprimento variável: indivíduos de comprimento variável são tratados com preenchimento mais máscara ou bucketing, evitando que estruturas heterogêneas comprometam o cálculo em lote.

Matricialização dos resultados de avaliação: [N, M] e [N, K]

Uma única avaliação em lote produz uma matriz de aptidão [N, M]; múltiplos objetivos, múltiplas restrições e métricas adicionais podem ser dispostos lado a lado como [N, M+K] ou armazenados em tabelas separadas, evitando chamadas em loop à função de avaliação por indivíduo.

Gestão unificada de tensores de estado

Geração, estado do gerador aleatório, hiperparâmetros de estratégia, melhor solução, cache histórico, ranking ou estado de amostragem também entram em tensores ou em contêineres de estado estruturados, garantindo reprodutibilidade, rastreabilidade e atualização em lote.

Exemplo: N=1024, D=50, M=2
A população é representada pelo tensor [1024, 50], os valores de avaliação pelo tensor [1024, 2] e as restrições por [1024, K]. A geração generation, a melhor solução best_x e o estado aleatório rng_state residem de forma unificada no dispositivo como tensores de estado. A atualização de cada geração pode ser concluída de uma só vez na mesma dimensão de lote, em vez de um loop Python por indivíduo.

Benefícios e limites da organização

Tensores unificados reduzem as idas e voltas entre host e dispositivo, diminuem o custo de loop e fornecem base de dados para a paralelização posterior de operadores; porém, é preciso lidar com a validade das máscaras, o desperdício de preenchimento, o crescimento da escala multiobjetivo e o custo de sincronização de estado.