Neste post, mostramos como implementar um dos modelos pré-treinados Hugging Face mais baixados usados para sumarização de texto, DestilBART-CNN-12-6, dentro de um notebook Jupyter usando Amazon Sage Maker e os votos de Kit de ferramentas de inferência de rosto de abraço SageMaker. Com base nas etapas mostradas neste post, você pode tentar resumir o texto do WikiTexto-2 conjunto de dados gerenciado por fast.ai, disponível no Registro de dados abertos na AWS.
Os volumes globais de dados estão crescendo em escala de zettabyte à medida que empresas e consumidores expandem seu uso de produtos digitais e serviços online. Para entender melhor esses dados crescentes, as técnicas de processamento de linguagem natural (NLP) de aprendizado de máquina (ML) para análise de texto evoluíram para abordar casos de uso que envolvem resumo de texto, reconhecimento de entidade, classificação, tradução e muito mais. AWS oferece pré-treinamento Serviços AWS AI que podem ser integrados a aplicativos usando chamadas de API e não exigem experiência em ML. Por exemplo, Amazon Comprehend pode executar tarefas de PNL, como reconhecimento de entidade personalizada, análise de sentimento, extração de frase-chave, modelagem de tópicos e muito mais para coletar insights de texto. Ele pode realizar análise de texto em uma ampla variedade de idiomas por suas diversas características.
A sumarização de texto é uma técnica útil para entender grandes quantidades de dados de texto porque cria um subconjunto de informações contextualmente significativas dos documentos de origem. Você pode aplicar essa técnica de PNL a documentos e artigos de texto de formato mais longo, permitindo um consumo mais rápido e uma indexação de documentos mais eficaz, por exemplo, para resumir notas de chamadas de reuniões.
Abraçando o rosto é uma biblioteca de código aberto popular para NLP, com mais de 49,000 modelos pré-treinados em mais de 185 idiomas com suporte para diferentes estruturas. AWS e Hugging Face têm um parceria que permite uma integração perfeita por meio do SageMaker com um conjunto de AWS Deep Learning Containers (DLCs) para treinamento e inferência em PyTorch ou TensorFlow, e estimadores e preditores Hugging Face para o SageMaker Python SDK. Esses recursos do SageMaker ajudam desenvolvedores e cientistas de dados a começar a usar a PNL na AWS com mais facilidade. Processar textos com transformadores em estruturas de aprendizado profundo, como o PyTorch, normalmente é uma tarefa complexa e demorada para cientistas de dados, muitas vezes levando à frustração e falta de eficiência ao desenvolver projetos de PNL. O surgimento de comunidades de IA como o Hugging Face, combinado com o poder dos serviços de ML na nuvem como o SageMaker, acelera e simplifica o desenvolvimento dessas tarefas de processamento de texto. O SageMaker ajuda você a construir, treinar, implantar e operacionalizar modelos Hugging Face.
Visão geral do resumo de texto
Você pode aplicar o resumo de texto para identificar frases-chave em um documento ou identificar frases-chave em vários documentos. A sumarização de texto pode produzir dois tipos de resumos: extrativos e abstrativos. Os resumos extrativos não contêm nenhum texto gerado por máquina e são uma coleção de frases importantes selecionadas do documento de entrada. Resumos abstrativos contêm novas frases e sentenças legíveis por humanos geradas pelo modelo de resumo de texto. A maioria dos sistemas de sumarização de texto é baseada na sumarização extrativa porque a sumarização de texto abstrativa precisa é difícil de alcançar.
Hugging Face tem mais de 400 pré-treinados state-of-the-art modelos de resumo de texto disponíveis, implementando diferentes combinações de técnicas de PNL. Esses modelos são treinados em diferentes conjuntos de dados, carregados e mantidos por empresas de tecnologia e membros da comunidade Hugging Face. Você pode filtrar os modelos por mais baixados ou mais curtidos, e carregá-los diretamente ao usar o pipeline de resumo Hugging Face Transformer API. O transformador Hugging Face simplifica o processo de implementação de NLP para que os modelos de NLP de alto desempenho possam ser ajustados para fornecer resumos de texto, sem exigir amplo conhecimento de operação de ML.
Hugging Face modelos de resumo de texto na AWS
O SageMaker oferece a analistas de negócios, cientistas de dados e engenheiros de MLOps uma variedade de ferramentas para projetar e operar cargas de trabalho de ML na AWS. Essas ferramentas fornecem implementação e teste mais rápidos de modelos de ML para alcançar os melhores resultados.
De Kit de ferramentas de inferência de rosto de abraço SageMaker, uma biblioteca de código aberto, descrevemos três maneiras diferentes de implementar e hospedar modelos de resumo de texto do Hugging Face usando um notebook Jupyter:
- Canal de resumo do Hugging Face - Crie um Canal de resumo do Hugging Face usando o “
summarization
” identificador de tarefa para usar um modelo de resumo de texto padrão para inferência em seu notebook Jupyter. Esses pipelines abstraem o código complexo, oferecendo aos praticantes de ML novatos uma API simples para implementar rapidamente o resumo de texto sem configurar um endpoint de inferência. O pipeline também permite que o profissional de ML selecione um modelo pré-treinado específico e seu tokenizer associado. Os tokenizadores preparam o texto para ficar pronto como entrada para o modelo, dividindo o texto em palavras ou subpalavras, que são convertidas em IDs por meio de uma tabela de pesquisa. Para simplificar, o trecho de código a seguir fornece o caso padrão ao usar pipelines. o DestilBART-CNN-12-6 modelo é um dos modelos de sumarização mais baixados no Hugging Face e é o modelo padrão para o pipeline de sumarização. A última linha chama o modelo pré-treinado para obter um resumo do texto passado de acordo com os dois argumentos fornecidos. - Endpoint SageMaker com modelo pré-treinado – Crie um endpoint SageMaker com um modelo pré-treinado do Hub de modelo de rosto de abraço e implemente-o em um endpoint de inferência, como a instância ml.m5.xlarge no trecho de código a seguir. Esse método permite que profissionais experientes de ML selecionem rapidamente modelos de código aberto específicos, ajustem-nos e implantem os modelos em instâncias de inferência de alto desempenho.
- Endpoint SageMaker com um modelo treinado – Crie um endpoint de modelo SageMaker com um modelo treinado armazenado em um Serviço de armazenamento simples da Amazon (Amazon S3) e implante-o em um endpoint de inferência. Esse método permite que profissionais experientes de ML implantem rapidamente seus próprios modelos armazenados no Amazon S3 em instâncias de inferência de alto desempenho. O modelo em si é baixado do Hugging Face e compactado e, em seguida, pode ser carregado no Amazon S3. Essa etapa é demonstrada no trecho de código a seguir:
A AWS tem vários recursos disponíveis para ajudá-lo a implantar suas cargas de trabalho de ML. o Lente de aprendizado de máquina da Estrutura bem arquitetada da AWS recomenda as melhores práticas para cargas de trabalho de ML, incluindo otimização de recursos e redução de custos. Esses princípios de design recomendados garantem que cargas de trabalho de ML bem arquitetadas na AWS sejam implantadas na produção. Recomendador de inferência do Amazon SageMaker ajuda você a selecionar a instância certa para implantar seus modelos de ML com desempenho e custo de inferência ideais. O Inference Recommender acelera a implantação do modelo e reduz o tempo de lançamento no mercado automatizando o teste de carga e otimizando o desempenho do modelo em instâncias de ML.
Nas próximas seções, demonstramos como carregar um modelo treinado de um bucket do S3 e implantá-lo em uma instância de inferência adequada.
Pré-requisitos
Para este passo a passo, você deve ter os seguintes pré-requisitos:
- An Conta da AWS.
- Um notebook Jupyter dentro Estúdio Amazon SageMaker ou instâncias de notebook SageMaker. Nesta postagem, usamos a imagem “Python 3 (PyTorch 1.4 Python 3.6 CPU Optimized)” com os trechos de código fornecidos, mas você pode usar qualquer outra imagem PyTorch de versão superior do kernels SageMaker disponíveis.
- Um conjunto de dados em seu bucket S3, como o WikiTexto-2 conjunto de dados do Registro de dados abertos na AWS.
Carregue o modelo Hugging Face no SageMaker para inferência de resumo de texto
Use o código a seguir para baixar o modelo de resumo de texto pré-treinado do Hugging Face DestilBART-CNN-12-6 e seu tokenizer e salve-os localmente no SageMaker em seu diretório de notebook Jupyter:
Compacte o modelo de resumo de texto salvo e seu tokenizer no formato tar.gz e carregue o artefato do modelo compactado em um bucket do S3:
Selecione um imagem de contêiner do Docker de inferência para realizar a inferência de sumarização de texto. Defina o sistema operacional Linux, a estrutura PyTorch e a versão do Hugging Face Transformer e especifique o Amazon Elastic Compute Nuvem (Amazon EC2) tipo de instância para executar o contêiner.
A imagem do Docker está disponível no Registro do Amazon Elastic Container (Amazon ECR) da mesma conta da AWS e o link para essa imagem de contêiner é retornado como um URI.
Defina o modelo de resumo de texto a ser implementado pela imagem de contêiner selecionada executando a inferência. No trecho de código a seguir, o modelo compactado carregado no Amazon S3 é implantado:
Teste o modelo de resumo de texto implantado em uma entrada de amostra:
Use o Inference Recommender para avaliar a instância ideal do EC2 para a tarefa de inferência
Em seguida, crie várias amostras de carga útil de texto de entrada no formato JSON e compacte-as em um único arquivo de carga útil. Essas amostras de carga útil são usadas pelo Inference Recommender para comparar o desempenho de inferência entre diferentes tipos de instância do EC2. Cada uma das cargas úteis de amostra deve corresponder ao formato JSON mostrado anteriormente. Você pode obter exemplos do WikiTexto-2 conjunto de dados gerenciado por fast.ai, disponível no Registro de dados abertos na AWS.
Carregue o artefato do modelo de resumo de texto compactado e o arquivo de carga útil de amostra compactado no bucket do S3. Carregamos o modelo em uma etapa anterior, mas para maior clareza incluímos o código para carregá-lo novamente:
Revise a lista de modelos de ML padrão disponíveis no SageMaker em zoológicos modelo comum, como PNL e visão computacional. Selecione um modelo de PNL para realizar a inferência de sumarização de texto:
O exemplo a seguir usa o bert-base-cased
Modelo PNL. Registre o modelo de sumarização de texto no Registro de modelo SageMaker com o domínio, estrutura e tarefa corretamente identificados da etapa anterior. Os parâmetros para este exemplo são mostrados no início do trecho de código a seguir.
Observe o intervalo de tipos de instância do EC2 a serem avaliados pelo Inference Recommender em SupportedRealtimeInferenceInstanceTypes
no código a seguir. Certifique-se de que o limites de serviço para a conta da AWS permitem a implantação desses tipos de nós de inferência.
Crie um trabalho padrão do Inference Recommender usando o ModelPackageVersion
resultante da etapa anterior. o uuid
A biblioteca Python é usada para gerar um nome exclusivo para o trabalho.
Você pode obter o status do trabalho do Inference Recommender executando o seguinte código:
Quando o status do trabalho é COMPLETED
, compare a latência de inferência, o tempo de execução e outras métricas dos tipos de instância do EC2 avaliados pelo trabalho padrão do Inference Recommender. Selecione o tipo de nó adequado com base em seus requisitos de caso de uso.
Conclusão
O SageMaker oferece várias maneiras de usar os modelos Hugging Face; para mais exemplos, confira o Amostras da AWS GitHub. Dependendo da complexidade do caso de uso e da necessidade de ajustar o modelo, você pode selecionar a maneira ideal de usar esses modelos. Os pipelines Hugging Face podem ser um bom ponto de partida para experimentar rapidamente e selecionar modelos adequados. Quando você precisar personalizar e parametrizar os modelos selecionados, poderá fazer download dos modelos e implantá-los em endpoints de inferência personalizados. Para ajustar o modelo mais para um caso de uso específico, você precisará treinar o modelo após baixá-lo.
Os modelos de PNL em geral, incluindo modelos de resumo de texto, apresentam melhor desempenho após serem treinados em um conjunto de dados específico para o caso de uso. Os MLOPs e os recursos de monitoramento de modelo do SageMaker garantem que o modelo implantado continue a funcionar dentro das expectativas. Neste post, usamos o Inference Recommender para avaliar o tipo de instância mais adequado para implantar o modelo de resumo de texto. Essas recomendações podem otimizar o desempenho e o custo para seu caso de uso de ML.
Sobre os autores
Dr. Nidal Al Beiruti é arquiteto de soluções sênior da Amazon Web Services, apaixonado por soluções de aprendizado de máquina. Nidal tem mais de 25 anos de experiência trabalhando em uma variedade de funções globais de TI em diferentes níveis e verticais. Nidal atua como um consultor confiável para muitos clientes da AWS para dar suporte e acelerar sua jornada de adoção da nuvem.
Darren Ko é um Arquiteto de Soluções baseado em Londres. Ele aconselha clientes SMB do Reino Unido e da Irlanda sobre rearquitetura e inovação na nuvem. Darren está interessado em aplicativos criados com arquiteturas sem servidor e é apaixonado por resolver desafios de sustentabilidade com aprendizado de máquina.
- '
- "
- 000
- 10
- 100
- 28
- a
- Sobre
- RESUMO
- acelerar
- Conta
- preciso
- Alcançar
- em
- endereço
- Adoção
- assessor
- AI
- permite
- Amazon
- Amazon Web Services
- quantidades
- análise
- api
- Apple
- aplicações
- Aplicar
- argumentos
- artigos
- associado
- automatizando
- disponível
- premiado
- AWS
- Porque
- Começo
- ser
- MELHOR
- melhores práticas
- entre
- construir
- negócio
- chamada
- Pode obter
- capacidades
- casas
- casos
- desafios
- escolha
- classe
- classificação
- Na nuvem
- código
- coleção
- combinações
- combinado
- Comunidades
- comunidade
- Empresas
- integrações
- Computar
- computador
- Configuração
- Consumidores
- consumo
- Recipiente
- Containers
- continua
- crio
- cria
- personalizadas
- Clientes
- personalizar
- dados,
- dia
- profundo
- Entrega
- demonstrar
- demonstraram
- Dependendo
- implantar
- implantado
- Implantação
- desenvolvimento
- Design
- desenvolvedores
- em desenvolvimento
- Desenvolvimento
- diferente
- difícil
- digital
- diretamente
- Ecrã
- Estivador
- Médico
- INSTITUCIONAIS
- domínio
- domínios
- download
- cada
- facilmente
- Eficaz
- eficiência
- permitindo
- Ponto final
- Engenheiros
- entidade
- Meio Ambiente
- avaliar
- exemplo
- exemplos
- Expandir
- expectativas
- vasta experiência
- experiente
- experimentar
- extenso
- Rosto
- RÁPIDO
- mais rápido
- Funcionalidades
- seguinte
- formato
- Quadro
- enquadramentos
- da
- Geral
- gerar
- gerado
- Global
- Bom estado, com sinais de uso
- Crescente
- ajudar
- útil
- ajuda
- superior
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- Hub
- legível para humanos
- identificar
- imagem
- executar
- implementação
- implementação
- importante
- incluir
- Incluindo
- INFORMAÇÕES
- inovando
- entrada
- insights
- instância
- integrado
- integração
- interessado
- Irlanda
- IT
- se
- Trabalho
- viagem
- Chave
- Conhecimento
- língua
- Idiomas
- grande
- principal
- aprendizagem
- níveis
- Biblioteca
- limites
- Line
- LINK
- linux
- Lista
- carregar
- localmente
- London
- pesquisa
- máquina
- aprendizado de máquina
- fazer
- mercado
- Match
- significativo
- reuniões
- Membros
- Métrica
- ML
- modelo
- modelos
- monitoração
- mais
- a maioria
- múltiplo
- natural
- Próximo
- nós
- caderno
- Notas
- oferecendo treinamento para distância
- Oferece
- online
- aberto
- operar
- operação
- Otimize
- otimizado
- otimizando
- Outros
- próprio
- paixão
- apaixonado
- atuação
- realização
- Frases
- ponto
- Popular
- poder
- Preparar
- anterior
- processo
- em processamento
- produzir
- Produção
- Produtos
- projetos
- fornecer
- fornecido
- fornece
- rapidamente
- alcance
- recomenda
- redução
- região
- cadastre-se
- solicitar
- requerer
- Requisitos
- Recursos
- resultando
- Tipo
- Execute
- corrida
- mesmo
- Escala
- cientistas
- Sdk
- desatado
- selecionado
- sentimento
- Serverless
- Serviços
- conjunto
- vários
- mostrando
- simples
- solteiro
- So
- Soluções
- específico
- velocidades
- padrão
- começado
- estado-da-arte
- Status
- armazenamento
- ajuda
- Sustentabilidade
- sistemas
- tarefas
- técnicas
- Equipar
- ensaio
- A
- três
- Através da
- tempo
- demorado
- ferramentas
- tópico
- Training
- Tradução
- confiável
- tipos
- tipicamente
- Uk
- para
- compreender
- compreensão
- único
- usar
- variedade
- vário
- versão
- Verticais
- visão
- volumes
- maneiras
- web
- serviços web
- dentro
- sem
- palavras
- trabalhar
- X
- anos
- investimentos