Pular para o conteúdo principal

Amazon Bedrock: Um guia completo para criar aplicativos de IA

Descubra como criar aplicativos de IA generativa usando o Amazon Bedrock. Este tutorial passo a passo orienta você sobre seus recursos, configuração e técnicas de otimização.
Actualizado 31 de jan. de 2025  · 30 min de leitura

A IA generativa se tornou um fator de desestabilização em todos os setores, impulsionando o progresso no processamento de linguagem natural, na visão computacional e em muitas outras áreas. No entanto, o uso de seu potencial tem sido frequentemente acompanhado por desafios de custos, infraestrutura complexa e curvas de aprendizado acentuadas. É aí que entra o AWS Bedrock - essa solução ajuda a desbloquear, permitindo que você use modelos de base sem a necessidade de gerenciar a infraestrutura.

Este tutorial tem como objetivo ser o seu guia completo para o Amazon Bedrock, descrevendo o que ele é, como funciona e como você pode usá-lo. Ao final deste guia, você terá as informações e as habilidades necessárias para desenvolver seus próprios aplicativos de IA generativa - escalonáveis, flexíveis e alinhados às suas metas.

O que é o Amazon Bedrock?

O Amazon Bedrock é um serviço gerenciado da AWS para acessar e gerenciar modelos de fundação (FMs), os blocos de construção básicos da IA generativa da Amazon Web Services (AWS). O Bedrock torna as coisas tão simples que você não precisa se preocupar em provisionar GPUs, configurar pipelines de modelos ou gerenciar qualquer outra infraestrutura.

O AWS Bedrock é uma porta de entrada para a inovação. É uma plataforma unificada que permite aos desenvolvedores explorar, testar e implantar modelos de IA de ponta dos principais fornecedores, como Anthropic, Stability AI e Titan da Amazon.

Por exemplo, imagine que você está desenvolvendo um chatbot de suporte ao cliente. Com o AWS Bedrock, você pode selecionar um modelo de linguagem sofisticado, ajustá-lo às necessidades do seu aplicativo e incorporá-lo ao seu aplicativo sem precisar escrever a configuração do servidor no código.

Recursos do AWS Bedrock

Os recursos do AWS Bedrock foram projetados para simplificar e acelerar a jornada do conceito de IA à produção. Vamos analisá-los em detalhes.

Acesso a vários modelos de fundação

Um dos benefícios mais significativos do AWS Bedrock é a variedade de modelos de fundação disponíveis. Não importa se você está trabalhando em aplicativos de texto, conteúdo visual ou IA segura e interpretável, a Bedrock tem o que você precisa. Aqui estão alguns dos modelos disponíveis:

  • Modelos da Amazon: Esses modelos proprietários podem ser usados para tarefas como a criação de texto semelhante ao humano para chatbots ou aplicativos de criação de conteúdo, reduzindo o tamanho de documentos à sua essência ou interpretando o sentimento do feedback do cliente.
  • Modelos antrópicos: Esses modelos se concentram no desenvolvimento de uma inteligência artificial boa e segura e são mais adequados para setores que exigem conformidade e confiança, como o setor bancário ou de saúde.
  • IA de estabilidade: Os modelos de IA de estabilidade são bem conhecidos por sua geração de imagens. Eles ajudam a transformar ideias em recursos visuais para marketing, arte ou desenvolvimento de produtos.

Diagrama do Amazon Bedrock, conectando-se ao Amazon Models, Anthropic, Stability AI e outros provedores, ilustrando sua função como um hub para serviços de IA generativa.

Visão geral do Amazon Bedrock, destacando sua integração com modelos.

Não há gerenciamento de infraestrutura

O AWS Bedrock abstrai o gerenciamento da infraestrutura, o que significa que você pode usar o AWS Bedrock para fazer o gerenciamento da infraestrutura:

  • Não há necessidade de provisionar instâncias de GPU.
  • Você pode se concentrar apenas na criação de aplicativos com uma arquitetura sem servidor.
  • A facilidade de uso reduz significativamente o tempo de configuração, muitas vezes de semanas para horas.

Escalabilidade e flexibilidade

Os aplicativos geradores de IA normalmente têm uma demanda imprevisível. Um chatbot pode responder a centenas de usuários nos horários de pico e a apenas alguns à noite. Mas o AWS Bedrock resolve isso com sua escalabilidade integrada:

  • Dimensionamento automático: Isso significa que os modelos podem se ajustar automaticamente para lidar com picos de carga de trabalho sem que você precise intervir manualmente.
  • Cargas de trabalho paralelas: Você pode executar vários modelos ao mesmo tempo para diferentes casos de uso em um único aplicativo.
  • Disponibilidade global: Com a rede global do AWS, você pode implantar seus aplicativos mais perto dos usuários, reduzindo a latência e melhorando a experiência do usuário.

Integração com o ecossistema da AWS

O AWS Bedrock vai além de fornecer modelos avançados - ele se integra a outros serviços da AWS para oferecer suporte a fluxos de trabalho de IA de ponta a ponta. Algumas integrações incluem:

  • Amazon SageMaker: Permite o ajuste fino dos modelos de fundação para atender a requisitos específicos.
  • AWS Lambda: Facilita os aplicativos de IA orientados por eventos, como o acionamento de um modelo para ajustar novos dados ou revisar os resultados da inferência.
  • Amazon CloudWatch: Fornece recursos de monitoramento e registro para analisar o desempenho do modelo e obter feedback do usuário.
  • Amazon S3: Serve como uma solução de armazenamento para conjuntos de dados, permitindo o rastreamento do desempenho e a análise de custos.

Configuração do AWS Bedrock

Esta seção orientará você na configuração das permissões necessárias, na criação de uma conta da AWS e na introdução ao AWS Bedrock.

Etapa 1: Criar uma conta do AWS (se você ainda não tiver feito isso)

Se você ainda não tiver uma, vá para a página de inscrição da AWS e crie uma conta. Para usuários existentes, verifique se o usuário do IAM tem privilégios de administrador.

Página de registro do AWS com um formulário para inserir um endereço de e-mail de usuário raiz e o nome da conta do AWS.

A página de registro do AWS, que mostra a exploração do produto Free Tier para novas contas.

Se você estiver procurando por etapas detalhadas, visite o guia oficial da AWS.

Etapa 2: Navegando para o AWS Bedrock

Você pode acessar o Amazon Bedrock por meio do console de gerenciamento do AWS. Siga estas etapas para localizar e começar a usá-la:

  • Faça login no console de gerenciamento da AWS: Navegue até o Console do AWS e insira suas credenciais de login.
  • Procure por Bedrock: Use a barra de pesquisa na parte superior do console. Digite "Bedrock" e selecione-o no menu suspenso.

Captura de tela dos resultados de pesquisa do AWS Management Console para "Bedrock", exibindo o Amazon Bedrock como o serviço para criar aplicativos de IA generativa, o Amazon SageMaker para análise de dados e IA e uma introdução destacada à pesquisa de recursos com recursos entre regiões

Resultados da pesquisa do AWS Management Console para Bedrock.

  • Explore o painel de controle do Bedrock: Uma vez no painel do Bedrock, você verá opções para escolher provedores de modelos e modelos de fundação.

Captura de tela da página Amazon Bedrock Providers que apresenta três provedores de modelos sem servidor: Amazon, Anthropic e Meta

Página do Amazon Bedrock Providers apresentando opções de modelos sem servidor da Amazon.

  • Selecione um provedor de modelo e um modelo de fundação:
    • Escolha um provedor com base no seu caso de uso (por exemplo, Amazon Titan para geração de texto, Stability AI para imagens etc.).
    • Explore as opções específicas do modelo, como tipos de entrada, recursos compatíveis e parâmetros de saída.
  • Execute uma inferência de teste: O AWS Bedrock permite que você execute inferências de amostra diretamente do console. Essa é uma ótima maneira de você ter uma ideia de como cada modelo funciona antes de integrá-lo ao seu aplicativo.

Captura de tela do Amazon Bedrock Chat/Text Playground, apresentando o modelo Claude 3 Opus. A interface inclui opções para você inserir um prompt, executar respostas e comparar modelos diferentes. O painel esquerdo lista opções como "Getting started" (Introdução), "Foundation models" (Modelos de base), "Playgrounds", "Builder tools" (Ferramentas de criação) e "Safeguards" (Proteções).

Interface do Amazon Bedrock Chat/Text Playground.

Etapa 3: Configuração das permissões do IAM

O AWS Identity and Access Management (IAM) é essencial para que você acesse o AWS Bedrock com segurança. Siga estas etapas para configurar as permissões:

  • No console de gerenciamento do AWS, navegue até a pasta IAM para que você possa acessar o serviço IAM.
  • Clique em Funções na barra lateral e selecione Criar política.
  • Em Especifique as permissões, escolha "JSON".

Captura de tela do AWS IAM Policy Editor no modo JSON, mostrando uma política parcialmente configurada com uma lista vazia de "Ação" e "Recurso". A barra lateral esquerda indica um processo de duas etapas: "Especificar permissões" e "Revisar e criar". O painel direito oferece opções para adicionar ações, filtrar serviços e remover declarações.

Editor de políticas do AWS IAM no modo JSON

  • Cole a política abaixo na caixa de texto:
{
    "Version": "2012-10-17",
    "Statement": [        {
            "Sid": "BedrockFullAccess",
            "Effect": "Allow",
            "Action": ["bedrock:*"],
            "Resource": "*"
        }
    ]
}

Observação: A política acima pode ser anexada a qualquer função que precise acessar o serviço Amazon Bedrock. Pode ser o SageMaker ou um usuário. Ao usar o Amazon SageMaker, a função de execução do notebook normalmente é um usuário ou função diferente daquele que você usa para fazer login no AWS Management Console. Para saber como explorar o serviço Amazon Bedrock usando o Console da AWS, certifique-se de que você autorizou seu usuário ou função no Console. Você pode executar os notebooks em qualquer ambiente com acesso ao serviço AWS Bedrock e credenciais válidas.

Usando o Amazon Bedrock para aplicativos de IA generativa

Os aplicativos de IA generativa são desenvolvidos com base em modelos básicos que são ajustados para uma tarefa específica, como geração de texto, criação de imagens ou transformação de dados. A seguir, você encontrará um guia passo a passo sobre como escolher um modelo básico, usar trabalhos de inferência básicos e modificar as respostas do modelo para atender às suas necessidades.

Seleção de um modelo de fundação

A escolha do modelo de fundação correto é importante porque depende das necessidades do seu projeto. Veja como você pode fazer uma seleção:

1. Identifique seu caso de uso:

  • Geração de texto: Para tarefas como resumo, criação de conteúdo ou desenvolvimento de chatbot, considere modelos como:
    • Amazon Titan Text G1: Esse modelo gera um texto de alta qualidade com uma boa compreensão do contexto.
    • Cláusula antrópica 3: Esse modelo é muito bom em produzir textos coerentes e relevantes para o contexto e, portanto, é adequado para aplicativos de IA de conversação.
  • Geração de imagens: Se o seu projeto trata da criação de imagens ou de qualquer forma de conteúdo visual, os modelos Stability AI são a melhor opção:
    • Difusão estável 3.5 Grande: Esse modelo é muito bom para gerar imagens a partir de descrições de texto, sejam elas fotorrealistas ou artísticas.
  • Tarefas multimodais: Para aplicativos que precisam de processamento de texto e imagem, os modelos Amazon Nova são recomendados:
    • Nova Lite: Um modelo multimodal sensível ao custo que pode receber texto, imagem e vídeo e gerar texto.
    • Nova Pro: Um modelo multimodal competente para tarefas mais complexas.

2. Avalie os recursos do modelo:

  • Analise os pontos fortes específicos de cada modelo para garantir o alinhamento com as necessidades do seu projeto. Informações detalhadas sobre os modelos de base compatíveis, incluindo seus recursos e regiões compatíveis, estão disponíveis na documentação do AWS.

Habilitando o acesso ao modelo

Antes de usar esses modelos, você precisa habilitar o acesso ao modelo na sua conta do AWS. Aqui estão as etapas para você configurá-lo:

  • No console do Bedrock, navegue até Acesso a modelos.
  • No Console, clique em Modificar acesso ao modelo.
  • Navegue pelos modelos disponíveis dos fornecedores e selecione o que você gosta. Nesse caso, selecionei Titan Text G1-Express.

Captura de tela da página "Edit model access" do Amazon Bedrock, mostrando uma lista de modelos do Amazon Titan com seus status de acesso. A interface inclui opções para filtrar modelos, expandir ou recolher seções e agrupar modelos por provedor. O painel esquerdo mostra um processo de duas etapas: "Editar acesso ao modelo" e "Revisar e enviar".

Página de gerenciamento de acesso ao modelo Amazon Bedrock.

  • Clique em Próximoe, em seguida, clique em Revisar e enviar.

Execução de inferência básica

Para realizar a inferência usando um modelo de fundação selecionado no AWS Bedrock, siga estas etapas:

  • Configure o AWS SDK para Python (boto3):
pip install boto3
  • Inicialize o cliente Bedrock: Crie um cliente de tempo de execução do Bedrock na região do AWS que você escolher:
import boto3
import json
from botocore.exceptions import ClientError

# Set the AWS Region
region = "us-east-1"

# Initialize the Bedrock Runtime client
client = boto3.client("bedrock-runtime", region_name=region)
  • Chame o modelo: Defina a ID do modelo e o prompt de entrada:
# Define the model ID for Amazon Titan Express v1
model_id = "amazon.titan-text-express-v1"

# Define the input prompt
prompt = """
Command: Compose an email from Tom, Customer Service Manager, to the customer "Nancy" 
who provided negative feedback on the service provided by our customer support 
Engineer"""
  • Formatar a carga útil da solicitação:
# Configure inference parameters
inference_parameters = {
   "inputText": prompt,
   "textGenerationConfig": {
       "maxTokenCount": 512,  # Limit the response length
       "temperature": 0.5,    # Control the randomness of the output
   },
}

# Convert the request payload to JSON
request_payload = json.dumps(inference_parameters)
  • Processe a resposta:
try:
   # Invoke the model
   response = client.invoke_model(
       modelId=model_id,
       body=request_payload,
       contentType="application/json",
       accept="application/json"
   )

   # Decode the response body
   response_body = json.loads(response["body"].read())

   # Extract and print the generated text
   generated_text = response_body["results"][0]["outputText"]
   print("Generated Text:\n", generated_text)

except ClientError as e:
   print(f"ClientError: {e.response['Error']['Message']}")
except Exception as e:
   print(f"An error occurred: {e}")

Observação: Você pode acessar e copiar o código completo diretamente do Gist do GitHub.

Você pode esperar o resultado abaixo:

% python3 main.py

Generated Text:
 
Tom:
Nancy,

I am writing to express my sincere apologies for the negative experience you had with our customer support engineer. It is unacceptable that we did not meet your expectations, and I want to assure you that we are taking steps to prevent this from happening in the future.

Sincerely,
Tom
Customer Service Manager

Personalização dos resultados do modelo

Para ajustar o comportamento da saída do modelo, você pode ajustar parâmetros como temperature e maxTokenCount:

  • temperature: Esse parâmetro controla a aleatoriedade da saída. Valores mais baixos aumentam a determinação do resultado, e valores mais altos aumentam a variabilidade.
  • MaxTokenCount: Define o comprimento máximo da saída gerada.

Por exemplo:

inference_parameters = {
   "inputText": prompt,
   "textGenerationConfig": {
       "maxTokenCount": 256,  # Limit the response length
       "temperature": 0.7,    # Control the randomness of the output
   },
}

Ao ajustar esses parâmetros, você pode adaptar melhor a criatividade e a duração do conteúdo gerado às necessidades do seu aplicativo.

Recursos avançados do Amazon Bedrock

Vamos mudar de marcha e nos concentrar em duas abordagens avançadas: aprimorar a IA usando Retrieval-Augmented Generation (RAG) e gerenciar e implantar modelos em escala.

Personalização de resultados de IA com geração aumentada por recuperação (RAG)

O RAG exige que você tenha uma base de conhecimento. Antes de configurar a base de conhecimento no Amazon Bedrock, você precisa criar um bucket S3 e carregar os arquivos necessários. Siga estas etapas:

Etapa 1: Criar um bucket S3

  • Faça login no console de gerenciamento do AWS:
    • Vá para o Serviço S3 no console de gerenciamento do AWS.
  • Criar um novo balde:
    • Clique em Criar balde.
    • Insira um nome de bucket exclusivo.
    • Deixe as configurações padrão, a menos que você tenha requisitos específicos de segurança ou criptografia.
  • Configurar as definições do compartimento:
    • Certifique-se de que o acesso público bloqueado esteja ativado, a menos que você precise dele.
    • (Opcional) Ative o controle de versão se você quiser manter versões dos seus arquivos.
  • Criar o balde:
    • Clique em Criar balde para finalizar a configuração.

Etapa 2: Fazer upload de arquivos para o bucket S3

  • Faça o download do arquivo:
    • O link fornecido do GitHub fornece um arquivo PDF de amostra com dados de simulação: octank_financial_10K.pdf. Você pode usar um arquivo diferente, se desejar.
    • Salve-o localmente em seu computador.
  • Faça o upload do arquivo para o S3:
    • Abra o bucket S3 recém-criado no Console do AWS.
    • Clique em Upload e selecione o arquivo octank_financial_10K.pdf.
    • Revise e defina as permissões (padrão: privado).
    • Clique em Carregar para adicionar o arquivo ao bucket.

Captura de tela de um bucket do Amazon S3 chamado "amazon-bedrock-099", exibindo a guia "Objects" (Objetos) com um único arquivo PDF chamado "octank_financial_10K.pdf".

Visualização do bucket do Amazon S3 para "amazon-bedrock-099".

O Amazon Bedrock permite que você crie uma base de conhecimento alimentada por bancos de dados vetoriais. As etapas a seguir orientarão você na criação de uma base de conhecimento, na configuração de uma fonte de dados e na seleção de embeddings e armazenamentos de vetores.

Etapa 1: Forneça os detalhes da base de conhecimento

  • Navegue até o Console do Amazon Bedrock e selecione Bases de conhecimento na seçãoFerramentas do construtor.
  • Clique em Criar base de conhecimento e preencha os seguintes detalhes:
    • Nome da base de conhecimento: Digite um nome exclusivo (por exemplo, knowledge-base-quick-start).
    • Descrição da base de conhecimento: (Opcional) Descreva brevemente a base de conhecimento.
  • Nas Permissões do IAM seção:
    • Escolha "Criar e usar uma nova função de serviço" ou "Usar uma função de serviço existente".
    • Certifique-se de que a função de serviço tenha as permissões necessárias para o acesso ao Bedrock.
    • Exemplo de função de serviço: AmazonBedrockExecutionRoleForKnowledgeBase.
  • Clique em Próximo para prosseguir com a configuração da fonte de dados.

Captura de tela da interface de criação da Base de Conhecimento do Amazon Bedrock, mostrando as etapas para configurar uma base de conhecimento.

Assistente de criação da Base de Conhecimento do Amazon Bedrock.

Etapa 2: Configurar a fonte de dados

  • Na seção Detalhes da fonte de dados, escolha a fonte de dados:
    • Amazon S3: Selecione essa opção, pois seus dados estão armazenados no S3.
  • Especifique o seguinte:
    • Localização da fonte de dados: Escolha entre "Esta conta da AWS" ou "Outra conta da AWS".
    • S3 URI: Forneça o URI do bucket S3 que contém os dados. Escolha o S3 que você criou na etapa anterior e o arquivo.
    • Chave de criptografia: (Opcional) Adicione uma chave KMS gerenciada pelo cliente se seus dados estiverem criptografados.
  • Configure a estratégia de análise:
    • Analisador padrão: Processa dados de texto simples. Você pode deixá-lo como está.
    • Modelos básicos como analisador: Processa documentos ou imagens complexas. Você pode deixá-lo como está.
  • Estratégia de fragmentação:
    • A configuração padrão divide o texto em blocos de aproximadamente 300 tokens para incorporação. Você pode deixá-lo como está.
  • (Opcional) Adicione funções de transformação ou configurações avançadas para pré-processar seus dados. Você pode deixá-lo como está.
  • Clique em Próximo para prosseguir.

Captura de tela da interface de configuração da fonte de dados do Amazon Bedrock, mostrando as configurações para conectar uma fonte de dados do Amazon S3

Página de configuração da fonte de dados Amazon Bedrock para integração de uma base de conhecimento baseada em S3.

Etapa 3: Selecione o modelo de incorporação e configure o armazenamento de vetores

  • Escolha um modelo Embeddings para converter seus dados em representações vetoriais:
    • Titan Embeddings G1 - Texto v1.2 (Você pode escolher este para este tutorial).
    • Incorporar inglês v3
    • Embed Multilingual v3
  • No banco de dados Banco de dados de vetores seção:
    • Escolha "Quick create a new vector store" (recomendado) ou selecione uma loja existente.
    • As opções incluem:
      • Amazon OpenSearch Serverless: Isso é ideal para respostas contextualmente relevantes. Você pode escolhê-la para o propósito deste tutorial.
      • Amazon Aurora PostgreSQL Serverless: Otimizado para pesquisas rápidas de similaridade.
      • Amazon Neptune Analytics: Adequado para análise baseada em gráficos e Geração Aumentada por Recuperação (RAG).
  • Clique em Próximo para revisar e finalizar sua configuração.

Captura de tela da interface do Amazon Bedrock para selecionar um modelo de embeddings e configurar um banco de dados vetorial.

Página de configuração do Amazon Bedrock para selecionar um modelo de incorporação e um armazenamento de vetores.

Etapa 4: Revisar e criar

  • Revise todas as configurações que você tem.
  • Confirme e clique em Criar para finalizar a base de conhecimento.
  • Depois de criada, sua base de conhecimento aparecerá na seção Bases de conhecimento no console.

Etapa 5: Teste a base de conhecimento

  • Acesse a visão geral da base de conhecimento:
    • Vá para as Bases de conhecimento no Console do Amazon Bedrock.
    • Selecione a base de conhecimento que você criou (por exemplo, knowledge-base-quick-start).
    • Revise os detalhes da visão geral:
      • Nome e ID da base de conhecimento
      • Verifique se ele está definido como "Disponível".
      • Verifique se a função de serviço correta está em uso.
  • Sincronizar e adicionar fontes de dados:
    • Se a fonte de dados não tiver sido sincronizada, clique em Sincronizar para iniciar o processo.
    • Você também pode adicionar mais documentos ou fontes de dados por meio de Adicionar documentos do S3.

Captura de tela da página de visão geral da Base de Conhecimento do Amazon Bedrock, exibindo detalhes importantes, como nome da base de conhecimento, ID, função de serviço, status e tipo de geração aumentada por recuperação (RAG).

A visão geral da Base de Conhecimento do Amazon Bedrock mostra detalhes de configuração e status da fonte de dados.

Etapa 6: Selecione um modelo para teste

  • Escolha um modelo de fundação:
    • Clique em Selecionar modelo na seção Testar base de conhecimento você pode selecionar um modelo.
    • Procure os modelos disponíveis de fornecedores como Amazon, Anthropic e Cohere.
    • Exemplo: Selecione Claude Instant (v1.2) para consultas baseadas em texto.
  • Tipo de inferência:
    • Escolha Sob demanda se você não tiver uma taxa de transferência provisionada configurada.
  • Aplique o modelo:
    • Clique em Aplicar para finalizar a seleção do modelo.

Captura de tela da interface "Select model" do Amazon Bedrock, exibindo provedores de modelos, incluindo Amazon, Anthropic, Cohere, Meta e Mistral AI.

A interface de seleção de modelos do Amazon Bedrock apresenta vários modelos Claude da Anthropic.

Etapa 7: Executar consultas e gerar respostas

  • Gerar uma resposta:
    • Digite sua consulta na caixa de entrada (por exemplo, "Help me with Financial Statement Schedules").
    • Clique em Executar para testar a base de conhecimentos.
  • Ver detalhes da fonte:
    • A resposta incluirá partes de dados relevantes para sua consulta.
    • Expandir Detalhes da fonte para visualizar os metadados e a fonte das informações recuperadas.
  • Revise a saída:
    • Valide a resposta para garantir que ela esteja alinhada com o conteúdo da base de conhecimento.
    • Faça o ajuste fino das configurações de recuperação, se necessário.

Captura de tela da página de teste da Base de Conhecimento do Amazon Bedrock. O modelo selecionado é o "Claude Instant v1.2" definido para inferência sob demanda.

Interface de teste da Base de Conhecimento do Amazon Bedrock exibindo uma resposta para uma consulta.

Exemplo de saída de consulta:

  • Consulta: "Ajude-me com os cronogramas de demonstrações financeiras."
  • Resposta: A base de conhecimento recuperará dados detalhando itens de linha específicos em demonstrações financeiras, como cronogramas de ativos, passivos e metadados relacionados.

Gerenciamento e implantação de modelos de IA em escala

Usando os serviços da AWS, como o Lambda, o Amazon Bedrock pode gerenciar e implementar modelos de IA em escala. Essa abordagem econômica garante alta disponibilidade e é dimensionada automaticamente para aplicativos alimentados por IA. 

Nesta seção, usaremos o AWS Lambda para invocar um modelo do Bedrock dinamicamente para que você possa processar prompts sob demanda.

Etapa 1: Criar uma função AWS Lambda

  • Faça login no console de gerenciamento do AWS.
  • Navegue até o arquivo Lambda e clique em Criar função.
  • Escolha a configuração da função:
    • Selecione "Author from Scratch" (Autor do zero).
    • Nome da função: leito rochoso.
    • Tempo de execução: Python 3.x.
    • Permissões: Selecione uma função IAM que tenha sido criada na seção inicial deste tutorial.
  • Clique em Criar função para inicializar a configuração.

Captura de tela da interface de criação de funções do AWS Lambda. A opção selecionada é "Criar do zero", e o nome da função é definido como "bedrock".

Página de criação da função AWS Lambda.

Etapa 2: Adicione o código da função Lambda

  • Abra o editor de funções na seção Código do console do Lambda.
  • Substitua o código padrão pelo código fornecido no Gist do Github.
  • Clique em Implantar para salvar as alterações.

Etapa 3: Teste a função Lambda

  • Vá para a guia Teste no console do Lambda e crie um evento de teste com o seguinte JSON:
{
    "prompt": "Write a formal apology letter for a late delivery."
}
  • Salve o evento de teste.
  • Clique em Testar para chamar a função Lambda.
  • Verifique a saída na seçãoResultados da execução. O texto gerado deve ter a seguinte aparência:

Captura de tela dos resultados da execução do AWS Lambda indicando uma execução bem-sucedida da função

Resultado da execução do AWS Lambda mostrando uma execução bem-sucedida da função.

Práticas recomendadas para a implantação de modelos de IA

Otimizar o custo:

  • Use a inferência sob demanda para casos de uso ocasionais.
  • Considere a taxa de transferência provisionada se forem esperadas solicitações de alta frequência.

Proteja a função Lambda:

  • Restringir a função de IAM somente às permissões necessárias.
  • Use variáveis de ambiente para evitar a exposição de dados confidenciais no código.

Monitoramento e registro:

  • Use os registros do CloudWatch para rastrear as métricas de invocação e depurar problemas.
  • Configure alarmes para erros ou alta latência.

Práticas recomendadas para usar o AWS Bedrock

Nesta seção, compartilho algumas práticas recomendadas ao trabalhar com o Amazon Bedrock, desde a otimização de custos até a manutenção da segurança e da precisão. 

Otimização de custos

O gerenciamento de custos no AWS Bedrock pode envolver o uso do Amazon SageMaker para implementar modelos e utilizar instâncias Spot para economizar até 90% das despesas. Aqui estão algumas de minhas práticas recomendadas:

  • Escolha o modelo certo de fundação: Selecione modelos que se alinhem às suas necessidades. Escolha modelos menores e com menos recursos para reduzir os custos de computação para tarefas menos complexas. Por exemplo, o Amazon Titan Models pode ser usado para tarefas baseadas em texto, como resumo, ou o Stability AI para geração simples de imagens.
  • Inferência em lote: Em vez de processar solicitações individualmente, agrupe várias solicitações de inferência em lotes. Isso reduz a frequência de invocações de modelos, levando a custos menores.
  • Aproveite as políticas de ciclo de vida do S3: Armazene apenas os dados que você precisa para inferência ou ajuste fino no Amazon S3. Use políticas de ciclo de vida para mover automaticamente os dados para camadas de armazenamento mais baratas (por exemplo, S3 Glacier) ou excluir dados não utilizados após um tempo definido.
  • Monitorar e controlar os gastos: Use o AWS Cost Explorer para analisar seus padrões de gastos e identificar áreas para otimização. Configure o AWS Budgets para receber alertas quando você se aproximar de limites de custo predefinidos.

Gráfico que mostra o custo e o uso dos serviços do Amazon Bedrock

Gráfico de custo e uso dos serviços do Amazon Bedrock.

  • Use o Bedrock com o SageMaker para obter eficiência de custos: Use os modelos da base Bedrock no SageMaker para aproveitar as instâncias gerenciadas do Spot para trabalhos de inferência e treinamento.
  • Use instâncias Spot no SageMaker: As instâncias Spot podem reduzir os custos do em até 90% em comparação com as instâncias On-Demand. O SageMaker lida com as interrupções do Spot em seu nome, repetindo automaticamente os trabalhos de treinamento se a capacidade do Spot ficar indisponível. Exemplo:
from sagemaker.mxnet import MXNet

# Use spot instances for cost efficiency
use_spot_instances = True

# Maximum runtime for the training job (in seconds)
max_run = 600

# Maximum wait time for Spot instance availability (in seconds); set only if using Spot instances
max_wait = 1200 if use_spot_instances else None

# Define the MXNet estimator for the training job
mnist_estimator = MXNet(
    entry_point='source_dir/mnist.py',  # Path to the script that contains the model training code
    role=role,  # IAM role used for accessing AWS resources (e.g., S3, SageMaker)
    output_path=model_artifacts_location,  # S3 location to save the trained model artifacts
    code_location=custom_code_upload_location,  # S3 location to upload the training script
    instance_count=1,  # Number of instances to use for training
    instance_type='ml.m4.xlarge',  # Instance type for the training job
    framework_version='1.6.0',  # Version of the MXNet framework to use
    py_version='py3',  # Python version for the environment
    distribution={'parameter_server': {'enabled': True}},  # Enable distributed training with a parameter server
    hyperparameters={  # Training hyperparameters
        'learning-rate': 0.1,  # Learning rate for the training job
        'epochs': 5  # Number of training epochs
    },
    use_spot_instances=use_spot_instances,  # Enable Spot instances for cost savings
    max_run=max_run,  # Maximum runtime for the training job
    max_wait=max_wait,  # Maximum wait time for Spot instance availability
    checkpoint_s3_uri=checkpoint_s3_uri  # S3 URI for saving intermediate checkpoints
)

# Start the training job and specify the locations of training and testing datasets
mnist_estimator.fit({
    'train': train_data_location,  # S3 location of the training dataset
    'test': test_data_location  # S3 location of the testing/validation dataset
})
  • Use as métricas e os registros do CloudWatch: As métricas e os registros de treinamento estão disponíveis no Amazon CloudWatch, fornecendo informaçõessobre o desempenho e o uso de recursos.

Captura de tela dos eventos de registro do AWS CloudWatch, exibindo entradas para um modelo de aprendizado de máquina no caminho /opt/ml/model. Cada registro inclui um registro de data e hora, IP de origem e solicitação HTTP GET para /ping com um código de status 200.

Registros do AWS CloudWatch

Segurança

Para garantir a segurança, a conformidade e o desempenho do Amazon Bedrock, é importante que você siga as práticas recomendadas. Aqui estão minhas recomendações:

  • Aplique o acesso de privilégio mínimo: Restrinja as permissões de IAM e as funções de serviço apenas aos recursos necessários para evitar o acesso não autorizado.
  • Validar funções de serviço e grupos de segurança: Certifique-se de que os agentes do Bedrock e os trabalhos de personalização de modelos estejam configurados corretamente com funções de serviço ativas e configurações de segurança.
  • Execute cargas de trabalho em uma VPC: Aumente a segurança executando trabalhos de personalização e processamento de dados comthin a Virtual Private Cloud (VPC).
  • Criptografar dados críticos: Use as chaves gerenciadas pelo cliente (CMKs) do Amazon KMS para criptografar sessões de agentes, espaços de trabalho do Bedrock Studio, modelos personalizados e dados transitórios da base de conhecimento.
  • Implemente políticas de exclusão de dados: Mantenha os dados armazenados em vetores somente quando as fontes baseadas em conhecimento estiverem ativas; configure a exclusão automática quando não for mais necessário.
  • Fortaleça as grades de proteção do leito rochoso: Defina Prompt Attack Strength como HIGH e ative os filtros de informações confidenciais para proteger contra ataques adversários e vazamentos de dados.
  • Sessões seguras do agente: Use grades de proteção para impedir o acesso não autorizado e proteger interações confidenciais.
  • Habilite o registro em log para visibilidade: Ative o registro de invocação de modelo no nível da conta para rastrear a atividade e detectar anomalias.
  • Defenda-se contra ataques entre serviços: Use políticas de função de serviço para evitar ataques de delegados confusos entre serviços.

Monitoramento e avaliação de modelos

A garantia de que os modelos sejam precisos, confiáveis e alinhados aos objetivos comerciais é obtida por meio do monitoramento e da avaliação dos modelos. Aqui estão algumas práticas recomendadas:

  • Acompanhe as métricas de desempenho: Use o CloudWatch para monitorar a latência, os erros e as tendências de invocação.
  • Registre entradas e saídas: Ative o registro detalhado para depuração e análise de tendências.
  • Incorporar loops de feedback: Use ferramentas como a Amazon A2I para incluir revisões humanas de produtos críticos.
  • Avalie os resultados regularmente: Compare os resultados com os conjuntos de dados de validação ou com a verdade básica.
  • Melhore continuamente os modelos: Faça o ajuste fino dos modelos com conjuntos de dados atualizados ou dados de domínio específicos, conforme necessário.

Painel com quatro gráficos que acompanham as métricas dos modelos Amazon Bedrock.

O painel de métricas exibe a contagem de invocações, a latência e a contagem de tokens para vários modelos no Amazon Bedrock.

Conclusão

O AWS Bedrock é um divisor de águas na forma como os aplicativos de IA generativa são desenvolvidos e uma plataforma centralizada para usar modelos básicos sem se preocupar com a infraestrutura. 

Deste ponto em diante, este tutorial passo a passo deve ajudar você a identificar os modelos certos, criar fluxos de trabalho seguros e dimensionáveis e integrar recursos como a geração aumentada por recuperação (RAG) para maior personalização. Com as práticas recomendadas de custo, segurança e monitoramento em vigor, você está pronto para desenvolver e gerenciar suas soluções de IA para atender aos seus objetivos.

Para aprofundar ainda mais sua experiência em AWS, explore estes cursos:

Desenvolver aplicativos de IA

Aprenda a criar aplicativos de IA usando a API OpenAI.
Comece a treinar gratuitamente

Rahul Sharma's photo
Author
Rahul Sharma
LinkedIn
Twitter

Rahul Sharma é embaixador da AWS, arquiteto de DevOps e blogueiro técnico especializado em computação em nuvem, práticas de DevOps e tecnologias de código aberto. Com experiência em AWS, Kubernetes e Terraform, ele simplifica conceitos complexos para alunos e profissionais por meio de artigos e tutoriais envolventes. Rahul é apaixonado por resolver desafios de DevOps e compartilhar insights para capacitar a comunidade de tecnologia.

Temas

Saiba mais sobre a AWS com estes cursos!

curso

AWS Cloud Technology and Services Concepts

3 hr
7.4K
Master AWS cloud technology with hands-on learning and practical applications in the AWS ecosystem.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Como aprender IA do zero em 2024: Um guia completo dos especialistas

Descubra tudo o que você precisa saber sobre o aprendizado de IA em 2024, desde dicas para começar, recursos úteis e insights de especialistas do setor.
Adel Nehme's photo

Adel Nehme

20 min

blog

Os 7 principais geradores de vídeo com IA para 2024 com vídeos de exemplo

Descubra os principais geradores de vídeo com IA disponíveis atualmente, incluindo RunwayML, Synthesia, Colossyan, Pictory, DeepBrain AI, Invideo e os altamente esperados Sora e Veo da DeepMind.

tutorial

O guia completo para machine learning na AWS com o Amazon SageMaker

Este tutorial abrangente ensina você a usar o AWS SageMaker para criar, treinar e implantar modelos de machine learning. Nós guiamos você por todo o fluxo de trabalho, desde a configuração do seu ambiente AWS e a criação de uma instância de notebook do SageMaker até a preparação de dados, modelos de treinamento e sua implementação como endpoints.
Bex Tuychiev's photo

Bex Tuychiev

25 min

tutorial

Primeiros passos com o AWS Athena: Um guia prático para iniciantes

Este guia prático ajudará você a começar a usar o AWS Athena. Explore sua arquitetura e seus recursos e saiba como consultar dados no Amazon S3 usando SQL.
Tim Lu's photo

Tim Lu

28 min

tutorial

Tutorial da API de assistentes da OpenAI

Uma visão geral abrangente da API Assistants com nosso artigo, que oferece uma análise aprofundada de seus recursos, usos no setor, orientação de configuração e práticas recomendadas para maximizar seu potencial em vários aplicativos de negócios.
Zoumana Keita 's photo

Zoumana Keita

14 min

tutorial

Como usar o Midjourney: Um guia abrangente para a criação de obras de arte geradas por IA

Descubra o poder do Midjourney, uma ferramenta de IA generativa para criar obras de arte impressionantes. Saiba como começar, escrever prompts eficazes e otimizar seu uso com nosso guia passo a passo.
Kurtis Pykes 's photo

Kurtis Pykes

12 min

Ver maisVer mais