Em face de um panorama tecnológico em rápida evolução, os grandes modelos de linguagem (LLMs) emergiram como ferramentas poderosas para o processamento de linguagem natural. No entanto, a sua dependência de dados de treino estáticos limita a sua capacidade de adaptação a cenários do mundo real. À medida que as indústrias exigem cada vez mais soluções de IA capazes de tomar decisões informadas, a integração de ferramentas externas e APIs tornou-se fundamental. A precisão com que estas ferramentas são utilizadas é crucial para melhorar as capacidades de tomada de decisão e a eficiência operacional dos agentes autónomos, abrindo caminho para o desenvolvimento de fluxos de trabalho agentic sofisticados.
Este artigo aprofunda os aspetos técnicos da chamada de ferramentas usando modelos Amazon Nova através do Amazon Bedrock. Além disso, explora vários métodos para personalizar estes modelos para alcançar uma maior precisão na utilização de ferramentas.
Expandindo as Capacidades de LLM com o Uso de Ferramentas
Os LLMs demonstraram uma proficiência notável numa vasta gama de tarefas de linguagem natural. No entanto, o seu verdadeiro potencial é desbloqueado através de uma integração perfeita com ferramentas externas, como APIs e estruturas computacionais. Estas ferramentas capacitam os LLMs com a capacidade de aceder a dados em tempo real, realizar cálculos específicos do domínio e recuperar informações precisas, melhorando assim a sua fiabilidade e versatilidade.
Considere a integração de uma API meteorológica, que permite aos LLMs fornecer previsões meteorológicas precisas e atualizadas. Da mesma forma, uma API da Wikipedia pode equipar os LLMs com a capacidade de aceder a um vasto repositório de informações, permitindo-lhes responder a consultas complexas com maior precisão. Em contextos científicos, ferramentas como calculadoras e motores simbólicos podem ajudar os LLMs a superar imprecisões numéricas, tornando-os mais fiáveis para cálculos complexos.
Ao integrar-se perfeitamente com estas ferramentas, os LLMs evoluem para sistemas robustos, com conhecimento do domínio, capazes de lidar com tarefas dinâmicas e especializadas com utilidade no mundo real.
Modelos Amazon Nova e Amazon Bedrock
Os modelos Amazon Nova, apresentados no AWS re:Invent em dezembro de 2024, são projetados para oferecer um valor excecional de preço-desempenho. Estes modelos oferecem um desempenho de última geração em benchmarks de compreensão de texto chave, mantendo a relação custo-benefício. A série é composta por três variantes:
- Micro: Um modelo apenas de texto otimizado para uso de ponta, oferecendo um desempenho ultra eficiente.
- Lite: Um modelo multimodal que atinge um equilíbrio entre versatilidade e desempenho.
- Pro: Um modelo multimodal de alto desempenho projetado para lidar com tarefas complexas.
Os modelos Amazon Nova podem ser empregados para uma vasta gama de tarefas, incluindo a geração e o desenvolvimento de fluxos de trabalho agentic. Estes modelos possuem a capacidade de interagir com ferramentas ou serviços externos através de um processo conhecido como chamada de ferramentas. Esta funcionalidade pode ser acedida através da consola Amazon Bedrock e APIs como Converse e Invoke.
Além de utilizar os modelos pré-treinados, os desenvolvedores têm a opção de ajustar estes modelos com dados multimodais (Pro e Lite) ou dados de texto (Pro, Lite e Micro). Esta flexibilidade permite aos desenvolvedores atingir os níveis desejados de precisão, latência e relação custo-benefício. Além disso, os desenvolvedores podem aproveitar a consola Amazon Bedrock e as APIs para realizar ajuste fino personalizado de autoatendimento e destilação de modelos maiores em modelos menores.
Visão Geral da Solução
A solução envolve a preparação de um conjunto de dados personalizado especificamente projetado para o uso de ferramentas. Este conjunto de dados é então usado para avaliar o desempenho dos modelos Amazon Nova através do Amazon Bedrock, utilizando as APIs Converse e Invoke. Posteriormente, os modelos AmazonNova Micro e Amazon Nova Lite são ajustados usando o conjunto de dados preparado através do Amazon Bedrock. Após a conclusão do processo de ajuste fino, estes modelos personalizados são avaliados através do rendimento provisionado.
Ferramentas
O uso de ferramentas em LLMs abrange duas operações essenciais: seleção de ferramentas e extração ou geração de argumentos. Por exemplo, considere uma ferramenta projetada para recuperar informações meteorológicas para um local específico. Quando apresentado com uma consulta como “Qual é o clima em Londres agora?”, o LLM avalia as suas ferramentas disponíveis para determinar se existe uma ferramenta apropriada. Se uma ferramenta adequada for identificada, o modelo seleciona-a e extrai os argumentos necessários - neste caso, “Londres” - para construir a chamada de ferramenta.
Cada ferramenta é meticulosamente definida com uma especificação formal que descreve a sua funcionalidade pretendida, argumentos obrigatórios e opcionais e tipos de dados associados. Estas definições precisas, referidas como tool config, garantem que as chamadas de ferramentas são executadas corretamente e que a análise de argumentos se alinha com os requisitos operacionais da ferramenta. Aderindo a este requisito, o conjunto de dados usado neste exemplo define oito ferramentas distintas, cada uma com os seus próprios argumentos e configurações, todas estruturadas num formato JSON. As oito ferramentas definidas são as seguintes:
- weather_api_call: Uma ferramenta personalizada projetada para recuperar informações meteorológicas.
- stat_pull: Uma ferramenta personalizada para identificar estatísticas.
- text_to_sql: Uma ferramenta personalizada para converter texto em consultas SQL.
- terminal: Uma ferramenta para executar scripts num ambiente terminal.
- wikipedia: Uma ferramenta de API da Wikipedia para pesquisar páginas da Wikipedia.
- duckduckgo_results_json: Uma ferramenta de pesquisa na Internet que utiliza o DuckDuckGo para realizar pesquisas.
- youtube_search: Uma ferramenta de pesquisa de API do YouTube para pesquisar listagens de vídeos.
- pubmed_search: Uma ferramenta de pesquisa do PubMed para pesquisar resumos do PubMed.
Conjunto de Dados
O conjunto de dados usado nesta solução é um conjunto de dados sintético de chamada de ferramentas, criado com a ajuda de um modelo de fundação (FM) do Amazon Bedrock e posteriormente validado e ajustado manualmente. Este conjunto de dados foi desenvolvido para o conjunto de oito ferramentas discutidas anteriormente, com o objetivo de gerar uma coleção diversificada de questões e invocações de ferramentas que permitam que outro modelo aprenda com estes exemplos e generalize para invocações de ferramentas não vistas.
Cada entrada dentro do conjunto de dados é estruturada como um objeto JSON, contendo pares chave-valor que definem a questão (uma consulta de utilizador em linguagem natural para o modelo), a ferramenta de verdade fundamental necessária para responder à consulta do utilizador, os seus argumentos (um dicionário contendo os parâmetros necessários para executar a ferramenta) e restrições adicionais como order_matters: boolean
, que indica se a ordem dos argumentos é crítica, e arg_pattern: optional
, uma expressão regular (regex) para validação ou formatação de argumentos. Estas etiquetas de verdade fundamental são usadas para supervisionar o treino de modelos Amazon Nova pré-treinados, adaptando-os para uso de ferramentas. Este processo, conhecido como ajuste fino supervisionado, é explorado mais a fundo nas secções seguintes.
O conjunto de treino compreende 560 questões, enquanto o conjunto de teste contém 120 questões. O conjunto de teste é estruturado para incluir 15 questões por categoria de ferramenta, totalizando 120 questões.
Preparando o Conjunto de Dados para o Amazon Nova
Para utilizar eficazmente este conjunto de dados com os modelos Amazon Nova, é necessário formatar os dados de acordo com um modelo de chat específico. A chamada de ferramenta nativa incorpora uma camada de tradução que formata as entradas no formato apropriado antes de as passar para o modelo. Nesta solução, é adotada uma abordagem de uso de ferramenta DIY, empregando um modelo de prompt personalizado. Especificamente, o prompt do sistema, a mensagem do utilizador incorporada com a configuração da ferramenta e as etiquetas de verdade fundamental devem ser adicionadas como a mensagem do assistente.
Carregando o Conjunto de Dados para o Amazon S3
Este passo é essencial para permitir que o Amazon Bedrock aceda aos dados de treino durante o processo de ajuste fino. O conjunto de dados pode ser carregado através da consola Amazon Simple Storage Service (Amazon S3) ou programaticamente.
Chamada de Ferramenta com Modelos Base Através da API Amazon Bedrock
Com o conjunto de dados de uso de ferramenta criado e formatado conforme necessário, pode ser usado para testar os modelos Amazon Nova. As APIs Converse e Invoke podem ser usadas para uso de ferramenta no Amazon Bedrock. A API Converse permite conversas dinâmicas e conscientes do contexto, permitindo que os modelos se envolvam em diálogos de várias voltas, enquanto a API Invoke permite aos utilizadores chamar e interagir com os modelos subjacentes dentro do Amazon Bedrock.
Para usar a API Converse, as mensagens, o prompt do sistema (se houver) e a configuração da ferramenta são enviados diretamente para a API.
Para analisar a ferramenta e os argumentos da resposta LLM, considere a questão: “Olá, qual é a temperatura em Paris agora?”. A saída será analisada para identificar a ferramenta e os argumentos necessários para responder à questão.
Ajustando os Modelos Amazon Nova para Uso Aprimorado de Ferramentas
O ajuste fino é um passo crucial na adaptação de modelos de linguagem pré-treinados como o Amazon Nova a tarefas específicas. Ao treinar o modelo num conjunto de dados adaptado à aplicação desejada, o modelo pode aprender a realizar a tarefa com maior precisão e eficiência. No contexto do uso de ferramentas, o ajuste fino pode melhorar significativamente a capacidade do modelo de selecionar a ferramenta apropriada e extrair os argumentos corretos.
O processo de ajuste fino envolve o ajuste dos parâmetros internos do modelo para minimizar a diferença entre as suas previsões e as etiquetas de verdade fundamental no conjunto de dados de treino. Isto é tipicamente alcançado através de um processo iterativo, onde o modelo é repetidamente exposto aos dados de treino e os seus parâmetros são ajustados com base nos erros observados.
Preparando o Conjunto de Dados de Ajuste Fino
O conjunto de dados de ajuste fino deve ser cuidadosamente selecionado para refletir os tipos de questões e invocações de ferramentas que o modelo deverá lidar em cenários do mundo real. O conjunto de dados deve incluir uma gama diversificada de exemplos, abrangendo diferentes categorias de ferramentas e padrões de argumentos.
Cada exemplo no conjunto de dados deve consistir numa questão, a ferramenta correspondente a ser chamada e os argumentos necessários para executar a ferramenta. Os argumentos devem ser formatados de forma estruturada, tipicamente como um objeto JSON.
Processo de Ajuste Fino
O processo de ajuste fino pode ser realizado usando a consola Amazon Bedrock ou APIs. O processo envolve especificar o modelo a ser ajustado, o conjunto de dados de ajuste fino e os parâmetros de treino desejados.
Os parâmetros de treino controlam vários aspetos do processo de ajuste fino, como a taxa de aprendizagem, o tamanho do lote e o número de épocas. A taxa de aprendizagem determina a magnitude dos ajustes de parâmetros feitos durante cada iteração. O tamanho do lote determina o número de exemplos processados em cada iteração. O número de épocas determina o número de vezes que o modelo é exposto a todo o conjunto de dados de treino.
Avaliando o Modelo Ajustado
Após a conclusão do processo de ajuste fino, é essencial avaliar o desempenho do modelo ajustado. Isto pode ser feito testando o modelo num conjunto de dados de teste separado que não foi usado durante o processo de ajuste fino.
O conjunto de dados de teste deve ser representativo dos tipos de questões e invocações de ferramentas que o modelo deverá lidar em cenários do mundo real. O desempenho do modelo pode ser avaliado medindo métricas como precisão, precisão, recuperação e pontuação F1.
Benefícios da Personalização dos Modelos Amazon Nova para o Uso de Ferramentas
A personalização dos modelos Amazon Nova para o uso de ferramentas oferece vários benefícios:
- Precisão Aprimorada: Ajustar o modelo num conjunto de dados específico da tarefa pode melhorar significativamente a precisão da seleção de ferramentas e da extração de argumentos.
- Maior Eficiência: Os modelos ajustados podem frequentemente realizar tarefas de uso de ferramentas de forma mais eficiente do que os modelos pré-treinados.
- Adaptabilidade Aprimorada: O ajuste fino permite que o modelo se adapte a domínios e casos de uso específicos.
- Custos Reduzidos: Em alguns casos, o ajuste fino pode reduzir os recursos computacionais necessários para realizar tarefas de uso de ferramentas.
Conclusão
A personalização dos modelos Amazon Nova para o uso de ferramentas é uma técnica valiosa para melhorar o desempenho e a adaptabilidade dos LLMs. Ao ajustar o modelo num conjunto de dados específico da tarefa, os desenvolvedores podem melhorar significativamente a precisão, a eficiência e a adaptabilidade das aplicações de uso de ferramentas. À medida que as indústrias exigem cada vez mais soluções de IA capazes de tomar decisões informadas, a personalização dos LLMs para o uso de ferramentas tornar-se-á cada vez mais importante.