Skip to content
TinyAgent: Chamadas de Função na Borda para Modelos de Linguagem Pequenos
Source: bair.berkeley.edu

TinyAgent: Chamadas de Função na Borda para Modelos de Linguagem Pequenos

Sources: http://bair.berkeley.edu/blog/2024/05/29/tiny-agent, http://bair.berkeley.edu/blog/2024/05/29/tiny-agent/, BAIR Blog

Visão geral

TinyAgent apresenta um caminho para implantar agentes com modelos de linguagem capazes em dispositivos de borda, ao enfatizar a chamada de funções em vez da memorização de conhecimento geral. Modelos grandes como GPT-4o ou Gemini-1.5 oferecem capacidades fortes via nuvem, mas apresentam desafios de privacidade, conectividade e latência quando implantados na borda. TinyAgent sustenta que, treinando modelos de linguagem pequenos (SLMs) com dados especializados e de alta qualidade que enfatizam chamada de funções e orquestração de ferramentas, é possível alcançar desempenho robusto em tempo real na borda sem depender de inferência remota. O projeto foca na ideia de que muitas tarefas de agente envolvem simplesmente selecionar a sequência correta de funções predefinidas com as entradas certas e a ordem correta, em vez de recordar informações do mundo. Para viabilizar isso, a equipe introduz um pipeline baseado em um planejador de chamadas de funções e um conjunto de dados de alta qualidade que orienta os SLMs a gerar planos executáveis, em vez de texto livre. A chave da abordagem é o framework LLMCompiler, que orienta o modelo a emitir um plano de chamada de função—identificando quais funções chamar, quais entradas são necessárias e as dependências entre as chamadas. Após gerar o plano, o sistema o analisa e executa as funções na ordem de dependência. A pergunta de pesquisa original questiona se modelos menores, de código aberto, podem aprender a realizar chamadas de função confiáveis com dados direcionados, alcançando capacidades de raciocínio e orquestração de ferramentas a nível de edge. O estudo TinyAgent demonstra essas ideias em um contexto de aplicação de MacOS. A plataforma expõe 16 funções predefinidas que interfaceiam com aplicações do macOS por meio de scripts Apple. A tarefa do modelo é compor um plano de chamada de função correto que utilize esses scripts para realizar os objetivos do usuário (por exemplo, criar um convite de calendário sem expor o usuário a respostas genéricas tipo Q&A). Os autores também exploram a geração de dados e estratégias de ajuste fino para reduzir a lacuna entre modelos pequenos e baselines maiores baseados na nuvem. Dados sintéticos são criados com um modelo capaz (por exemplo, GPT-4-Turbo) para produzir consultas realistas de usuário, planos de chamada de função e argumentos de entrada, seguidos por verificações de sanidade para garantir que os planos resultantes formem grafos válidos. O estudo reporta a construção de 80 mil exemplos de treinamento, 1 mil de validação e 1 mil de teste, com um custo total de geração de dados de cerca de US$ 500. Uma métrica baseada em DAG avalia a isomorfia entre o plano gerado e o plano de referência. O TinyAgent-1B, emparelhado com Whisper-v3 para voz no dispositivo, é demonstrado em um MacBook M3 Pro. O framework é de código aberto e está disponível no repositório oficial do projeto. Em síntese, o TinyAgent avança um caminho prático para agentes de borda: prioriza a chamada de funções correta em vez de memorização de conhecimento geral, usa um planejador explícito de orquestração de ferramentas e demonstra implantação de ponta a ponta no edge com um caso de uso prático em macOS.

Principais características

  • Modelos de linguagem pequenos, de código aberto, capazes de realizar chamadas de função com treino adequado
  • Framework LLMCompiler que produz um plano de chamada de função com funções, entradas e dependências
  • Fluxo de geração de dados de alta qualidade (80k de treino, 1k de validação, 1k de teste) usando um LLM capaz, permitindo planejamento específico de tarefas
  • Caminho de fine-tuning para melhorar o desempenho de chamadas de função por SLMs, potencialmente superando baselines maiores
  • Método Tool RAG proposto para melhorar eficiência e desempenho
  • Foco em implantação na borda: inferência local no dispositivo para privacidade e baixo atraso
  • 16 funções pré-definidas para macOS que se conectam a scripts Apple
  • Demonstração com TinyAgent-1B e Whisper-v3 rodando localmente em um MacBook M3 Pro
  • Disponibilidade de código-fonte aberto no repositório oficial

Casos de uso comuns

  • Assistentes semânticos na borda que interpretam comandos em linguagem natural e orquestram uma sequência de chamadas de ferramentas locais (por exemplo, calendário, contatos, e-mail) sem expor dados para a nuvem
  • Fluxos de trabalho tipo Siri onde o agente converte comandos em invocações precisas de APIs ou scripts (por exemplo, criar convites de calendário com participantes específicos) usando scripts pré-definidos
  • Cenários de automação privada no dispositivo, com minimização da exposição de dados
  • Agentes habilitados para borda que operam em ambientes com conectividade intermitente ou inexistente, mantendo reatividade

Setup & instalação

Os detalhes de configuração e instalação não são fornecidos na fonte. O trabalho é apresentado como código aberto, e o repositório está disponível em:

  • https://github.com/SqueezeAILab/TinyAgent Para leitores que buscam passos práticos, consulte o repositório para instruções de instalação, dependências e exemplos de uso. O material de origem enfatiza a arquitetura, o fluxo de geração de dados e o caso de uso de implantação na borda, em vez de um guia de configuração passo a passo.
Setup e instalação não são especificados na fonte fornecida.
Consulte o repositório para instruções: https://github.com/SqueezeAILab/TinyAgent

Quick start (exemplo mínimo executável)

O fluxo descrito centra-se em traduzir uma solicitação em linguagem natural para um plano de chamadas de função e, em seguida, executá-las na ordem correta. Um quick start de alto nível com base na abordagem descrita pode ser assim (fluxo pseudo):

  • O usuário fornece um comando em linguagem natural (por exemplo, “Crie um convite de calendário com os participantes A e B para a próxima terça-feira às 15h”).
  • O planejador baseado em LLMCompiler produz um plano de chamada de função que lista quais funções chamar, quais argumentos de entrada (por exemplo, e-mails dos participantes, título do evento, data/hora) e as dependências entre as chamadas.
  • O sistema executa cada função na ordem, substituindo valores reais nos espaços reservados (ex.: $1, $2) conforme os resultados de chamadas anteriores ficam disponíveis.
  • O resultado final é a criação do item de calendário, com as entradas validadas pelos scripts pré-definidos do macOS. Observação: o fluxo acima descreve o funcionamento pretendido na fonte. Não é um script executável fornecido no material; consulte o repositório TinyAgent para detalhes de implementação, definições de funções e pontos de integração com o macOS.

Prós e contras

  • Prós
  • Implantação em borda com privacidade, mantendo a inferência no dispositivo
  • Potencial redução da dependência de conectividade com a nuvem e latência mais baixa
  • Aprendizado direcionado por dados curados de alta qualidade para chamadas de função
  • Demonstra a capacidade de superar uma referência forte em chamadas de função para modelos pequenos
  • Caminho claro para escalabilidade de agentes na borda por meio de uma abordagem explícita de orquestração de ferramentas
  • Contras (conforme estudo)
  • Modelos pequenos fora da caixa exibem desempenho limitado em chamadas de função sem ajuste fino específico
  • Requer dados curados de alta qualidade e um processo cuidadoso de geração de dados para alcançar resultados robustos
  • Os resultados se concentram num caso de uso específico com 16 funções pré-definidas, o que pode limitar a generalização para domínios diferentes
  • Custos de geração de dados e avaliação de planos (sanidade, verificação de grafos) não são triviais na prática

Alternativas (comparações breves)

  • Modelos grandes com inferência na nuvem (ex.: GPT-4/GPT-4o): oferecem forte capacidade de chamada de função, mas levantam questões de privacidade e conectividade; geralmente dependem de grande memória paramétrica e acesso à nuvem
  • ToolFormer e Gorilla: exemplos citados como abordagens relacionadas para habilitar o uso de ferramentas por LLMs em cenários de agentes
  • Abordagens baseadas em LLaMA-2 70B: trabalhos anteriores que consideraram chamadas de função com modelos grandes; TinyAgent investiga se modelos menores podem alcançar capacidades similares com dados curados e ajuste fino
  • Tool RAG: otimização proposta para melhorar a eficiência e o desempenho no fluxo de chamadas de função

Pricing ou Licença

  • O framework é descrito como código aberto; termos de licenciamento explícitos não são fornecidos na fonte. O custo de uso não é especificado.

Referências

More resources