In Parte 1 desta série, apresentamos uma solução que utilizou o Incorporações multimodais do Amazon Titan modelo para converter slides individuais de uma apresentação de slides em incorporações. Armazenamos os embeddings em um banco de dados vetorial e então usamos o Grande Assistente de Linguagem e Visão (LLaVA 1.5-7b) modelo para gerar respostas de texto às perguntas do usuário com base no slide mais semelhante recuperado do banco de dados vetorial. Usamos serviços AWS, incluindo Rocha Amazônica, Amazon Sage Maker e Amazon OpenSearch sem servidor nesta solução.
Neste post, demonstramos uma abordagem diferente. Nós usamos o Soneto antrópico de Claude 3 modelo para gerar descrições de texto para cada slide na apresentação de slides. Essas descrições são então convertidas em incorporações de texto usando o Incorporações de texto do Amazon Titan modelo e armazenado em um banco de dados vetorial. Em seguida, usamos o modelo Claude 3 Sonnet para gerar respostas às perguntas dos usuários com base na descrição de texto mais relevante recuperada do banco de dados vetorial.
Você pode testar ambas as abordagens para seu conjunto de dados e avaliar os resultados para ver qual abordagem oferece os melhores resultados. Na Parte 3 desta série, avaliamos os resultados de ambos os métodos.
Visão geral da solução
A solução fornece uma implementação para responder perguntas usando informações contidas em texto e elementos visuais de uma apresentação de slides. O design baseia-se no conceito de Geração Aumentada de Recuperação (RAG). Tradicionalmente, o RAG tem sido associado a dados textuais que podem ser processados por grandes modelos de linguagem (LLMs). Nesta série, estendemos o RAG para incluir imagens também. Isso fornece um poderoso recurso de pesquisa para extrair conteúdo contextualmente relevante de elementos visuais, como tabelas e gráficos, juntamente com texto.
Esta solução inclui os seguintes componentes:
- Amazon Titan Text Embeddings é um modelo de embeddings de texto que converte texto em linguagem natural, incluindo palavras isoladas, frases ou até mesmo documentos grandes, em representações numéricas que podem ser usadas para potencializar casos de uso como pesquisa, personalização e clustering com base na similaridade semântica.
- Claude 3 Sonnet é a próxima geração de modelos de última geração da Anthropic. Sonnet é uma ferramenta versátil que pode lidar com uma ampla gama de tarefas, desde raciocínio e análise complexos até resultados rápidos, bem como pesquisa e recuperação eficientes em grandes quantidades de informações.
- OpenSearch Serverless é uma configuração sem servidor sob demanda para Amazon OpenSearch Service. Usamos OpenSearch Serverless como banco de dados vetorial para armazenar embeddings gerados pelo modelo Amazon Titan Text Embeddings. Um índice criado na coleção OpenSearch Serverless serve como armazenamento de vetores para nossa solução RAG.
- Ingestão do Amazon OpenSearch (OSI) é um coletor de dados totalmente gerenciado e sem servidor que fornece dados para domínios do OpenSearch Service e coleções do OpenSearch Serverless. Nesta postagem, usamos uma API de pipeline OSI para entregar dados ao armazenamento de vetores OpenSearch Serverless.
O design da solução consiste em duas partes: ingestão e interação do usuário. Durante a ingestão, processamos a apresentação de slides de entrada convertendo cada slide em uma imagem, gerando descrições e incorporações de texto para cada imagem. Em seguida, preenchemos o armazenamento de dados vetoriais com os embeddings e a descrição de texto de cada slide. Essas etapas são concluídas antes das etapas de interação do usuário.
Na fase de interação do usuário, uma pergunta do usuário é convertida em incorporações de texto. Uma pesquisa de similaridade é executada no banco de dados vetorial para encontrar uma descrição de texto correspondente a um slide que possa conter respostas à pergunta do usuário. Em seguida, fornecemos a descrição do slide e a pergunta do usuário ao modelo Claude 3 Sonnet para gerar uma resposta à consulta. Todo o código deste post está disponível no GitHub descanso.
O diagrama a seguir ilustra a arquitetura de ingestão.
O fluxo de trabalho consiste nas seguintes etapas:
- Os slides são convertidos em arquivos de imagem (um por slide) no formato JPG e passados para o modelo Claude 3 Sonnet para gerar a descrição do texto.
- Os dados são enviados ao modelo Amazon Titan Text Embeddings para gerar embeddings. Nesta série, usamos a apresentação de slides Treine e implante o Stable Diffusion usando AWS Trainium e AWS Inferentia do AWS Summit em Toronto, junho de 2023, para demonstrar a solução. O deck de amostras possui 31 slides, portanto geramos 31 conjuntos de embeddings vetoriais, cada um com 1536 dimensões. Adicionamos campos de metadados adicionais para realizar consultas de pesquisa avançadas usando os poderosos recursos de pesquisa do OpenSearch.
- Os embeddings são ingeridos em um pipeline OSI usando uma chamada de API.
- O pipeline OSI ingere os dados como documentos em um índice OpenSearch Serverless. O índice é configurado como coletor para esse pipeline e é criado como parte da coleção OpenSearch Serverless.
O diagrama a seguir ilustra a arquitetura de interação do usuário.
O fluxo de trabalho consiste nas seguintes etapas:
- Um usuário envia uma pergunta relacionada à apresentação de slides que foi processada.
- A entrada do usuário é convertida em embeddings usando o modelo Amazon Titan Text Embeddings acessado usando Amazon Bedrock. Uma pesquisa vetorial do OpenSearch Service é realizada usando esses embeddings. Realizamos uma pesquisa de k-vizinho mais próximo (k-NN) para recuperar os embeddings mais relevantes que correspondem à consulta do usuário.
- Os metadados da resposta do OpenSearch Serverless contêm um caminho para a imagem e uma descrição correspondente ao slide mais relevante.
- Um prompt é criado combinando a pergunta do usuário e a descrição da imagem. O prompt é fornecido a Claude 3 Sonnet hospedado no Amazon Bedrock.
- O resultado desta inferência é retornado ao usuário.
Discutiremos as etapas de ambos os estágios nas seções a seguir e incluímos detalhes sobre o resultado.
Pré-requisitos
Para implementar a solução fornecida neste post, você deve ter um Conta da AWS e familiaridade com FMs, Amazon Bedrock, SageMaker e OpenSearch Service.
Esta solução usa os modelos Claude 3 Sonnet e Amazon Titan Text Embeddings hospedados no Amazon Bedrock. Certifique-se de que esses modelos estejam habilitados para uso navegando até o Acesso ao modelo página no console do Amazon Bedrock.
Se os modelos estiverem habilitados, o Status de acesso irá declarar Acesso concedido.
Se os modelos não estiverem disponíveis, habilite o acesso escolhendo Gerenciar o acesso ao modelo, selecionando os modelos e escolhendo Solicitar acesso ao modelo. Os modelos são habilitados para uso imediato.
Use o AWS CloudFormation para criar a pilha de soluções
Você pode usar o AWS CloudFormation para criar a pilha de soluções. Se você criou a solução para a Parte 1 na mesma conta da AWS, exclua-a antes de criar esta pilha.
Região AWS | Ligação |
---|---|
us-east-1 |
|
us-west-2 |
Depois que a pilha for criada com sucesso, navegue até a guia Saídas da pilha no console do AWS CloudFormation e anote os valores para MultimodalCollectionEndpoint
e OpenSearchPipelineEndpoint
. Você os usa nas etapas subsequentes.
O modelo do CloudFormation cria os seguintes recursos:
- Papéis IAM - A seguir Gerenciamento de acesso e identidade da AWS (IAM) são criadas. Atualize essas funções para aplicar permissões de privilégio mínimo, conforme discutido em Práticas recomendadas de segurança.
SMExecutionRole
de Serviço de armazenamento simples da Amazon (Amazon S3), SageMaker, OpenSearch Service e Amazon Bedrock acesso total.OSPipelineExecutionRole
com acesso ao bucket S3 e ações OSI.
- Caderno SageMaker – Todo o código deste post é executado usando este notebook.
- Coleção sem servidor do OpenSearch – Este é o banco de dados vetorial para armazenar e recuperar embeddings.
- Pipeline OSI – Este é o pipeline para ingestão de dados no OpenSearch Serverless.
- Caçamba S3 – Todos os dados desta postagem são armazenados neste bucket.
O modelo CloudFormation define a configuração do pipeline necessária para configurar o pipeline OSI com HTTP como origem e o índice OpenSearch Serverless como coletor. O caderno SageMaker 2_data_ingestion.ipynb
exibe como ingerir dados no pipeline usando o pedidos Biblioteca HTTP.
O modelo CloudFormation também cria rede, criptografia e acesso a dados políticas necessárias para sua coleção do OpenSearch Serverless. Atualize essas políticas para aplicar permissões de privilégio mínimo.
O nome do modelo CloudFormation e o nome do índice do OpenSearch Service são referenciados no notebook SageMaker 3_rag_inference.ipynb
. Se você alterar os nomes padrão, certifique-se de atualizá-los no notebook.
Teste a solução
Depois de criar a pilha do CloudFormation, você poderá testar a solução. Conclua as seguintes etapas:
- No console SageMaker, escolha Notebooks no painel de navegação.
- Selecionar
MultimodalNotebookInstance
e escolha Abra o JupyterLab. - In Navegador de Arquivos, vá até a pasta de notebooks para ver os notebooks e os arquivos de suporte.
Os notebooks são numerados na sequência em que são executados. As instruções e comentários em cada bloco de notas descrevem as ações executadas por esse bloco de notas. Executamos esses notebooks um por um.
- Escolha
1_data_prep.ipynb
para abri-lo no JupyterLab. - No Execute menu, escolha Executar todas as células para executar o código neste notebook.
Este notebook fará o download de um arquivo disponível publicamente conjunto de slides, converta cada slide no formato de arquivo JPG e carregue-os no bucket S3.
- Escolha
2_data_ingestion.ipynb
para abri-lo no JupyterLab. - No Execute menu, escolha Executar todas as células para executar o código neste notebook.
Neste notebook, você cria um índice na coleção OpenSearch Serverless. Este índice armazena os dados de incorporação da apresentação de slides. Veja o seguinte código:
Você usa os modelos Claude 3 Sonnet e Amazon Titan Text Embeddings para converter as imagens JPG criadas no notebook anterior em embeddings vetoriais. Esses embeddings e metadados adicionais (como o caminho S3 e a descrição do arquivo de imagem) são armazenados no índice junto com os embeddings. O trecho de código a seguir mostra como Claude 3 Sonnet gera descrições de imagens:
As descrições das imagens são passadas para o modelo Amazon Titan Text Embeddings para gerar embeddings vetoriais. Esses embeddings e metadados adicionais (como o caminho S3 e a descrição do arquivo de imagem) são armazenados no índice junto com os embeddings. O snippet de código a seguir mostra a chamada para o modelo Amazon Titan Text Embeddings:
Os dados são ingeridos no índice OpenSearch Serverless fazendo uma chamada de API para o pipeline OSI. O trecho de código a seguir mostra a chamada feita usando a biblioteca HTTP Requests:
- Escolha
3_rag_inference.ipynb
para abri-lo no JupyterLab. - No Execute menu, escolha Executar todas as células para executar o código neste notebook.
Este notebook implementa a solução RAG: você converte a pergunta do usuário em embeddings, encontra uma descrição de imagem semelhante no banco de dados vetorial e fornece a descrição recuperada ao Claude 3 Sonnet para gerar uma resposta à pergunta do usuário. Você usa o seguinte modelo de prompt:
O trecho de código a seguir fornece o fluxo de trabalho RAG:
Resultados
A tabela a seguir contém algumas perguntas e respostas de usuários geradas por nossa implementação. O Questão coluna captura a pergunta do usuário e a Resposta coluna é a resposta textual gerada por Claude 3 Sonnet. O Imagem coluna mostra a correspondência de slide k-NN retornada pela pesquisa vetorial OpenSearch Serverless.
Resultados RAG multimodais
Consulte seu índice
Você pode usar o OpenSearch Dashboards para interagir com a API OpenSearch para executar testes rápidos em seu índice e dados ingeridos.
Limpar
Para evitar incorrer em cobranças futuras, exclua os recursos. Você pode fazer isso excluindo a pilha usando o console do AWS CloudFormation.
Conclusão
As empresas geram novos conteúdos o tempo todo, e as apresentações de slides são uma forma comum de compartilhar e disseminar informações internamente na organização e externamente com clientes ou em conferências. Com o tempo, informações valiosas podem permanecer ocultas em modalidades não textuais, como gráficos e tabelas nessas apresentações de slides.
Você pode usar esta solução e o poder dos FMs multimodais, como o Amazon Titan Text Embeddings e o Claude 3 Sonnet, para descobrir novas informações ou descobrir novas perspectivas sobre o conteúdo em apresentações de slides. Você pode experimentar diferentes modelos Claude disponíveis no Amazon Bedrock atualizando o CLAUDE_MODEL_ID
no globals.py
arquivo.
Esta é a Parte 2 de uma série de três partes. Usamos o Amazon Titan Multimodal Embeddings e o modelo LLaVA na Parte 1. Na Parte 3, compararemos as abordagens da Parte 1 e da Parte 2.
Partes deste código são liberadas sob o Licença Apache 2.0.
Sobre os autores
Amit Arora é um arquiteto especialista em IA e ML na Amazon Web Services, ajudando clientes corporativos a usar serviços de aprendizado de máquina baseados em nuvem para dimensionar rapidamente suas inovações. Ele também é professor adjunto no programa de ciência e análise de dados MS na Georgetown University em Washington DC
Manju Prasad é arquiteto de soluções sênior na Amazon Web Services. Ela se concentra em fornecer orientação técnica em uma variedade de domínios técnicos, incluindo IA/ML. Antes de ingressar na AWS, ela projetou e construiu soluções para empresas do setor de serviços financeiros e também para uma startup. Ela é apaixonada por compartilhar conhecimento e promover o interesse em talentos emergentes.
Archana Inapudi é arquiteto de soluções sênior na AWS, dando suporte a um cliente estratégico. Ela tem mais de uma década de experiência em vários setores liderando iniciativas técnicas estratégicas. Archana é um aspirante a membro da comunidade de campo técnico de IA/ML da AWS. Antes de ingressar na AWS, Archana liderou uma migração de fontes de dados tradicionais isoladas para o Hadoop em uma empresa de saúde. Ela é apaixonada por usar a tecnologia para acelerar o crescimento, agregar valor aos clientes e alcançar resultados de negócios.
Antara Raisa é arquiteto de soluções de IA e ML na Amazon Web Services, oferecendo suporte a clientes estratégicos baseados em Dallas, Texas. Ela também tem experiência anterior trabalhando com grandes parceiros empresariais na AWS, onde trabalhou como Partner Success Solutions Architect para clientes centrados no digital.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/talk-to-your-slide-deck-using-multimodal-foundation-models-hosted-on-amazon-bedrock-and-amazon-sagemaker-part-2/
- :tem
- :é
- :não
- :onde
- $UP
- 1
- 10
- 100
- 12
- 15%
- 17
- 173
- 175
- 20
- 2019
- 2020
- 2023
- 23
- 24
- 27
- 30
- 31
- 7
- 8
- 9
- a
- habilidades
- Sobre
- acelerar
- Acesso
- acessadas
- Conta
- Alcançar
- em
- ações
- adicionar
- Adicional
- adjunto
- Adoção
- vantagens
- AI
- Modelos de IA
- AI / ML
- algoritmos
- Todos os Produtos
- juntamente
- tb
- Amazon
- Amazon EC2
- Serviço Amazon OpenSearch
- Amazon Web Services
- quantidades
- an
- análise
- analítica
- e
- e infra-estrutura
- responder
- responder
- respostas
- Antrópico
- qualquer
- nada
- api
- Aplicação
- Desenvolvimento de Aplicações
- aplicações
- Aplicar
- abordagem
- se aproxima
- aproximadamente
- arquitetura
- SOMOS
- artificial
- inteligência artificial
- Inteligência Artificial e Aprendizado de Máquinas
- AS
- perguntar
- aspirador
- Assistente
- associado
- At
- aumentado
- Auth
- disponível
- evitar
- AWS
- Formação da Nuvem AWS
- baseado
- BE
- sido
- antes
- MELHOR
- Melhor
- entre
- bilhão
- corpo
- ambos
- construído
- negócio
- mas a
- by
- chamada
- CAN
- não podes
- capacidades
- capacidade
- capturas
- casos
- alterar
- acusações
- Escolha
- escolha
- cliente
- agrupamento
- código
- coleção
- coleções
- coletor
- Coluna
- combinando
- comentários
- comum
- comunidade
- Empresas
- Empresa
- comparável
- comparar
- comparado
- comparando
- comparação
- completar
- Efetuado
- integrações
- componentes
- conceito
- conciso
- conferências
- Configuração
- configurado
- consiste
- cônsul
- não contenho
- contida
- contém
- conteúdo
- contexto
- contínuo
- converter
- convertido
- conversão
- Correspondente
- poderia
- crio
- criado
- cria
- Criar
- Credenciais
- cliente
- Clientes
- ciclo
- Dallas
- painéis
- dados,
- ciência de dados
- banco de dados
- década
- convés
- Padrão
- entregar
- entrega
- Demanda
- demonstrar
- implantar
- descreve
- descreve
- descrição
- Design
- projetado
- detalhes
- em desenvolvimento
- Desenvolvimento
- diagrama
- DICT
- diferença
- diferente
- Distribuição
- Dimensão
- dimensões
- descobrir
- discutir
- discutido
- Ecrã
- monitores
- do
- INSTITUCIONAIS
- parece
- domínios
- download
- distância
- condução
- durante
- e
- cada
- eficiente
- elementos
- embutindo
- emergente
- permitir
- habilitado
- permitindo
- Motor
- Empreendimento
- erro
- avaliar
- Mesmo
- Exceto
- exceção
- vasta experiência
- experiência
- estender
- externamente
- extrato
- Familiaridade
- campo
- Campos
- Envie o
- Arquivos
- financeiro
- serviços financeiros
- Encontre
- concentra-se
- seguinte
- Escolha
- formato
- fomento
- Foundation
- da
- Combustível
- cheio
- totalmente
- mais distante
- futuro
- gerar
- gerado
- gera
- gerando
- geração
- generativo
- IA generativa
- georgetown
- GitHub
- dado
- dá
- vai
- gráficos
- Growth
- orientações
- tinha
- manipular
- Ter
- he
- saúde
- ajuda
- oculto
- superior
- destaques
- acessos
- hospedeiro
- hospedado
- anfitriões
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- http
- HTTPS
- humano
- i
- Identidade
- if
- ilustra
- imagem
- imagens
- imediatamente
- executar
- implementação
- implementa
- melhorias
- in
- incluir
- inclui
- Incluindo
- índice
- Índices
- Individual
- INFORMAÇÕES
- Infraestrutura
- iniciativas
- Inovação
- e inovações
- entrada
- instância
- instruções
- Inteligência
- interagir
- interação
- interesse
- internamente
- para dentro
- investimento
- IT
- juntando
- jpg
- json
- Junho
- Chave
- Saber
- Conhecimento
- língua
- grande
- Latência
- principal
- Leads
- aprendizagem
- levou
- Biblioteca
- Licença
- como
- local
- diminuir
- máquina
- aprendizado de máquina
- moldadas
- a Principal
- fazer
- Fazendo
- gerenciados
- muitos
- Match
- correspondente
- max
- membro
- mencionar
- Menu
- mensagens
- metadados
- método
- métodos
- migração
- ML
- modelo
- modelos
- mais
- a maioria
- MS
- nome
- nomes
- natural
- Processamento de linguagem natural
- Navegar
- navegação
- Navegação
- você merece...
- Novo
- Próximo
- nenhum
- nota
- caderno
- numerada
- números
- of
- oferecer
- on
- Sob demanda
- ONE
- aberto
- otimização
- or
- organização
- OS
- Outros
- A Nossa
- Fora
- resultados
- saída
- outputs
- Acima de
- página
- pão
- parâmetro
- parâmetros
- parte
- parceiro
- Parceiros
- peças
- passou
- apaixonado
- caminho
- para
- Realizar
- atuação
- realizada
- permissões
- Personalização
- perspectivas
- fase
- Frases
- Física
- oleoduto
- platão
- Inteligência de Dados Platão
- PlatãoData
- políticas
- Publique
- potencialmente
- poder
- poderoso
- apresentado
- anterior
- Prévio
- processo
- Processado
- em processamento
- Agenda
- progressão
- Propriedades
- fornecer
- fornecido
- fornece
- fornecendo
- publicamente
- quarks
- consultas
- pergunta
- questão
- Frequentes
- Links
- R
- trapo
- alcance
- rápido
- rapidamente
- Leia
- recebido
- referenciada
- relacionado
- liberado
- relevante
- confia
- permanecem
- pedidos
- requeridos
- pesquisa
- Recursos
- resposta
- respostas
- resultar
- Resultados
- recuperação
- retorno
- Rico
- Tipo
- papéis
- Execute
- corrida
- sábio
- mesmo
- amostra
- dizer
- Escala
- Ciência
- Pesquisar
- seções
- setor
- Vejo
- parecem
- selecionando
- semântico
- senior
- enviei
- Seqüência
- Série
- Serverless
- serve
- serviço
- Serviços
- Sessão
- Conjuntos
- Configurações
- Partilhar
- compartilhando
- ela
- rede de apoio social
- Shows
- siled
- semelhante
- simples
- solteiro
- Tamanho
- slide
- Slides
- fragmento
- solução
- Soluções
- alguns
- fonte
- Fontes
- especialista
- específico
- estável
- pilha
- Estágio
- inicialização
- Estado
- estado-da-arte
- Passos
- armazenamento
- loja
- armazenadas
- lojas
- armazenar
- Estratégico
- subseqüente
- sucesso
- entraram com sucesso
- tal
- RESUMO
- Summit
- ajuda
- Suportado
- Apoiar
- certo
- mesa
- Talento
- Converse
- tarefas
- Dados Técnicos:
- Tecnologias
- Tecnologia
- modelo
- teste
- testes
- texas
- texto
- textual
- do que
- que
- A
- as informações
- deles
- Eles
- então
- assim sendo
- Este
- deles
- isto
- Taxa de transferência
- tempo
- vezes
- titã
- para
- ferramenta
- ferramentas
- Toronto
- tradicional
- tradicionalmente
- atravessar
- verdadeiro
- tentar
- VIRAR
- dois
- tipo
- tipos
- descobrir
- para
- universidade
- Atualizar
- atualização
- usar
- casos de uso
- usava
- Utilizador
- usos
- utilização
- valor
- Valores
- variedade
- Grande
- versátil
- visual
- Washington
- Caminho..
- we
- web
- serviços web
- BEM
- O Quê
- O que é a
- qual
- enquanto
- Largo
- Ampla variedade
- mais largo
- precisarão
- de
- dentro
- palavras
- trabalhou
- de gestão de documentos
- trabalhar
- Vocês
- investimentos
- zefirnet