Um Guia para Utilizar os Prompts Amazon Bedrock para Integração LLM

À medida que a inteligência artificial generativa revoluciona várias indústrias, os desenvolvedores procuram cada vez mais formas eficientes de integrar os grandes modelos de linguagem (LLMs) em suas aplicações. O Amazon Bedrock é uma solução poderosa. Ele oferece um serviço totalmente gerenciado que fornece acesso a uma ampla gama de modelos de base por meio de uma API unificada. Este guia explorará os principais benefícios do Amazon Bedrock, como integrar diferentes modelos LLM em seus projetos, como simplificar a gestão dos diversos prompts LLM que sua aplicação utiliza e as melhores práticas a serem consideradas para uso em produção.

Benefícios Chave do Amazon Bedrock

Amazon Bedrock simplifica a integração inicial de LLMs em qualquer aplicação, fornecendo todas as capacidades fundamentais necessárias para começar.

Acesso Simplificado aos Principais Modelos

O Bedrock fornece acesso a uma seleção diversificada de modelos de base de alto desempenho de líderes do setor, como AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI e Amazon. Essa variedade permite aos desenvolvedores escolher o modelo mais adequado para seu caso de uso e alternar modelos conforme necessário sem gerenciar múltiplos relacionamentos de fornecedores ou APIs. 

Totalmente Gerenciado e Sem Servidor

Como um serviço totalmente gerenciado, o Bedrock elimina a necessidade de gerenciamento de infraestrutura. Isso permite aos desenvolvedores concentrarem-se na construção de aplicações em vez de se preocuparem com as complexidades subjacentes da configuração de infraestrutura, implantação de modelo e dimensionamento.

Segurança e Privacidade de Nível Empresarial

O Bedrock oferece recursos de segurança integrados, garantindo que os dados nunca saiam de seus ambientes AWS e sejam criptografados em trânsito e em repouso. Ele também suporta conformidade com vários padrões, incluindo ISO, SOC e HIPAA.

Mantenha-se Atualizado com as Últimas Melhorias de Infraestrutura

O Bedrock regularmente lança novos recursos que ampliam os limites das aplicações de LLM e requerem pouco ou nenhum setup. Por exemplo, recentemente lançou um modo de inferência otimizado que melhora a latência de inferência do LLM sem comprometer a precisão. 

Começando com o Bedrock

Nesta seção, usaremos o AWS SDK para Python para construir uma pequena aplicação em sua máquina local, fornecendo um guia prático para começar com o Amazon Bedrock. Isso ajudará você a entender os aspectos práticos de usar o Bedrock e como integrá-lo em seus projetos.

Pré-requisitos

  1. Você tem uma conta na AWS.
  2. Você tem o Python instalado. Se não estiver instalado, obtenha seguindo este guia.
  3. Você tem o SDK da AWS para Python (Boto3) instalado e configurado corretamente. É recomendável criar um usuário IAM na AWS que o Boto3 possa usar. Instruções estão disponíveis no guia de início rápido do Boto3.
  4. Se estiver a usar um usuário IAM, certifique-se de adicionar a política AmazonBedrockFullAccess a ele. Você pode anexar políticas usando o console da AWS.
  5. Solicite acesso a 1 ou mais modelos no Bedrock seguindo este guia.

1. Criando o Cliente Bedrock

O Bedrock tem vários clientes disponíveis no AWS CDK. O cliente Bedrock permite interagir com o serviço para criar e gerenciar modelos, enquanto o cliente BedrockRuntime permite invocar modelos existentes. Usaremos um dos modelos de fundação prontos para uso para o nosso tutorial, então vamos trabalhar com o cliente BedrockRuntime.

Python

 

2. Invocando o Modelo

Neste exemplo, usei o modelo Amazon Nova Micro (com modelId amazon.nova-micro-v1:0), um dos modelos mais baratos do Bedrock. Vamos fornecer um prompt simples para pedir ao modelo que nos escreva um poema e definir parâmetros para controlar o comprimento da saída e o nível de criatividade (chamado de “temperatura”) que o modelo deve fornecer. Fique à vontade para brincar com prompts diferentes e ajustar parâmetros para ver como eles impactam a saída.

Python

 

Também podemos tentar isso com outro modelo como Haiku da Anthropic, conforme mostrado abaixo.

Python

 

Observe que as estruturas de solicitação/resposta variam ligeiramente entre os modelos. Isso é uma desvantagem que abordaremos usando modelos de prompt predefinidos na próxima seção. Para experimentar com outros modelos, você pode consultar o modelId e amostras de solicitações de API para cada modelo na página do “Catálogo de Modelos” no console Bedrock e ajustar seu código de acordo. Alguns modelos também têm guias detalhados escritos pela AWS, que você pode encontrar aqui.

3. Usando o Gerenciamento de Prompt

O Bedrock fornece uma ferramenta inteligente para criar e experimentar com modelos de prompt predefinidos. Em vez de definir prompts e parâmetros específicos, como comprimento do token ou temperatura, em seu código toda vez que você precisar deles, você pode criar modelos predefinidos no console de Gerenciamento de Prompt. Você especifica as variáveis de entrada que serão injetadas durante a execução, configura todos os parâmetros de inferência necessários e publica uma versão do seu prompt. Uma vez feito, o código de sua aplicação pode chamar a versão desejada do seu modelo de prompt.

Vantagens-chave de usar prompts predefinidos:

  1. Ajuda sua aplicação a se manter organizada à medida que cresce e usa diferentes prompts, parâmetros e modelos para vários casos de uso.
  2. Auxilia na reutilização de prompts se o mesmo prompt for usado em vários lugares.
  3. Abstrai os detalhes da inferência do LLM de nosso código de aplicação.
  4. Permite que os engenheiros de prompt trabalhem na otimização do prompt no console sem alterar seu código de aplicação real.
  5. Permite uma experimentação fácil, aproveitando diferentes versões de prompts. Você pode ajustar a entrada do prompt, parâmetros como temperatura ou até mesmo o próprio modelo.

Vamos experimentar agora:

  1. Acesse o console Bedrock e clique em “Gerenciamento de Prompt” no painel esquerdo.
  2. Clique em “Criar Prompt” e dê um nome ao seu novo prompt
  3. Insira o texto que deseja enviar para o LLM, juntamente com uma variável de espaço reservado. Eu usei Escreva um poema curto sobre {{tópico}}.
  4. Na seção de Configuração, especifique qual modelo deseja usar e defina os valores dos mesmos parâmetros que usamos anteriormente, como “Temperatura” e “Máximo de Tokens”. Se preferir, pode deixar as configurações padrão como estão.
  5. É hora de testar! Na parte inferior da página, forneça um valor para sua variável de teste. Eu usei “Herói do Desenvolvimento de Software”. Em seguida, clique em “Executar” à direita para ver se está satisfeito com a saída.

Para referência, aqui estão minha configuração e os resultados.

Precisamos publicar uma nova Versão do Prompt para usar este Prompt em sua aplicação. Para fazer isso, clique no botão “Criar Versão” no topo. Isso cria um instantâneo de sua configuração atual. Se desejar brincar com ela, pode continuar editando e criando mais versões.

Depois de publicado, precisamos encontrar o ARN (Amazon Resource Name) da Versão do Prompt navegando até a página do seu Prompt e clicando na versão recém-criada.

Copie o ARN desta versão específica do prompt para usar em seu código.

Uma vez que tenhamos o ARN, podemos atualizar nosso código para invocar esse prompt predefinido. Só precisamos do ARN da versão do prompt e dos valores de quaisquer variáveis que injetamos nele.

Python

 

Como você pode ver, isso simplifica nosso código de aplicativo ao abstrair os detalhes da inferência de LLM e promover a reutilização. Sinta-se à vontade para brincar com os parâmetros dentro do seu prompt, criar diferentes versões e usá-los em seu aplicativo. Você poderia estender isso para um aplicativo de linha de comando simples que recebe a entrada do usuário e escreve um poema curto sobre esse tópico.

Próximos Passos e Melhores Práticas

Depois de se sentir confortável ao usar o Bedrock para integrar um LLM em seu aplicativo, explore algumas considerações práticas e melhores práticas para preparar seu aplicativo para uso em produção. 

Engenharia de Prompt

O prompt que você usa para invocar o modelo pode fazer ou quebrar seu aplicativo. A engenharia de prompt é o processo de criação e otimização de instruções para obter a saída desejada de um LLM. Com os modelos de prompt predefinidos explorados acima, engenheiros de prompt qualificados podem começar com a engenharia de prompt sem interferir no processo de desenvolvimento de software do seu aplicativo. Você pode precisar adaptar seu prompt para ser específico ao modelo que gostaria de usar. Familiarize-se com as técnicas de prompt específicas de cada provedor de modelo. O Bedrock fornece algumas diretrizes para modelos comumente grandes.

Seleção do Modelo

Fazer a escolha certa do modelo é um equilíbrio entre as necessidades da sua aplicação e o custo incorrido. Modelos mais capazes tendem a ser mais caros. Nem todos os casos de uso exigem o modelo mais poderoso, enquanto os modelos mais baratos nem sempre fornecem o desempenho que você precisa. Use o recurso Avaliação do Modelo para avaliar e comparar rapidamente as saídas de diferentes modelos e determinar qual atende melhor às suas necessidades. O Bedrock oferece várias opções para carregar conjuntos de dados de teste e configurar como a precisão do modelo deve ser avaliada para casos de uso individuais.

Ajuste Fino e Expanda Seu Modelo Com RAG e Agentes

Se um modelo pronto para uso não funcionar bem o suficiente para você, o Bedrock oferece opções para ajustar o modelo para o seu caso de uso específico. Crie seus dados de treinamento, faça o upload para o S3 e use o console do Bedrock para iniciar um trabalho de ajuste fino. Você também pode expandir seus modelos usando técnicas como geração aumentada por recuperação (RAG) para melhorar o desempenho para casos de uso específicos. Conecte fontes de dados existentes que o Bedrock disponibilizará para o modelo para aprimorar seu conhecimento. O Bedrock também oferece a capacidade de criar agentes para planejar e executar tarefas complexas de vários passos usando os sistemas e fontes de dados da sua empresa existentes.

Segurança e Proteções

Com Guardrails, você pode garantir que sua aplicação generativa evite com elegância tópicos sensíveis (por exemplo, racismo, conteúdo sexual e palavrões) e que o conteúdo gerado seja fundamentado para evitar alucinações. Essa funcionalidade é crucial para manter os padrões éticos e profissionais de suas aplicações. Aproveite os recursos de segurança integrados do Bedrock e integre-os com seus controles de segurança AWS existentes.

Otimização de Custo

Antes de lançar amplamente sua aplicação ou funcionalidade, considere o custo que a inferência do Bedrock e extensões como RAG incorrerão.

  • Se você puder prever os padrões de tráfego, considere usar o Throughput Provisionado para inferência de modelo mais eficiente e econômica.
  • Se sua aplicação consistir em várias funcionalidades, você pode usar modelos e prompts diferentes para cada funcionalidade para otimizar os custos individualmente.
  • Reveja sua escolha de modelo, bem como o tamanho do prompt que você fornece para cada inferência. O Bedrock geralmente precifica com base em “por token”, então prompts mais longos e saídas maiores incorrerão em mais custos.

Conclusão

O Amazon Bedrock é uma plataforma poderosa e flexível para integrar LLMs em aplicações. Ele fornece acesso a muitos modelos, simplifica o desenvolvimento e oferece recursos robustos de personalização e segurança. Assim, os desenvolvedores podem aproveitar o poder da IA generativa enquanto se concentram em criar valor para seus usuários. Este artigo mostra como começar com uma integração essencial do Bedrock e manter nossos Prompts organizados.

À medida que a IA evolui, os desenvolvedores devem manter-se atualizados com as últimas funcionalidades e melhores práticas no Amazon Bedrock para construir suas aplicações de IA.

Source:
https://dzone.com/articles/amazon-bedrock-prompts-llm-integration-guide