Crie uma UI da web para interagir com LLMs usando o Amazon SageMaker JumpStart | Amazon Web Services

Crie uma UI da web para interagir com LLMs usando o Amazon SageMaker JumpStart | Amazon Web Services

O lançamento do ChatGPT e o aumento da popularidade da IA ​​generativa capturaram a imaginação de clientes curiosos sobre como podem usar essa tecnologia para criar novos produtos e serviços na AWS, como chatbots empresariais, que são mais conversacionais. Esta postagem mostra como você pode criar uma UI web, que chamamos de Chat Studio, para iniciar uma conversa e interagir com modelos básicos disponíveis em JumpStart do Amazon SageMaker como Llama 2, Stable Diffusion e outros modelos disponíveis em Amazon Sage Maker. Depois de implantar esta solução, os usuários podem começar rapidamente e experimentar os recursos de vários modelos básicos em IA conversacional por meio de uma interface da web.

O Chat Studio também pode invocar opcionalmente o endpoint do modelo Stable Diffusion para retornar uma colagem de imagens e vídeos relevantes se o usuário solicitar a exibição de mídia. Esse recurso pode ajudar a aprimorar a experiência do usuário com o uso de mídia como recursos de acompanhamento da resposta. Este é apenas um exemplo de como você pode enriquecer o Chat Studio com integrações adicionais para atingir seus objetivos.

As capturas de tela a seguir mostram exemplos da aparência de uma consulta e resposta do usuário.

Interface de consulta do Chat Studio

Interface de resposta do Chat Studio

Modelos de grande linguagem

Os chatbots de IA generativos, como o ChatGPT, são alimentados por grandes modelos de linguagem (LLMs), que são baseados em uma rede neural de aprendizagem profunda que pode ser treinada em grandes quantidades de texto não rotulado. O uso de LLMs permite uma melhor experiência de conversação que se assemelha muito às interações com humanos reais, promovendo um sentimento de conexão e maior satisfação do usuário.

Modelos de fundação do SageMaker

Em 2021, o Instituto Stanford de Inteligência Artificial Centrada no Ser Humano denominou alguns LLMs como modelos de fundação. Os modelos básicos são pré-treinados em um grande e amplo conjunto de dados gerais e destinam-se a servir como base para otimizações adicionais em uma ampla variedade de casos de uso, desde a geração de arte digital até a classificação de texto multilíngue. Esses modelos básicos são populares entre os clientes porque treinar um novo modelo do zero leva tempo e pode ser caro. O SageMaker JumpStart fornece acesso a centenas de modelos básicos mantidos por terceiros de código aberto e fornecedores proprietários.

Visão geral da solução

Esta postagem aborda um fluxo de trabalho de baixo código para implantar LLMs pré-treinados e personalizados por meio do SageMaker e criar uma IU da web para fazer interface com os modelos implantados. Cobrimos as seguintes etapas:

  1. Implante modelos básicos do SageMaker.
  2. Implantação AWS Lambda e Gerenciamento de acesso e identidade da AWS (IAM) usando Formação da Nuvem AWS.
  3. Configure e execute a interface do usuário.
  4. Opcionalmente, adicione outros modelos de base do SageMaker. Esta etapa amplia a capacidade do Chat Studio de interagir com modelos básicos adicionais.
  5. Opcionalmente, implante o aplicativo usando Amplificar AWS. Esta etapa implanta o Chat Studio na web.

Consulte o diagrama a seguir para obter uma visão geral da arquitetura da solução.

Arquitetura da solução Chat Studio

Pré-requisitos

Para percorrer a solução, você deve ter os seguintes pré-requisitos:

  • An Conta da AWS com privilégios de usuário IAM suficientes.
  • npm instalado em seu ambiente local. Para obter instruções sobre como instalar npm, referir-se Baixando e instalando Node.js e npm.
  • Uma cota de serviço de 1 para os endpoints SageMaker correspondentes. Para Llama 2 13b Chat, usamos uma instância ml.g5.48xlarge e para Stable Diffusion 2.1, usamos uma instância ml.p3.2xlarge.

Para solicitar aumento de cota de serviço, no Console de cotas de serviço da AWS, navegar para Serviços da AWS, SageMakere solicite um aumento de cota de serviço para um valor de 1 para ml.g5.48xlarge para uso de endpoint e ml.p3.2xlarge para uso de endpoint.

A solicitação de cota de serviço pode levar algumas horas para ser aprovada, dependendo da disponibilidade do tipo de instância.

Implantar modelos básicos do SageMaker

SageMaker é um serviço de aprendizado de máquina (ML) totalmente gerenciado para que os desenvolvedores criem e treinem modelos de ML rapidamente e com facilidade. Conclua as etapas a seguir para implantar os modelos básicos Llama 2 13b Chat e Stable Diffusion 2.1 usando Estúdio Amazon SageMaker:

  1. Crie um domínio SageMaker. Para obter instruções, consulte Integração ao domínio Amazon SageMaker usando configuração rápida.

Um domínio configura todo o armazenamento e permite adicionar usuários para acessar o SageMaker.

  1. No console SageMaker, escolha Studio no painel de navegação e escolha Estúdio Aberto.
  2. Ao iniciar o Studio, em SageMaker JumpStart no painel de navegação, escolha Modelos, notebooks, soluções.
    Console JumpStart do SageMaker
  3. Na barra de pesquisa, pesquise Llama 2 13b Chat.
  4. Debaixo Configuração de implantação, Por Instância de hospedagem do SageMaker, escolha ml.g5.48xgrande e para Nome do ponto final, entrar meta-textgeneration-llama-2-13b-f.
  5. Escolha Implantar.

Configuração de implantação do SageMaker JumpStart

Depois que a implantação for bem-sucedida, você poderá ver o In Service estado.

Status do modelo de lhama

  1. No Modelos, notebooks, soluções página, procure por Difusão Estável 2.1.
  2. Debaixo Configuração de implantação, Por Instância de hospedagem do SageMaker, escolha ml.p3.2xgrande e para Nome do ponto final, entrar jumpstart-dft-stable-diffusion-v2-1-base.
  3. Escolha Implantação.

Configuração de implantação do SageMaker JumpStart

Depois que a implantação for bem-sucedida, você poderá ver o In Service estado.

Status do modelo de difusão estável

Implante permissões Lambda e IAM usando AWS CloudFormation

Esta seção descreve como você pode iniciar uma pilha do CloudFormation que implanta uma função Lambda que processa a solicitação do usuário e chama o endpoint SageMaker que você implantou e implanta todas as permissões necessárias do IAM. Conclua as seguintes etapas:

  1. Navegue até a Repositório GitHub e baixe o modelo CloudFormation (lambda.cfn.yaml) para sua máquina local.
  2. No console do CloudFormation, escolha o Criar pilha menu suspenso e escolha Com novos recursos (padrão).
  3. No Especificar modelo página, selecione Faça upload de um arquivo de modelo e Escolha o arquivo.
  4. Escolha o lambda.cfn.yaml arquivo que você baixou e escolha Próximo.
  5. No Especifique os detalhes da pilha página, insira um nome de pilha e a chave de API obtida nos pré-requisitos e escolha Próximo.
  6. No Configurar opções de pilha página, escolha Próximo.
  7. Revise e reconheça as alterações e escolha Submeter.

Configurar a IU da web

Esta seção descreve as etapas para executar a UI da web (criada usando Sistema de design Cloudscape) em sua máquina local:

  1. No console do IAM, navegue até o usuário functionUrl.
  2. No Credenciais de segurança guia, escolha Criar chave de acesso.
  3. No Acesse as principais práticas recomendadas e alternativas página, selecione Interface de linha de comando (CLI) e escolha Próximo.
  4. No Definir tag de descrição página, escolha Criar chave de acesso.
  5. Copie a chave de acesso e a chave de acesso secreta.
  6. Escolha Pronto .
  7. Navegue até a Repositório GitHub E baixe o react-llm-chat-studio código.
  8. Inicie a pasta em seu IDE preferido e abra um terminal.
  9. Navegar para src/configs/aws.json e insira a chave de acesso e a chave de acesso secreta que você obteve.
  10. Digite os seguintes comandos no terminal:
    npm install npm start

  11. Abra http://localhost:3000 no seu navegador e comece a interagir com seus modelos!

Para usar o Chat Studio, escolha um modelo básico no menu suspenso e insira sua consulta na caixa de texto. Para obter imagens geradas por IA junto com a resposta, adicione a frase “com imagens” ao final da sua consulta.

Adicione outros modelos de base SageMaker

Você pode estender ainda mais a capacidade desta solução para incluir modelos adicionais de base do SageMaker. Como cada modelo espera diferentes formatos de entrada e saída ao invocar seu endpoint SageMaker, você precisará escrever algum código de transformação na função callSageMakerEndpoints Lambda para fazer interface com o modelo.

Esta seção descreve as etapas gerais e as alterações de código necessárias para implementar um modelo adicional de sua escolha. Observe que o conhecimento básico da linguagem Python é necessário para as etapas 6–8.

  1. No SageMaker Studio, implante o modelo básico do SageMaker de sua escolha.
  2. Escolha SageMaker JumpStart e Iniciar ativos JumpStart.
  3. Escolha o endpoint do modelo recém-implantado e escolha Abra o Notebook.
  4. No console do notebook, encontre os parâmetros de carga útil.

Esses são os campos que o novo modelo espera ao invocar seu endpoint SageMaker. A captura de tela a seguir mostra um exemplo.

Configuração de ponto final do SageMaker

  1. No console do Lambda, navegue até callSageMakerEndpoints.
  2. Adicione um manipulador de entrada personalizado para seu novo modelo.

Na captura de tela a seguir, transformamos a entrada para Falcon 40B Instruct BF16 e GPT NeoXT Chat Base 20B FP16. Você pode inserir sua lógica de parâmetro customizada conforme indicado para adicionar a lógica de transformação de entrada com referência aos parâmetros de carga que você copiou.

Trecho de código Lambda

  1. Retorne ao console do notebook e localize query_endpoint.

Esta função dá uma ideia de como transformar a saída dos modelos para extrair a resposta final do texto.

Configuração de ponto final do SageMaker

  1. Com referência ao código em query_endpoint, adicione um manipulador de saída personalizado para seu novo modelo.
    Código Lambda
  2. Escolha Implantar.
  3. Abra seu IDE, inicie o react-llm-chat-studio código e navegue até src/configs/models.json.
  4. Adicione o nome do modelo e o endpoint do modelo e insira os parâmetros de carga útil da Etapa 4 em payload usando o seguinte formato:
    "add_model_name": { "endpoint_name": "add_model_enpoint", "payload": { "add_payload_paramters_here"
    }
    },

  5. Atualize seu navegador para começar a interagir com seu novo modelo!

Implante o aplicativo usando Amplify

Amplify é uma solução completa que permite implantar sua aplicação de forma rápida e eficiente. Esta seção descreve as etapas para implantar o Chat Studio em um Amazon CloudFront distribuição usando Amplify se desejar compartilhar seu aplicativo com outros usuários.

  1. Navegue até a react-llm-chat-studio pasta de código que você criou anteriormente.
  2. Digite os seguintes comandos no terminal e siga as instruções de configuração:
    npm install -g @aws-amplify/cli amplify configure

  3. Inicialize um novo projeto do Amplify usando o comando a seguir. Forneça um nome de projeto, aceite as configurações padrão e escolha Chaves de acesso da AWS quando solicitado a selecionar o método de autenticação.
    amplify init

  4. Hospede o projeto Amplify usando o comando a seguir. Escolher Amazon CloudFront e S3 quando solicitado a selecionar o modo de plug-in.
    amplify hosting add

  5. Por fim, crie e implante o projeto com o seguinte comando:
    amplify publish

  6. Após a implantação ser bem-sucedida, abra a URL fornecida em seu navegador e comece a interagir com seus modelos!

limpar

Para evitar cobranças futuras, conclua as etapas a seguir:

  1. Exclua a pilha do CloudFormation. Para obter instruções, consulte Exclusão de uma pilha no console do AWS CloudFormation.
  2. Exclua o endpoint SageMaker JumpStart. Para obter instruções, consulte Excluir endpoints e recursos.
  3. Exclua o domínio SageMaker. Para obter instruções, consulte Excluir um domínio do Amazon SageMaker.

Conclusão

Nesta postagem, explicamos como criar uma UI web para fazer interface com LLMs implantados na AWS.

Com esta solução, você pode interagir com seu LLM e manter uma conversa de maneira amigável para testar ou fazer perguntas sobre o LLM e obter uma colagem de imagens e vídeos, se necessário.

Você pode estender esta solução de várias maneiras, como para integrar modelos de fundação adicionais, integrar com Amazon Kendra para permitir a pesquisa inteligente baseada em ML para compreender o conteúdo empresarial e muito mais!

Convidamos você a experimentar diferentes LLMs pré-treinados disponíveis na AWSou crie ou crie seus próprios LLMs no SageMaker. Deixe-nos saber suas dúvidas e descobertas nos comentários e divirta-se!


Sobre os autores

Crie uma UI da web para interagir com LLMs usando o Amazon SageMaker JumpStart | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Jarrett Yeo Shan Wei é arquiteto de nuvem associado em serviços profissionais da AWS, cobrindo o setor público em toda a ASEAN e defende ajudar os clientes a modernizar e migrar para a nuvem. Ele obteve cinco certificações AWS e também publicou um artigo de pesquisa sobre conjuntos de máquinas de aumento de gradiente na 8ª Conferência Internacional sobre IA. Em seu tempo livre, Jarrett se concentra e contribui para o cenário generativo de IA na AWS.

Crie uma UI da web para interagir com LLMs usando o Amazon SageMaker JumpStart | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Tammy Lim Lee Xin é arquiteto de nuvem associado na AWS. Ela usa tecnologia para ajudar os clientes a entregar os resultados desejados em sua jornada de adoção da nuvem e é apaixonada por IA/ML. Fora do trabalho, ela adora viajar, fazer caminhadas e passar tempo com a família e amigos.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS