2 pontos por GN⁺ 2024-04-08 | 1 comentários | Compartilhar no WhatsApp
  • LLMs tendem a oscilar em precisão em tarefas complexas, e este estudo verifica se é possível elevar o desempenho apenas com amostragem-votação, sem estruturas adicionais
  • Agent Forest é um método simples de ensemble que executa a mesma consulta várias vezes, reúne as respostas e escolhe a resposta final por maioria de votos
  • No GSM8K, com ensemble de 15, o Llama2-13B alcançou uma precisão semelhante à do Llama2-70B, e o Llama2-70B e o GPT-3.5-Turbo também se aproximaram de modelos correspondentes mais fortes
  • Esse método pode ser combinado de forma independente com métodos baseados em CoT ou frameworks de colaboração multiagente, gerando ganhos adicionais de desempenho sobre técnicas já existentes
  • O ganho é especialmente grande em tarefas difíceis e em modelos mais fracos, sugerindo espaço para melhorar a relação custo-desempenho sem projeto complexo de prompts

Precisão de LLMs oscila em tarefas complexas

  • LLMs mostram forte capacidade em várias aplicações, como geração de linguagem, compreensão e raciocínio, mas têm dificuldade em produzir respostas corretas em tarefas complexas
  • As pesquisas anteriores de melhoria de desempenho têm usado principalmente métodos de ensemble e frameworks de colaboração entre múltiplos agentes LLM
    • LLM-Debate faz vários agentes LLM discutirem a resposta final de tarefas aritméticas, aumentando o desempenho de raciocínio em relação a um agente único
    • CoT-SC gera várias cadeias de pensamento (thought chain) e escolhe a resposta mais autoconsistente, melhorando o raciocínio em comparação com o CoT de cadeia única
  • Resultados anteriores já observaram que o desempenho aumenta quando cresce o número de agentes ou de cadeias de pensamento, mas as características de escalabilidade do próprio número de agentes LLM base ainda não haviam sido suficientemente estudadas como tema independente

Como o Agent Forest funciona

  • O Agent Forest usa um procedimento simples de amostragem-votação para observar o impacto do aumento do número de agentes LLM no desempenho
  • O funcionamento é dividido em duas etapas
    • A mesma consulta da tarefa é inserida repetidamente em um único LLM ou em um framework colaborativo com múltiplos agentes LLM para gerar várias saídas
    • Em seguida, aplica-se votação por maioria às saídas geradas para decidir o resultado final
  • O procedimento foi inspirado no CoT-SC, mas não depende de um projeto complexo de caminhos de CoT
  • O nome é uma homenagem ao clássico Random Forest

Resultados no GSM8K e em várias tarefas

  • Os experimentos foram realizados em vários conjuntos de dados, incluindo diferentes LLMs de tamanhos distintos e tarefas de raciocínio e geração
  • De modo geral, o desempenho de LLMs pode melhorar à medida que cresce o tamanho do ensemble, ou seja, o número de agentes
  • Nos resultados do GSM8K da Figure 1, Llama2-13B, Llama2-70B e GPT-3.5-Turbo mostraram aumento de precisão conforme o ensemble aumentava
    • Com ensemble de 15, o Llama2-13B alcançou precisão comparável à do Llama2-70B
    • Com ensembles de 15 e 20, o Llama2-70B e o GPT-3.5-Turbo mostraram, respectivamente, precisão comparável à de modelos correspondentes mais fortes
    • As barras de erro da figura representam o erro padrão
  • Mesmo LLMs menores podem alcançar desempenho comparável ou superior ao de LLMs maiores quando se aplica um ensemble simples

Ganhos de desempenho que podem ser adicionados sobre técnicas existentes

  • O Agent Forest é uma abordagem que pode ser combinada de forma independente com métodos existentes e mais complexos de melhoria de desempenho de LLMs
  • Em métodos baseados em CoT, ele pode ser acoplado como um plugin para gerar ganhos adicionais de desempenho
  • Mesmo em comparação com métodos complexos, em muitos casos o Agent Forest sozinho consegue atingir desempenho comparável
  • É possível obter resultados competitivos sem projeto manual adicional de prompts nem frameworks complexos de colaboração

Efeito conforme a dificuldade e otimização

  • O ganho de desempenho aparece com mais força em tarefas difíceis e em modelos mais fracos
  • O impacto da dificuldade do problema sobre o efeito do Agent Forest foi analisado em três dimensões
    • Dificuldade intrínseca do problema
    • Comprimento das etapas de raciocínio
    • Probabilidade prévia da resposta correta
  • Experimentos que controlaram cada dimensão identificaram as propriedades que influenciam o efeito do Agent Forest
  • Com base nessas propriedades, os autores também desenvolveram estratégias de otimização para fazer o efeito de “More Agents” aparecer com mais força
  • O código público está disponível em https://github.com/MoreAgentsIsAllYouNeed/AgentForest

1 comentários

 
GN⁺ 2024-04-08
Opiniões no Hacker News
  • Parece que há pessoas que não leram este artigo direito
    O artigo parece praticamente refutar a ideia de configurações multiagente como Chain-of-thought ou LLM-Debate
    A alternativa proposta no artigo é fazer a mesma pergunta ao mesmo LLM várias vezes, sem compartilhar contexto entre as consultas, calcular a similaridade entre as respostas e escolher a resposta mais comum
    Se o LLM mistura alucinações com respostas corretas, faz sentido: as respostas corretas tenderiam a ser parecidas entre si, enquanto as alucinações ficariam espalhadas de forma confusa
    Mas esse algoritmo simples funciona tão bem quanto outros algoritmos multiagente, às vezes até melhor
    Ou seja, parece que as outras técnicas multiagente que usam prompts engenhosos não estão fazendo nada de especial; a maior parte da melhoria vem de executar o LLM várias vezes e pedir para ele “escolher a melhor resposta”

    • https://en.wikipedia.org/wiki/Lorenz_system
      Há muito tempo, simulações meteorológicas executam o modelo repetidamente variando um pouco os parâmetros de entrada, descartam outliers e tiram a média, e isso funciona muito bem
      LLMs também geralmente têm uma semente aleatória, isto é, um valor de temperatura; então, ao fornecer a mesma entrada e fazer a média das saídas, é possível obter uma estimativa melhor
      O sistema de Lorenz também dá uma pista, talvez uma explicação, para o motivo de o problema das alucinações provavelmente ser insolúvel
      Ao adotar essa perspectiva, também fica evidente rapidamente que LLMs são quase um beco sem saída no caminho rumo à inteligência artificial geral
      Simulação não é emulação, e a chance de um LLM ganhar inteligência é parecida com a chance de uma previsão do tempo passar a controlar o clima
    • Pela minha experiência usando GitHub Copilot, alucinações acontecem porque, quando algum fato verdadeiro tem baixa probabilidade, o Copilot ainda assim apresenta a resposta mais plausível
      Normalmente, uma biblioteca específica se comporta de uma forma muito anormal e não documentada; se você pede um exemplo, ele retorna o código de uma função falsa, elegante e fácil de entender, que nem teria sido necessária se a biblioteca funcionasse daquele jeito
      Não acho que executar esse tipo de consulta várias vezes vá ajudar
    • Isso é uma ideia muito parecida com modelos de ensemble, usados há muito tempo em aprendizado de máquina e comprovadamente eficazes
      Ao tirar a média dos resultados de vários preditores, ou fazê-los votar para escolher a previsão mais comum, você seleciona o denominador comum de várias previsões e reduz o ruído da predição
    • Se você definir a temperatura como 0, o modelo escolhe o token de maior probabilidade e a saída é sempre a mesma
      Mas já sabemos que isso não garante a resposta correta; então como executar várias vezes poderia ser melhor?
    • A parte “se o LLM mistura alucinações com respostas corretas, as respostas corretas tenderiam a ser parecidas entre si, enquanto as alucinações ficariam espalhadas de forma confusa” deve fornecer algo próximo do grau de confiança que o modelo-base tem em relação a uma afirmação específica
      Isso em si é bom, mas lendas urbanas ou lendas culturais também devem subir bastante no ranking
      É um erro muito humano, mas ainda é um erro
      Para ir além disso, acho que é preciso criar um modelo de mundo, encontrar contradições e buscar novas evidências para resolver essas contradições
  • Finalmente saiu
    Venho dizendo há uns 16 meses que não deveríamos focar em fazer um único agente acertar tudo, e sim organizar agentes em camadas, então é bom agora ter um artigo para apontar
    Também é interessante que os retornos decrescentes por tarefa se estabilizem rapidamente em tamanhos parecidos com o tamanho ideal de reuniões humanas: https://www.researchgate.net/figure/18-Optimal-Meeting-Sizes...
    Fico curioso para saber o quão perto esses números ficariam se tivessem testado o número de agentes em incrementos mais granulares
    Também quero ver, no futuro, quanto o desempenho melhora quando cada agente for ajustado finamente para objetivos ligeiramente diferentes
    Só de deixar valores de temperatura diferentes para cada agente, já acho que haveria ganho de desempenho
    Fico muito feliz que a comunidade de pesquisa esteja começando a se mover nessa direção

    • Concordo totalmente
      Os SLIM agents da LLMWare também valem uma olhada: https://github.com/llmware-ai/llmware/tree/main/examples/SLI...
      Eles conectam vários LLMs locais, focando quase exatamente neste tema
      Um bom tema relacionado é a necessidade de amostragem determinística, dependendo do uso do modelo
      Talvez eu esteja usando o termo um pouco errado, mas a equipe da LLMWare fez um bom vídeo em duas partes sobre isso: https://www.youtube.com/watch?v=7oMTGhSKuNY
      Acho que LLMs pequenos e especializados são o caminho a seguir
      Para constar, não tenho nenhuma relação com eles; apenas acho que é um projeto muito legal
    • Acho que humanos também funcionam assim
      Como se houvesse umas 5 ou 8 versões de nós mesmos circulando dentro do crânio, e uma delas atuasse mais ou menos como supervisora
    • No ano passado, passei alguns meses criando um sistema multiagente para resolução de problemas com https://github.com/agi-merge/waggle-dance
    • “Ajustado finamente para objetivos ligeiramente diferentes”, isso não seria, por assim dizer, uma mistura de especialistas?
    • É interessante ver pesquisadores estudando o que as pessoas estão construindo experimentalmente
      crewAI é um exemplo
  • Parece relacionado ao episódio com Edward Chang no ACM ByteCast recente
    É um episódio com Edward Chang, professor adjunto do departamento de Ciência da Computação da Stanford University: https://learning.acm.org/bytecast/ep50-edward-y-chang
    Se você não quiser ouvir, também há uma transcrição
    A abordagem que ele usa é, em vez do formato comum de perguntas/respostas dos LLMs atuais, fazer vários LLMs conversarem entre si sobre um tema de debate, enquanto o humano atua como moderador
    Dizem que, com os mesmos recursos, a resposta final a que vários LLMs chegam por meio da conversa melhora bastante tanto em precisão quanto em acurácia

    • Este artigo parece dizer que a parte do debate não é necessária
      Basta fazer os LLMs resolverem o problema de forma independente e depois escolher a resposta mais popular
    • Fiz algo parecido em Haskell
      Não fiz benchmark, mas pareceu bastante convincente
      Por exemplo, defini cada agente como um “especialista” diferente em subáreas da matemática: teórico da prova, especialista em álgebra abstrata etc.
      Ajudou, mas a relação sinal-ruído era alta, e muitos agentes repetiam os mesmos pontos
    • Isso está basicamente descrevendo algo como crewAI?
  • Há algo que me frustra em toda essa pesquisa de mistura de especialistas
    Basta olhar uma introdução a algoritmos aleatorizados ou a inferência probabilística básica para ver que, se o parâmetro de temperatura for maior que 0, consultar um LLM N vezes e escolher o resultado por maioria geralmente deve ter desempenho melhor do que perguntar uma única vez e escolher aquele resultado
    Parece possível obter melhorias adicionais especializando e misturando LLMs diferentes e, nesse caso, talvez dê para rodar com temperatura 0
    Ou, como este artigo propõe, também dá para dividir melhor a tarefa em subtarefas
    Mas, do meu ponto de vista, ninguém quantificou de fato esses ganhos hipotéticos em comparação com uma repetição aleatória simples
    Em especial, em alguma estratégia de votação ou método de mistura, ou até para um modelo específico, uma abordagem tipo MoE pode ser estritamente pior que a repetição ingênua
    Não sou pesquisador de LLM, estou mais para um cidadão preocupado, então talvez eu esteja deixando algo passar
    Ainda assim, é estranho parecer que pesquisadores de LLM esqueceram o primeiro capítulo de Motwani/Raghavan

    • Deve haver uma diferença entre escolher o melhor token entre tokens escolhidos aleatoriamente e escolher a melhor string entre strings de tokens escolhidas aleatoriamente
  • Olhando por alto os gráficos, a maior parte do ganho vem de 10 agentes, há um pequeno aumento em 20, e depois disso aparecem retornos decrescentes
    Acho que simplesmente adicionar mais agentes não vai resolver

  • Há um repositório público: https://anonymous.4open.science/r/more_agent_is_all_you_need...
    Os prompts usados no benchmark estão aqui: https://anonymous.4open.science/r/more_agent_is_all_you_need...
    Muito interessante
    Também seria bom ver benchmarks de agentes baseados em LLM que usam um conjunto de ferramentas, mas nessa mesma linha

  • Isso não é um método extremamente caro e insustentável?
    Como os modelos mais recentes provavelmente terão retornos decrescentes, concordo com a ideia de que MoE é o caminho
    Mas o volume de computação de um único prompt não aumenta de repente em 7 a 15 vezes?

    • GPT-4 é 20 vezes mais caro que GPT-3.5, mas, se 10 execuções do GPT-3.5 forem suficientes para obter qualidade de resposta semelhante, e provavelmente até mais rápido, ainda assim é vantajoso
    • “Tudo de que você precisa é uma fatura de seis dígitos da OpenAI”
    • O uso de recursos não renováveis e as emissões também aumentam 7 a 15 vezes
    • E qual é o problema? Não é como se as GPUs estivessem sofrendo com falta de computação
    • Exato, basta olhar os preços do GPT-3.5 e do GPT-4
  • Lendo apenas alguns dos principais comentários atuais, o modelo de negócios das empresas que fornecem serviços de LLM parece estranho
    É como um serviço de transporte que precisa ser chamado n vezes para levar você de A a B, ou um detergente que precisa ser aplicado n vezes para as roupas ficarem “provavelmente” limpas
    Se uma empresa cobra dinheiro para fornecer “inteligência artificial”, não faz sentido pagar apenas pelas respostas corretas?
    Se ela oferece um serviço de transporte, não se deveria pagar apenas quando ela leva você ao destino?

    • Concordo
      Se falha com frequência suficiente, o ponto em que humanos ou automação tradicional de propósito geral passam a ser melhores não fica bem baixo?
      Acho que é assim que essa bolha vai estourar
      Não tenho dúvida de que LLMs são ferramentas revolucionárias, mas sou sinceramente cético exceto em aplicações muito específicas
      Talvez a lição seja que distribuir a responsabilidade entre agentes de LLM tem o mesmo modelo de falha das organizações humanas existentes
    • Empresas normalmente fornecem serviços ou produtos
      Se não entregam o que foi combinado, o cliente pode exigir correção
      Se um taxista faz um caminho desnecessariamente complicado, cobra demais ou não leva você ao destino, você pode reclamar com a empresa de táxi
      Se a lavagem não ficou boa, você pede para refazerem
      Mas muitas atividades são inerentemente arriscadas ou têm resultados incertos
      Porque sempre há fatores que ninguém consegue controlar
      Um advogado não pode prometer que vai vencer uma ação, mas deve representar o caso da melhor forma possível
      Um médico não garante que você voltará a ficar saudável
      Nenhum taxista garante chegar ao destino no horário, mas leva você até lá
      A Atlassian não garante que você cumprirá o prazo de release por usar uma instância gerenciada do JIRA, mas faz o possível para evitar perda de dados
      Basicamente, uma empresa que vende acesso a um chatbot também não vai garantir que ele dará o resultado correto
      Talvez consiga garantir apenas disponibilidade
    • Como contraponto, as previsões do National Weather Service nem sempre estão certas, mas você não paga ao NWS apenas nos dias em que a previsão acerta
  • Por mais que você faça ensemble de agentes GPT-3.5, a acurácia ainda é menor do que uma única chamada ao GPT-4

    • O curioso é que o GPT-4 é, na prática, um monte de GPT-3.5
      Basta configurá-los direito