Agentes Alimentados pelo Llama 3.1: Testando Capacidades de Chamada de Função
Explore as capacidades do Llama 3.1 na chamada de funções e no uso de ferramentas. Aprenda a aproveitar as ferramentas de observabilidade como o LangTrace para monitorar o desempenho do LLM. Descubra os pontos fortes e as limitações de diferentes tamanhos de modelos Llama no manuseio de tarefas complexas.
16 de fevereiro de 2025

Desbloqueie o poder do Llama 3.1 com este guia abrangente sobre suas capacidades de chamada de função. Descubra como este modelo de linguagem de ponta pode ser aproveitado como um agente inteligente, integrando-se perfeitamente com APIs para lidar com tarefas complexas. Explore os aspectos de observabilidade e obtenha insights sobre o desempenho do modelo, capacitando-o a tomar decisões informadas para seu próximo projeto.
Capacidades do Llama 3.1 e do Sistema Agentico da Meta
Configurando o LangTrace para Observabilidade
Testando Chamadas de Função com os Modelos Llama 3.1 70B e 8B
Chamadas de Função Paralelas e Chamadas de Função Sequenciais Aninhadas
Dificuldades do Modelo Llama 3.1 8B com Chamadas de Função
Modelo Llama 3 Refinado pela Groq para Chamadas de Função
Conclusão
Capacidades do Llama 3.1 e do Sistema Agentico da Meta
Capacidades do Llama 3.1 e do Sistema Agentico da Meta
Uma das principais capacidades do Llama 3.1 que a Meta destacou no lançamento é a chamada de funções ou o uso de ferramentas. O autor quis testar essa capacidade.
O autor primeiro configurou as ferramentas e APIs necessárias, incluindo a API Groq, que fornece uma das APIs mais rápidas para interagir com o Llama 3.1. Eles testaram os modelos Llama 3.1 de 70 bilhões e 8 bilhões, bem como uma versão específica da Groq, com ajuste fino do modelo de 70 bilhões.
O autor começou com um exemplo simples de uma única chamada de função, depois passou para cenários mais complexos envolvendo chamadas de função paralelas e aninhadas. Eles usaram a plataforma de observabilidade LangTrace para rastrear o uso de tokens e outras métricas durante os experimentos.
Os resultados mostraram que o modelo Llama 3.1 de 70 bilhões se saiu muito bem, lidando de forma eficaz tanto com chamadas de função paralelas quanto aninhadas. O modelo de 8 bilhões teve dificuldade com tarefas mais complexas, enquanto o modelo específico da Groq com ajuste fino teve mais problemas, muitas vezes precisando de informações adicionais ou esclarecimentos do usuário.
Configurando o LangTrace para Observabilidade
Configurando o LangTrace para Observabilidade
Nesta seção, vamos configurar o LangTrace, uma plataforma de observabilidade de código aberto e open-telemetry para aplicativos de LLM. O LangTrace nos permite rastrear o número de solicitações e tokens sendo comunicados entre nosso ambiente local e a API LLM.
Primeiro, precisamos instalar os pacotes necessários, incluindo o SDK Python do LangTrace, o SDK Python da Groq e o SDK Python da OpenAI (mesmo que não estejamos usando o LLM da OpenAI, é uma dependência do SDK do LangTrace).
Em seguida, configuramos nossas chaves de API. Para este experimento, não precisamos estritamente do LangTrace, mas ele pode fornecer insights valiosos sobre o uso de nossos tokens. O LangTrace é semelhante em funcionalidade ao LangSmith, uma plataforma de observabilidade da LangChain, mas dá suporte a uma gama mais ampla de fornecedores, incluindo OpenAI, Groq, Cohere e Perplexity.
Usaremos a versão hospedada na nuvem do LangTrace, então precisaremos criar uma nova conta e projeto. Depois de ter nossa chave de API, podemos adicioná-la como um segredo em nosso notebook.
Com a configuração concluída, podemos começar a usar o LangTrace para observar o uso de tokens e outras métricas durante nossos experimentos de chamada de função com a API LLM da Groq. O LangTrace nos fornecerá informações detalhadas sobre o número de tokens trocados e os custos associados (se aplicável, já que a Groq não cobra pelo uso da API).
Testando Chamadas de Função com os Modelos Llama 3.1 70B e 8B
Testando Chamadas de Função com os Modelos Llama 3.1 70B e 8B
O autor começa destacando o lançamento de um sistema agêntico em torno da chamada de funções no Llama 3.1 pela Meta. Como o autor não configurou o sistema localmente, ele decide usar a API Groq, que fornece uma das APIs mais rápidas para interagir com o Llama 3.1.
O autor testa os modelos Llama 3.1 de 70B e 8B, bem como uma versão específica da Groq com ajuste fino do modelo de 70B. Eles usam o LangTrace, uma plataforma de observabilidade de código aberto para aplicativos de LLM, para rastrear o número de solicitações e tokens trocados entre o ambiente local e a API LLM.
O autor começa com um exemplo simples, em que o modelo precisa usar uma função "obter pontuações de jogos" para determinar o vencedor de um jogo da NBA. O modelo de 70B realiza essa tarefa com sucesso, e o autor examina os dados do LangTrace para entender o mecanismo interno.
Em seguida, o autor testa a capacidade dos modelos de lidar com chamadas de função paralelas, em que o usuário solicita informações relacionadas a clima, voos, hotéis e atrações. O modelo de 70B consegue decompor o prompt inicial, fazer chamadas de função paralelas e gerar uma resposta abrangente. O modelo de 8B, no entanto, tem dificuldade com essa tarefa, alucinando informações e não conseguindo fornecer respostas completas.
O autor então introduz um cenário mais complexo, em que o usuário deseja planejar uma viagem de Nova York para Londres e depois para Tóquio, incluindo clima, voos, hotéis e atrações. Mais uma vez, o modelo de 70B se sai bem, enquanto o modelo de 8B tem dificuldade.
Finalmente, o autor testa o modelo de 70B com ajuste fino específico da Groq, que surpreendentemente tem dificuldade até mesmo com a tarefa simples de "obter pontuações de jogos", pedindo repetidamente mais detalhes específicos em vez de usar a função fornecida.
Chamadas de Função Paralelas e Chamadas de Função Sequenciais Aninhadas
Chamadas de Função Paralelas e Chamadas de Função Sequenciais Aninhadas
O modelo Llama 3.1, particularmente a versão de 70B, demonstrou capacidades impressionantes no manuseio de chamadas de função paralelas e chamadas de função sequenciais aninhadas.
Quando apresentado a um prompt complexo para planejar uma viagem de Nova York a Paris, incluindo verificar o clima, encontrar voos, hotéis e atrações, o modelo de 70B conseguiu decompor a tarefa e fazer chamadas de função paralelas para reunir as informações necessárias. Ele então combinava os resultados das várias funções para fornecer um resumo abrangente dos detalhes da viagem.
O modelo também mostrou sua capacidade de lidar com chamadas de função aninhadas, em que a saída de uma função era usada como entrada de outra. No cenário de recomendação de filmes, o modelo conseguiu primeiro selecionar um filme com base na preferência do usuário e, em seguida, recomendar um lanche e uma plataforma de streaming adequados para assistir ao filme.
Em contraste, o modelo Llama 3.1 menor de 8B teve dificuldade com esses casos de uso mais avançados. Ele não conseguia fornecer respostas precisas e completas quando solicitado a lidar com chamadas de função paralelas ou aninhadas. O modelo muitas vezes alucinava informações ou não conseguia usar as ferramentas fornecidas de maneira eficaz.
Adicionalmente, o modelo de chamada de função especializado da Groq também teve desempenho inferior nos testes, não conseguindo utilizar adequadamente as funções fornecidas e exigindo entrada mais específica do usuário.
Em geral, o modelo Llama 3.1 de 70B demonstrou uma forte capacidade de lidar com tarefas complexas e de várias etapas que envolvem chamadas de função paralelas e aninhadas, mostrando seu potencial como um sistema capaz e semelhante a um agente. No entanto, o modelo menor de 8B e o modelo de chamada de função da Groq ainda têm espaço para melhorias nessas áreas.
Dificuldades do Modelo Llama 3.1 8B com Chamadas de Função
Dificuldades do Modelo Llama 3.1 8B com Chamadas de Função
O modelo Llama 3.1 de 8B teve dificuldades significativas com as tarefas de chamada de função mais complexas em comparação com o modelo maior de 70B. Algumas observações-chave:
-
Para a função simples de "obter pontuações de jogos", o modelo de 8B conseguiu lidar com ela sem problemas, semelhante ao modelo de 70B.
-
No entanto, quando se tratava de chamadas de função paralelas para tarefas como planejamento de viagens, o modelo de 8B vacilou. Ele não conseguia fornecer informações abrangentes sobre clima, voos, hotéis e atrações, muitas vezes alucinando detalhes ou não listando as opções disponíveis.
-
Com o conjunto expandido de funções, o modelo de 8B teve ainda mais dificuldade, alucinando informações sobre eventos e detalhes climáticos que não foram solicitados.
-
O modelo de 8B também teve problemas com chamadas de função aninhadas para a tarefa de recomendação de filmes. Ele não conseguiu usar adequadamente as ferramentas fornecidas e recorreu a sugerir filmes diretamente.
-
O modelo de chamada de função especializado da Groq também teve um desempenho ruim nos testes, muitas vezes solicitando detalhes mais específicos em vez de utilizar as ferramentas fornecidas de maneira eficaz.
Em contraste, o modelo Llama 3.1 de 70B demonstrou capacidades muito mais fortes no manuseio de chamadas de função paralelas e aninhadas, fornecendo respostas abrangentes e precisas. O modelo de 8B simplesmente não parece estar pronto para tarefas sérias de chamada de função ou semelhantes a um agente, e o modelo especializado da Groq também teve um desempenho inferior nesses testes.
Modelo Llama 3 Refinado pela Groq para Chamadas de Função
Modelo Llama 3 Refinado pela Groq para Chamadas de Função
O modelo Llama 3 com ajuste fino da Groq para chamada de função teve dificuldades nos testes em comparação com o modelo Llama 3.1 maior de 70B. Algumas descobertas-chave:
- Quando solicitado a fornecer a pontuação de um jogo do Warriors, o modelo solicitou mais detalhes específicos, como a data ou a equipe adversária, em vez de usar a função "obter pontuações de jogos" fornecida.
- Para solicitações de planejamento de viagem, o modelo repetidamente pediu mais detalhes específicos, como datas de viagem, em vez de usar as funções fornecidas para gerar uma resposta.
- Para a tarefa de recomendação de noite de cinema, o modelo teve dificuldade em usar as funções aninhadas e muitas vezes recorreu a fornecer uma recomendação de filme direta.
Em geral, o modelo Llama 3 com ajuste fino da Groq não se saiu tão bem quanto o modelo Llama 3.1 de 70B nos testes de chamada de função e uso de ferramentas. O modelo de 70B demonstrou fortes capacidades em chamadas de função paralelas e aninhadas, enquanto o modelo com ajuste fino parecia ter dificuldade em aproveitar as ferramentas e funções fornecidas. Otimização ou ajuste fino adicional pode ser necessário para que o modelo da Groq atinja o desempenho da versão maior do Llama 3.1 nesse tipo de tarefa.
Conclusão
Conclusão
O modelo LLAMA 3.1 de 70 bilhões da Groq teve um desempenho excepcional nos testes de chamada de função e uso de ferramentas. Ele conseguiu lidar com chamadas de função paralelas, bem como chamadas de função aninhadas com facilidade, demonstrando suas fortes capacidades como um sistema agêntico.
Em contraste, o modelo LLAMA 3.1 de 8 bilhões teve dificuldade com essas tarefas mais complexas, destacando a importância de usar modelos de linguagem maiores e mais capazes para esse tipo de aplicação.
O modelo de chamada de função especializado da Groq, no entanto, não se saiu tão bem quanto o esperado, mesmo com o exemplo fornecido. Isso sugere que o processo de ajuste fino desse modelo pode não ter sido tão eficaz quanto se esperava.
Para fins de observabilidade e rastreamento, a plataforma de código aberto LangTrace AI provou ser uma ferramenta valiosa, fornecendo insights detalhados sobre o uso de tokens e as chamadas de API feitas pelos modelos de linguagem durante os experimentos.
Em geral, os resultados demonstram o potencial dos modelos de linguagem de grande porte, como o LLAMA 3.1, para chamada de função e uso de ferramentas, mas também destacam a necessidade de pesquisa e desenvolvimento contínuos para melhorar as capacidades de modelos menores e especializados nessa área.
Perguntas frequentes
Perguntas frequentes