Phase 16 - Lesson 19

Otimização por Enxame para LLMs (PSO, ACO)

This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.

A otimização bioinspirada está voltando no contexto de LLMs. O LMPSO (arXiv:2504.09247) utiliza PSO onde a velocidade de cada partícula é um prompt e o LLM gera o próximo candidato; funciona bem para saídas de sequências estruturadas (expressões matemáticas, programas). O Model Swarms (arXiv:2410.11163) trata cada LLM especialista como uma partícula de PSO em um manifold de pesos do modelo e relata um ganho médio de 13,3% sobre 12 baselines em 9 conjuntos de dados com apenas 200 instâncias. O SwarmPrompt (ICAART 2025) hibridiza PSO + Grey Wolf para otimização de prompts. O AMRO-S (arXiv:2603.12933) é inspirado em ACO, utilizando especialistas em feromônios para roteamento multiagente de LLMs — obtendo um aceleração de 4,7x, evidência de roteamento interpretável e uma atualização assíncrona filtrada por qualidade que desacopla a inferência do aprendizado. Esta lição implementa PSO no espaço de parâmetros de prompt e ACO no roteamento de agentes, avaliando por que esses algoritmos clássicos se adaptam à era dos LLMs e quando eles não devem ser usados.

Tipo: Learn + Build Linguagens: Python (stdlib) Pré-requisitos: Fase 16 · 09 (Redes Paralelas de Enxame), Fase 16 · 14 (Consenso e BFT) Tempo: ~75 minutos

O Problema

Você tem um prompt que atinge 62% de pontuação na avaliação da sua tarefa. Você deseja melhorá-lo. A abordagem ingênua é o ajuste manual livre de gradientes, que escala mal. O aprendizado por reforço precisa de sinais de recompensa e de execuções (rollouts) suficientes para o treinamento. O backpropagation através dos prompts não é realmente possível — o prompt é uma string discreta, não um parâmetro diferenciável.

A otimização bioinspirada clássica — PSO para espaços de busca contínuos, ACO para seleção de caminhos — foi projetada exatamente para esse regime: baseada em população, livre de gradientes e barata por avaliação. Junte-as com LLMs para a etapa de busca sem gradientes e você terá um otimizador surpreendentemente prático.

Os mesmos padrões se aplicam ao roteamento de agentes em sistemas multiagente. Uma trilha de feromônios no estilo ACO registra qual agente funcionou melhor para qual tipo de tarefa, permite que o roteador explore a trilha e decaia os feromônios para que novos caminhos possam ser descobertos.

Conceito

Recapitulação de PSO (Kennedy & Eberhart 1995)

Otimização por Enxame de Partículas: população de partículas em um espaço de busca contínuo. Cada partícula tem uma posição x_i e uma velocidade v_i. A cada iteração:

v_i <- w * v_i + c1 * r1 * (p_best_i - x_i) + c2 * r2 * (g_best - x_i)
x_i <- x_i + v_i
evaluate fitness(x_i)
update p_best_i if improved
update g_best if global best

Onde p_best é a melhor posição própria da partícula, g_best é a melhor posição do enxame, w, c1, c2 são os pesos de inércia, cognitivo e social, e r1, r2 são fatores aleatórios.

PSO em Saídas de LLM — LMPSO

O arXiv:2504.09247 adapta o PSO para saídas estruturadas geradas por LLM (expressões matemáticas, programas). Cada partícula é uma saída candidata. A velocidade é um prompt que descreve como modificar a saída atual em direção ao melhor pessoal ou global. O LLM gera a nova saída a partir do prompt de velocidade. A "inércia" da velocidade é um prompt como "faça pequenas alterações incrementais".

Isso funciona bem quando:

  • A saída é estruturada (pode ser analisada e avaliada).
  • A avaliação de fitness é automática (execuções de teste, avaliação aritmética).
  • A população é pequena (~10-30 partículas) para que o total de chamadas de LLM permaneça gerenciável.

Não funciona bem quando a avaliação de fitness precisa de revisão humana — o custo por iteração se torna proibitivo.

Model Swarms

O arXiv:2410.11163 retira o PSO da camada de saída e o leva para a camada do modelo. Cada "partícula" é um LLM especialista (parâmetros). O enxame move os parâmetros em direção ao melhor coletivo por meio de uma atualização livre de gradiente. Relatou-se: ganho médio de 13,3% sobre 12 baselines em 9 conjuntos de dados, com apenas 200 instâncias por iteração.

A principal percepção é de que os modelos LLM especialistas já estão próximos em um manifold de parâmetros compartilhados (pesos de adaptadores, deltas de LoRA). O PSO neste subespaço de baixa dimensão é barato e eficaz.

Recapitulação de ACO (Dorigo 1992)

Otimização por Colônia de Formigas: formigas atravessam um grafo; cada caminho possui uma trilha de feromônio. As probabilidades de movimento das formigas são ponderadas pela força do feromônio. As formigas que completam a tarefa depositam feromônio proporcional à qualidade da solução. O feromônio decai com o tempo.

AMRO-S — ACO para Roteamento de Agentes

O arXiv:2603.12933 usa ACO para roteamento multiagente. Cada tipo de tarefa é um "destino"; cada agente é uma rota possível. Os feromônios fortalecem as rotas que produzem boas saídas. Contribuições principais:

  • Evidência de roteamento interpretável. A força do feromônio é um sinal legível por humanos.
  • Atualização assíncrona filtrada por qualidade. Os feromônios são atualizados apenas após a aprovação nas verificações de qualidade, desacoplando a inferência do aprendizado.
  • Aceleração de 4,7x no benchmark de roteamento multiagente.

O filtro de qualidade é essencial: sem ele, agentes rápidos, mas incorretos, acumulam feromônios e o sistema se estabiliza em rotas ruins.

Quando usar PSO / ACO para LLMs

Use PSO quando:

  • O espaço de busca for contínuo ou mapear para parâmetros contínuos (embeddings de prompt, pesos de LoRA, parâmetros numéricos de geração).
  • A avaliação de fitness for barata e automática.
  • A população puder ser pequena (10-30).

Use ACO quando:

  • Você tiver um problema de roteamento ou seleção de caminho.
  • As decisões se reforçarem ao longo do tempo (os mesmos tipos de tarefas retornam).
  • Você precisar de evidências interpretáveis para as decisões de roteamento.

Não use nenhum dos dois quando:

  • A avaliação de fitness exigir revisão humana (muito caro por iteração).
  • O espaço de busca for discreto e combinatório de uma forma que o PSO não cubra (use algoritmos genéticos).
  • As decisões em tempo real precisarem de latência estrita (PSO/ACO convergem lentamente em relação a heurísticas de passagem única).

Por que a abordagem bioinspirada ainda vence

Os métodos baseados em gradiente precisam de sinais diferenciáveis. As saídas de LLMs e as decisões de roteamento não são trivialmente diferenciáveis. Métodos de pseudo-gradiente (roteadores aprendidos por reforço, sintonizadores de prompt estilo DPO) funcionam, mas exigem treinamento caro.

O PSO e o ACO precisam apenas de uma função de avaliação (fitness). Se você puder pontuar uma saída candidata ou uma decisão de roteamento, poderá otimizar o espaço de busca. Isso torna a barreira de aplicação muito menor.

Limites práticos

  • Orçamento de população. N partículas × T iterações × custo por avaliação. Para avaliações de LLM a ~$0,02/chamada, um PSO de 20 partículas rodando 50 iterações custa ~
0. Planeje de acordo.
  • Exploração vs Explotação. A taxa de decaimento do feromônio e a inércia do PSO se equilibram; decaimento muito rápido → esquece soluções; decaimento muito lento → fica preso em ótimos locais precoces.
  • Deriva catastrófica. Ambos os algoritmos podem convergir e depois divergir se o cenário de fitness mudar (nova distribuição de dados). Monitore a estabilidade do melhor fitness.
  • Build It

    code/main.py implementa:

    Execute:

    python3 code/main.py
    

    Saída esperada:

    Use It

    outputs/skill-swarm-optimizer.md ajuda a escolher entre PSO, ACO, algoritmos genéticos e otimizadores baseados em gradiente para problemas de otimização de LLMs / agentes.

    Ship It

    Exercícios

    1. Execute code/main.py. Observe a convergência do LMPSO. Varie o tamanho da população: 5, 10, 20, 50. Em qual tamanho o tempo para convergir se estabiliza?
    2. Implemente um experimento de "deriva catastrófica": após a iteração 30, altere a função de fitness. Quão rápido o PSO se adapta? Redefinir p_best ajuda?
    3. Adicione um filtro de qualidade ao AMRO-S: depósito de feromônio apenas em execuções com pontuação de avaliação > 0,7. Como isso altera a convergência em relação à versão sem filtro?
    4. Leia LMPSO (arXiv:2504.09247). Mapeie a "velocidade como um prompt" do artigo de volta para a sua velocidade numérica. O que é perdido na simulação e o que é preservado?
    5. Leia AMRO-S (arXiv:2603.12933). Implemente o caminho rápido de inferência desacoplado com atualização assíncrona de feromônios. Como isso altera a latência do sistema sob carga sustentada?

    Termos-Chave

    Termo O que as pessoas dizem O que realmente significa
    PSO "Otimização por Enxame de Partículas" Kennedy-Eberhart 1995. Otimizador baseado em população e livre de gradientes.
    ACO "Otimização por Colônia de Formigas" Dorigo 1992. Otimização de caminhos/rotas via trilhas de feromônios.
    LMPSO "PSO com geração por LLM" arXiv:2504.09247. A velocidade é um prompt; o LLM produz os candidatos.
    Model Swarms "PSO em pesos especialistas" arXiv:2410.11163. Atualização livre de gradiente no subespaço de parâmetros do modelo.
    AMRO-S "ACO para roteamento de agentes" arXiv:2603.12933. Matriz de feromônios sobre tipo de tarefa × agente.
    p_best / g_best "Melhor pessoal / global" As melhores soluções encontradas até agora por partícula e por todo o enxame.
    Feromônio "Memória de roteamento" Força em uma aresta; decai com o tempo; acumula-se com base na qualidade.
    Atualização filtrada por qualidade "Apenas aprenda com boas execuções" Depósito de feromônio condicionado à verificação de qualidade.
    Deriva catastrófica "Mudança de distribuição" O cenário de fitness muda; os p_best e feromônios antigos tornam-se obsoletos.

    Leitura Adicional