OctoTools, uma nova plataforma agente de código aberto lançada por cientistas da Universidade de Stanford, pode impulsionar modelos de linguagem de grande porte (LLMs) para tarefas de raciocínio, dividindo tarefas em subunidades e aprimorando os modelos com ferramentas. Embora o uso de ferramentas já tenha se tornado uma aplicação importante dos LLMs, o OctoTools torna essas capacidades muito mais acessíveis ao remover barreiras técnicas e permitir que desenvolvedores e empresas estendam uma plataforma com suas próprias ferramentas e fluxos de trabalho.
Experimentos mostram que o OctoTools supera métodos de prompting clássicos e outras estruturas de aplicação LLM, tornando-se uma ferramenta promissora para usos reais de modelos de IA.
Os LLMs frequentemente lutam com tarefas de raciocínio que envolvem múltiplos passos, decomposição lógica ou conhecimento especializado de domínio. Uma solução é terceirizar etapas específicas da solução para ferramentas externas, como calculadoras, interpretadores de código, mecanismos de busca ou ferramentas de processamento de imagem. Nesse cenário, o modelo foca no planejamento de alto nível enquanto o cálculo e raciocínio reais são feitos através das ferramentas.
No entanto, o uso de ferramentas apresenta seus próprios desafios. Por exemplo, LLMs clássicos geralmente requerem treinamento substancial ou aprendizado de poucos exemplos com dados curados para se adaptar a novas ferramentas, e uma vez aumentados, eles ficarão limitados a domínios e tipos de ferramentas específicos.
A seleção de ferramentas também continua sendo um ponto problemático. Os LLMs podem se tornar bons em usar uma ou poucas ferramentas, mas quando uma tarefa exige o uso de várias ferramentas, eles podem ficar confusos e ter um desempenho ruim.
O OctoTools aborda esses pontos problemáticos através de uma estrutura agente livre de treinamento que pode orquestrar várias ferramentas sem a necessidade de ajustar ou afinar os modelos. O OctoTools utiliza uma abordagem modular para lidar com tarefas de planejamento e raciocínio e pode usar qualquer LLM de propósito geral como sua espinha dorsal.
Entre os componentes-chave do OctoTools estão os “cartões de ferramenta”, que atuam como envoltórios para as ferramentas que o sistema pode usar, como interpretadores de código Python e APIs de busca na web. Os cartões de ferramenta incluem metadados como formatos de entrada-saída, limitações e melhores práticas para cada ferramenta. Os desenvolvedores podem adicionar seus próprios cartões de ferramenta à estrutura para atender às suas aplicações.
Quando um novo prompt é alimentado ao OctoTools, um módulo “planejador” usa o LLM de espinha dorsal para gerar um plano de alto nível que resume o objetivo, analisa as habilidades necessárias, identifica as ferramentas relevantes e inclui considerações adicionais para a tarefa. O planejador determina um conjunto de subobjetivos que o sistema precisa alcançar para realizar a tarefa e os descreve em um plano de ação baseado em texto.
Para cada etapa do plano, um módulo “preditor de ação” refina o subobjetivo para especificar a ferramenta necessária para alcançá-lo e garantir que seja executável e verificável.
Uma vez que o plano está pronto para ser executado, um “gerador de comandos” mapeia o plano baseado em texto para o código Python que invoca as ferramentas especificadas para cada subobjetivo, e então passa o comando para o “executor de comandos”, que executa o comando em um ambiente Python. Os resultados de cada etapa são validados por um módulo “verificador de contexto” e o resultado final é consolidado por um “resumidor de solução”.
“Ao separar o planejamento estratégico da geração de comandos, o OctoTools reduz erros e aumenta a transparência, tornando o sistema mais confiável e mais fácil de manter”, escrevem os pesquisadores.
O OctoTools também utiliza um algoritmo de otimização para selecionar o melhor subconjunto de ferramentas para cada tarefa. Isso ajuda a evitar sobrecarregar o modelo com ferramentas irrelevantes.
Estruturas agentes
Existem várias estruturas para criar aplicações LLM e sistemas agentes, incluindo Microsoft AutoGen, LangChain e a “chamada de função” da API da OpenAI. O OctoTools supera essas plataformas em tarefas que requerem raciocínio e uso de ferramentas, de acordo com seus desenvolvedores.
Os pesquisadores testaram todas as estruturas em vários benchmarks para raciocínio visual, matemático e científico, além de conhecimento médico e tarefas agentes. O OctoTools alcançou um ganho médio de precisão de 10,6% sobre o AutoGen, 7,5% sobre o GPT-Functions e 7,3% sobre o LangChain ao usar as mesmas ferramentas. De acordo com os pesquisadores, a razão para o desempenho superior do OctoTools é sua melhor distribuição de uso de ferramentas e a decomposição adequada da consulta em subobjetivos.
O OctoTools oferece às empresas uma solução prática para usar LLMs em tarefas complexas. Sua integração extensível de ferramentas ajudará a superar as barreiras existentes para criar aplicações avançadas de raciocínio em IA. Os pesquisadores publicaram o código do OctoTools no GitHub.