Como estava esse conteúdo?
- Aprenda
- Crie agentes de IA escaláveis: arquitetura sem servidor na AWS
Crie agentes de IA escaláveis: arquitetura sem servidor na AWS
Desenvolver software na era da IA generativa apresenta um paradoxo. Por um lado, os modelos de conhecimento de ponta se tornaram tão poderosos que criar uma versão inicial de uma aplicação alimentada por IA pode envolver pouco mais do que chamar uma API de chat simples (e ter um agente de programação escrevendo a maior parte do código!). Por outro lado, o nível de precisão, performance e otimização de custos necessário para uma aplicação de IA de nível de produção geralmente envolve uma arquitetura técnica complexa.
Essa complexidade surge, em parte, porque os algoritmos de IA generativa são probabilísticos, e não determinísticos. Para reduzir a variação na saída de um modelo e melhorar a confiabilidade, os desenvolvedores usam técnicas como fornecer exemplos de como é uma resposta “boa” ou incluir informações adicionais (“contexto”) que o modelo pode considerar ao gerar a saída. Como resultado, o código de uma aplicação de IA rapidamente se torna muito mais complexo do que simples chamadas para a API de chat do modelo. No mínimo, os desenvolvedores precisarão adicionar pelo menos uma camada de serviço de dados que inclua chamadas para bancos de dados especializados para construir o contexto que será mostrado ao modelo.
Porém, a complexidade não para por aí. À medida que os desenvolvedores adicionam mais recursos às suas aplicações baseadas em IA, eles frequentemente descobrem que isso requer diferentes contextos e diferentes conjuntos de prompts. Assim, os desenvolvedores, atraídos por abstrações, organizam o código que alimenta esses diferentes recursos em módulos independentes. Na IA, esse tipo de padrão de design é conhecido como “agente”.
Agentes se reúnem: superando a complexidade na IA generativa
Um agente é um módulo de código que usa modelos de IA generativa para realizar uma tarefa específica de forma autônoma. Os agentes podem agir sozinhos ou em conjunto com outros agentes. Eles também podem chamar “ferramentas”, que normalmente são APIs ou funções incluídas no contexto disponível para o agente. O resultado final dessa abordagem agênica ao design de software é que a engenharia de contexto, o processo de buscar os dados relevantes de que um agente precisa para concluir sua tarefa, se torna mais complexa. Além disso, os próprios agentes muitas vezes precisam ser executados de forma assíncrona fora do aplicativo principal (isso é especialmente verdadeiro para agentes que precisam acessar dados confidenciais). Isso pode exigir o gerenciamento de ambientes de execução totalmente separados, bem como credenciais.
Uma aplicação típica de IA agênica pode ser dividida nos seguintes componentes:
- O modelo de IA generativa, que normalmente inclui um grande modelo de linguagem (LLM) e as APIs que fornecem acesso a ele.
- Frameworks de software, que fornecem abstrações convenientes para as APIs de modelo de nível inferior, e kits de desenvolvimento de software para criar agentes e realizar muitas das operações de acesso a dados necessárias para a engenharia de contexto.
- Componentes de serviços de dados, que fornecem as informações incluídas no contexto fornecido aos agentes. Estes podem consistir em uma variedade de diferentes armazenamentos de dados (sistemas de gerenciamento de bancos de dados relacionais, bancos de dados NoSQL, etc.), mas quase sempre incluirão alguma forma de serviço de pesquisa semântica. Para aplicações agênticas, isso é normalmente transferido para um armazenamento vetorial, que armazena representações numéricas de dados de texto chamadas de incorporações.
- Um ambiente de runtime para os agentes. Para aplicações agênticas simples, os agentes podem ser executados em processo com o código da aplicação. Porém, na maioria dos casos, os agentes precisarão ser executados em seu próprio espaço de processo, isolados da aplicação principal.
Como em todas as arquiteturas de software que exigem a interação de vários componentes, é necessário um trabalho pesado e indiferenciado para garantir que esses componentes sejam resilientes, redundantes e tenham boa performance. Felizmente, as aplicações de IA agêntica se beneficiam das mesmas arquiteturas nativas da nuvem que as aplicações tradicionais. As arquiteturas sem servidor são particularmente atraentes para aplicações de IA agêntica, e a AWS oferece uma variedade de soluções sem servidor que permitem aos desenvolvedores criar aplicações de IA agêntica de forma rápida, fácil e econômica.
Inferência em ação
Vamos começar com o componente mais conhecido: os próprios modelos de IA generativa. O termo para o serviço de modelo é “inferência” e, para inferência sem servidor, o Amazon Bedrock fornece um serviço gerenciado para executar e acessar modelos de base de IA generativa. Eles variam de LLMs de conhecimento de ponta, como o Claude da Anthropic, a modelos baseados em fala, como o Amazon Nova Sonic, e modelos de peso aberto da OpenAI e Mistral, todos acessíveis por meio de uma API unificada.
Em seguida, a inferência. Isso normalmente é complexo e requer hardware especializado, como GPUs, e um profundo conhecimento dos frameworks de rede de baixo nível que permitem que clusters de GPUs se comuniquem entre si. Tradicionalmente, isso criava desafios operacionais e uma barreira à acessibilidade, especialmente para startups. O Amazon Bedrock ajuda a quebrar essas barreiras, pois os usuários só precisam aprender a usar as APIs da solução.
Incorporação inteligente: bases de conhecimento e armazenamentos vetoriais
Além da inferência e do serviço de modelos, o Amazon Bedrock também oferece suporte completo para os componentes de serviço de dados mais comuns na pilha de IA agêntica. O Amazon Bedrock Knowledge Bases, por exemplo, pode ser usado para pesquisa semântica, que envolve pesquisar uma coleção de documentos que são semanticamente semelhantes ao texto na consulta. Isso é fundamental em casos em que um agente de IA precisa de informações adicionais em seu contexto.
Por exemplo, um agente de atendimento ao cliente pode precisar consultar documentos de perguntas frequentes que correspondam às informações solicitadas pelo cliente, como “Como altero o endereço associado à minha conta?”. Usando o Amazon Bedrock Knowledge Bases, documentos de perguntas frequentes podem ser indexados para pesquisa semântica, armazenando-os em um bucket do Amazon S3 e configurando esse bucket como uma fonte de dados para uma base de conhecimento Bedrock. O serviço lida com a “fragmentação” dos documentos (dividindo um documento em partes menores), “vetorizando” cada chunk (criando as incorporações numéricas do texto) e armazenando e relacionando os fragmentos e as incorporações entre si para que os fragmentos relevantes possam ser retornados em uma consulta semântica.
Depois de criadas, essas incorporações precisam ser armazenadas em um banco de dados especializado para incorporações, ou armazenamento vetorial. O Amazon Bedrock Knowledge Bases oferece suporte a várias opções de armazenamento vetorial, incluindo o Amazon S3 Vectors, um banco de dados de vetores sem servidor integrado ao Amazon S3. Esse tipo de camada de serviço de dados é conhecido como geração aumentada via Recuperação (RAG) e é fácil de implementar usando o Amazon Bedrock Knowledge Bases, o S3 e o S3 Vectors. Isso permite que os desenvolvedores se concentrem na funcionalidade de seus agentes de IA, em vez de gerenciar uma infraestrutura complexa de serviço de dados.
Construir, executar e escalar
Depois que as incorporações são armazenadas e ficam acessíveis por meio de armazenamentos vetoriais, a próxima etapa é executar agentes de IA que utilizam esses dados. O Amazon Bedrock AgentCore fornece um ambiente de runtime sem servidor para desenvolvedores. Os agentes podem ser criados usando frameworks como LangChain, Strands ou até mesmo algo desenvolvido internamente. Os desenvolvedores podem então empacotar o agente em um arquivo zip e carregá-lo no S3. Como alternativa, eles podem criar uma imagem de contêiner e enviá-la ao Amazon Elastic Container Registry (ECR). Depois que o código estiver no S3 ou no ECR, eles podem configurar o AgentCore para executar o agente na nuvem, sem precisar gerenciar servidores. O AgentCore também lida com processos operacionais, como autenticação, oferecendo suporte a perfis integrados do AWS Identity and Access Management ou JSON Web Token para login por meio de um provedor de identidade corporativo.
O Amazon Bedrock e o AgentCore oferecem muitos outros recursos sem servidor, mas os três detalhados neste artigo fornecem o ponto de partida ideal para desenvolver aplicações de IA agêntica com suporte total para RAG. Primeiro, o Amazon Bedrock para inferência com uma ampla seleção de modelos; segundo, o Amazon Bedrock Knowledge Bases e o S3 Vectors para indexação de documentos e pesquisa semântica; e, por fim, o Amazon AgentCore para executar agentes de maneira segura e econômica.
O desenvolvimento de aplicações de IA agêntica tem sido tradicionalmente complexo e desafiador, especialmente para startups, que muitas vezes operam com recursos limitados. As arquiteturas sem servidor reduzem essa complexidade, eliminando a necessidade de os engenheiros criarem e gerenciarem a infraestrutura subjacente. Seja você um desenvolvedor experiente de IA agêntica ou apenas um iniciante, o Amazon Bedrock oferece um conjunto abrangente de ferramentas e serviços para ajudá-lo a criar e escalar com confiança.
Pronto para começar a criar IA agêntica na AWS? O AWS Activate oferece acesso a Créditos da AWS, que podem ser usados para compensar o custo das soluções abordadas neste artigo, bem como uma ampla gama de outros serviços. Desde sua criação em 2013, o AWS Activate já forneceu mais de USD 8 bilhões em créditos para startups em todo o mundo. Os fundadores também se beneficiam de programas e recursos, suporte técnico, orientação empresarial e uma conexão mais próxima com a comunidade global de startups. Junte-se a milhões de outras pessoas e descubra como transformar suas ideias em conceitos prontos para a nuvem.
Como estava esse conteúdo?