- 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
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”
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
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
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
Mas já sabemos que isso não garante a resposta correta; então como executar várias vezes poderia ser melhor?
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
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
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
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
Basta fazer os LLMs resolverem o problema de forma independente e depois escolher a resposta mais popular
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
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
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?
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?
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
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
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
Basta configurá-los direito