O blog da AWS

Crie aplicativos de IA Generativa usando o AWS Step Functions e o Amazon Bedrock

Por Marcia Villalba

Em 26/11/2023 anunciamos duas novas integrações otimizadas para o AWS Step Functions com o Amazon Bedrock. O Step Functions é um serviço visual de workflow que ajuda os desenvolvedores a criar aplicativos distribuídos, automatizar processos, orquestrar microsserviços e criar pipelines de dados e aprendizado de máquina (ML – Machine Learning).

Em setembro, disponibilizamos o Amazon Bedrock, a maneira mais fácil de criar e escalar aplicativos de inteligência artificial generativa (Gen IA) com modelos fundacionais básicos (FMs – Foundation Models). O Bedrock oferece uma variedade de modelos fundacionais de empresas líderes no setor como a AI21 Labs, Anthropic, Cohere, Stability AI, e Amazon, além de um amplo conjunto de recursos que os clientes precisam para criar aplicativos de IA generativa, mantendo a privacidade e a segurança. Você pode usar o Amazon Bedrock a partir do AWS Management Console, da AWS Command Line Interface (AWS CLI) ou dos AWS SDKs.

As novas integrações otimizadas do Step Functions com o Amazon Bedrock permitem que você orquestre tarefas para criar aplicativos de IA generativa usando o Amazon Bedrock, bem como, para se integrar com mais de 220 serviços da AWS. Com o Step Functions, você pode desenvolver, inspecionar e auditar visualmente seus workflows. Anteriormente, você precisava invocar uma função do AWS Lambda para usar o Amazon Bedrock a partir de seus workflows, adicionando mais código para mantê-los e aumentando os custos de seus aplicativos.

O Step Functions fornece duas novas ações de API otimizadas para o Amazon Bedrock:

•          InvokeModel— Essa integração permite que você invoque um modelo e execute as inferências com base nos parâmetros de entrada. Use essa ação de API para executar inferências para modelos de texto, imagem e embedding models.

•          CreateModelCustomizationJob— Essa integração cria um job de ajuste fino para personalizar um modelo básico. Nos parâmetros, você especifica o modelo básico e a localização dos dados de treinamento. Quando o trabalho for concluído, seu modelo personalizado estará pronto para ser usado. Essa é uma API assíncrona e essa integração permite que o Step Functions execute um trabalho e aguarde sua conclusão antes de prosseguir para o próximo estado. Isso significa que a execução da máquina de estado será pausada enquanto a tarefa de personalização do modelo de criação estiver em execução e será retomada automaticamente quando a tarefa for concluída.

A ação InvokeModel da API aceita solicitações e respostas de até 25 MB. No entanto, o Step Functions tem um limite de 256 kB no payload de entrada e saída do estado. Para suportar cargas maiores com essa integração, você pode definir um bucket do Amazon Simple Storage Service (Amazon S3) no qual a InvokeModel API lê os dados e grava o resultado. Essas configurações podem ser fornecidas na seção de parâmetros das configurações de ação da API.

Como começar a usar o Amazon Bedrock e o AWS Step Functions
Antes de começar, certifique-se de criar a máquina de estado em uma região em que o Amazon Bedrock esteja disponível. Para este exemplo, use Leste dos EUA (Norte da Virgínia), us-east-1.

No AWS Management Console, crie uma nova máquina de estado. Pesquise por “bedrock” e as duas ações de API disponíveis aparecerão. Arraste o InvokeModel até a máquina de estado.

Agora você pode configurar esse estado no menu à direita. Primeiro, você pode definir qual modelo de base deseja usar. Escolha um modelo da lista ou obtenha o modelo dinamicamente a partir da entrada.

Em seguida, você precisa configurar os parâmetros do modelo. Você pode inserir os parâmetros de inferência na caixa de texto ou carregar os parâmetros do Amazon S3.

Se você continuar na configuração, poderá especificar opções adicionais de configuração para a API, como o bucket de destino do S3. Quando esse campo é especificado, a ação da API armazena a resposta da API no bucket especificado em vez de retorná-la à saída de estado. Aqui, você também pode especificar o tipo de conteúdo para as requisições e respostas.

Ao terminar de configurar sua máquina de estado, você poderá criá-la e executá-la. Quando a máquina de estado é executada, você pode visualizar os detalhes da execução, selecionar o estado do Amazon Bedrock e verificar suas entradas e saídas.

Usando o Step Functions, você pode criar máquinas de estado tão extensas quanto  necessário, combinando diferentes serviços para solucionar muitos problemas. Por exemplo, você pode usar o Step Functions com o Amazon Bedrock para criar aplicativos usando o encadeamento imediato (prompt chaining). Essa é uma técnica para criar aplicativos complexos de IA generativa, passando vários prompts menores e mais simples para o FM, em vez de um prompt muito longo e detalhado. Para criar uma cadeia de prompts, você pode criar uma máquina de estado que chame o Amazon Bedrock várias vezes para obter uma inferência para cada um dos prompts menores. Você pode usar o estado paralelo (parallel state) para executar todas essas tarefas em paralelo e, em seguida, usar uma função do AWS Lambda que unifica as respostas das tarefas paralelas em uma única resposta e gerar um resultado.

Disponível agora,
As integrações otimizadas do Step Functions para o Amazon Bedrock estão limitadas às regiões da AWS onde o Amazon Bedrock está disponível.

Você pode começar a usar o Step Functions e o Amazon Bedrock testando um projeto de exemplo na console do Step Functions.

Este conteúdo é uma tradução do blog original em inglês (link aqui).

Autora

Márcia Villalba é a Principal Developer Advocate da Amazon Web Services. Ela tem 20 anos de experiência trabalhando na indústria de software criando e escalando aplicativos. Sua paixão é projetar sistemas que possam tirar o máximo proveito da nuvem e adotar a cultura DevOps.

Revisores

Gerson Itiro Hidaka atualmente trabalha como Enterprise Solution Architect na AWS e atua no atendimento a clientes da área Financeira no Brasil. Entusiasta de tecnologias como Internet das Coisas (IoT), Drones, Devops e especialista em tecnologias como contêineres, serverless computing e Kubernetes. Trabalha com soluções de TI há mais de 26 anos, tendo experiência em inúmeros projetos de otimização de infraestrutura, redes, migração, disaster recovery e DevOps em seu portifólio.
Norberto Hideaki Enomoto atua como arquiteto de soluções corporativo na Amazon Web Services. Ele está à frente de iniciativas de Transformação Digital, utilizando tecnologias avançadas, incluindo arquitetura de microsserviços, APIs, soluções nativas em nuvem, DevSecOps e Internet das Coisas (IoT). Norberto desempenha um papel crucial no suporte a clientes corporativos, orientando-os eficientemente em suas transições e estratégias para a computação em nuvem.