As conversas online são onipresentes na vida moderna, abrangendo setores de videogames a telecomunicações. Isso levou a um crescimento exponencial na quantidade de dados de conversação online, o que ajudou no desenvolvimento de sistemas de processamento de linguagem natural (NLP) de última geração, como chatbots e modelos de geração de linguagem natural (NLG). Com o tempo, várias técnicas de PNL para análise de texto também evoluíram. Isso exige o requisito de um serviço totalmente gerenciado que possa ser integrado a aplicativos usando chamadas de API sem a necessidade de ampla experiência em aprendizado de máquina (ML). A AWS oferece serviços de IA da AWS pré-treinados, como Amazon Comprehend, que pode lidar efetivamente com casos de uso de PNL envolvendo classificação, resumo de texto, reconhecimento de entidade e muito mais para coletar insights do texto.
Além disso, as conversas on-line levaram a um fenômeno generalizado de uso não tradicional da linguagem. As técnicas tradicionais de PNL geralmente têm um desempenho ruim nesses dados de texto devido à constante evolução e vocabulários específicos de domínio que existem em diferentes plataformas, bem como os desvios lexicais significativos das palavras do inglês adequado, seja por acidente ou intencionalmente como uma forma de ataque adversário .
Neste post, descrevemos várias abordagens de ML para classificação de texto de conversas online com ferramentas e serviços disponíveis na AWS.
Pré-requisitos
Antes de se aprofundar neste caso de uso, preencha os seguintes pré-requisitos:
- Configure um Conta da AWS e criar um usuário do IAM.
- Configure o CLI da AWS e SDKs da AWS.
- (Opcional) Configure seu Ambiente de IDE Cloud9.
Conjunto de dados
Para esta postagem, usamos o Viés não intencional do quebra-cabeça no conjunto de dados de classificação de toxicidade, uma referência para o problema específico de classificação de toxicidade em conversas online. O conjunto de dados fornece rótulos de toxicidade, bem como vários atributos de subgrupo, como obsceno, ataque de identidade, insulto, ameaça e sexualmente explícito. Os rótulos são fornecidos como valores fracionários, que representam a proporção de anotadores humanos que acreditaram no atributo aplicado a um determinado trecho de texto, o que raramente é unânime. Para gerar rótulos binários (por exemplo, tóxico ou não tóxico), um limite de 0.5 é aplicado aos valores fracionários e comentários com valores maiores que o limite são tratados como a classe positiva para esse rótulo.
Incorporação de subpalavras e RNNs
Para nossa primeira abordagem de modelagem, usamos uma combinação de incorporação de subpalavras e redes neurais recorrentes (RNNs) para treinar modelos de classificação de texto. As incorporações de subpalavras foram introduzidas por Bojanowski et ai. em 2017 como uma melhoria em relação aos métodos anteriores de incorporação em nível de palavra. Os modelos tradicionais de pular grama do Word2Vec são treinados para aprender uma representação vetorial estática de uma palavra de destino que prevê de maneira ideal o contexto dessa palavra. Os modelos de subpalavras, por outro lado, representam cada palavra alvo como um saco de n-gramas de caracteres que compõem a palavra, onde um n-grama é composto por um conjunto de n caracteres consecutivos. Esse método permite que o modelo de incorporação represente melhor a morfologia subjacente de palavras relacionadas no corpus, bem como o cálculo de incorporações para palavras novas e fora do vocabulário (OOV). Isso é particularmente importante no contexto de conversas on-line, um espaço de problemas no qual os usuários geralmente digitam palavras incorretamente (às vezes intencionalmente para evitar a detecção) e também usam um vocabulário exclusivo e em constante evolução que pode não ser capturado por um corpus de treinamento geral.
Amazon Sage Maker facilita o treinamento e a otimização de um modelo de incorporação de subpalavras não supervisionado em seu próprio corpus de dados de texto específicos de domínio com o built-in Algoritmo BlazingText. Também podemos baixar modelos de uso geral existentes treinados em grandes conjuntos de dados de texto online, como o seguinte Modelos em inglês disponíveis diretamente do fastText. Na instância do notebook SageMaker, basta executar o seguinte para fazer download de um modelo fastText pré-treinado:
Se você treinou seus próprios embeddings com BlazingText ou baixou um modelo pré-treinado, o resultado é um binário de modelo compactado que você pode usar com a biblioteca gensim para incorporar uma determinada palavra de destino como um vetor com base em suas subpalavras constituintes:
Depois de pré-processarmos um determinado segmento de texto, podemos usar essa abordagem para gerar uma representação vetorial para cada uma das palavras constituintes (separadas por espaços). Em seguida, usamos o SageMaker e uma estrutura de aprendizado profundo, como o PyTorch, para treinar um RNN personalizado com um objetivo de classificação binária ou multirótulo para prever se o texto é tóxico ou não e o subtipo específico de toxicidade com base em exemplos de treinamento rotulados.
Para carregar seu texto pré-processado para Serviço de armazenamento simples da Amazon (Amazon S3), use o seguinte código:
Para iniciar o treinamento de modelo multi-GPU escalável com o SageMaker, insira o seguinte código:
Dentro , definimos um conjunto de dados PyTorch que é usado por train.py
para preparar os dados de texto para treinamento e avaliação do modelo:
Observe que este código antecipa que o vectors.zip
arquivo contendo seus embeddings fastText ou BlazingText será armazenado em .
Além disso, você pode implantar facilmente modelos fastText pré-treinados por conta própria em endpoints SageMaker ativos para calcular vetores incorporados em tempo real para uso em tarefas relevantes em nível de palavra. Veja a seguir Exemplo do GitHub para mais detalhes.
Transformers com cara de abraço
Para nossa segunda abordagem de modelagem, fazemos a transição para o uso de Transformers, introduzido no artigo Atenção É Tudo Que Você Precisa. Os transformadores são modelos de aprendizado profundo projetados para evitar deliberadamente as armadilhas das RNNs, contando com um mecanismo de autoatenção para desenhar dependências globais entre entrada e saída. A arquitetura do modelo Transformer permite uma paralelização significativamente melhor e pode alcançar alto desempenho em um tempo de treinamento relativamente curto.
Baseado no sucesso de Transformers, o BERT, lançado no jornal BERT: Pré-treinamento de transformadores bidirecionais profundos para compreensão de idiomas, adicionado pré-treinamento bidirecional para representação de idioma. Inspirado na tarefa Cloze, o BERT é pré-treinado com modelagem de linguagem mascarada (MLM), na qual o modelo aprende a recuperar as palavras originais para tokens mascarados aleatoriamente. O modelo BERT também é pré-treinado na tarefa de previsão da próxima sentença (NSP) para prever se duas sentenças estão na ordem correta de leitura. Desde seu advento em 2018, o BERT e suas variações têm sido amplamente utilizados em tarefas de classificação de texto.
Nossa solução usa uma variante do BERT conhecida como RoBERTa, que foi introduzida no artigo RoBERTa: uma abordagem de pré-treinamento de BERT altamente otimizada. O RoBERTa melhora ainda mais o desempenho do BERT em uma variedade de tarefas de linguagem natural por meio de treinamento de modelo otimizado, incluindo modelos de treinamento mais longos em um corpus 10 vezes maior, usando hiperparâmetros otimizados, mascaramento aleatório dinâmico, remoção da tarefa NSP e muito mais.
Nossos modelos baseados em RoBERTa usam o Transformadores de rosto abraçando library, que é uma estrutura Python de código aberto popular que fornece implementações de alta qualidade de todos os tipos de modelos Transformer de última geração para uma variedade de tarefas de PNL. Hugging Face fez parceria com a AWS para permitir que você treine e implante facilmente modelos do Transformer no SageMaker. Esta funcionalidade está disponível através Abraçando as imagens do contêiner de aprendizado profundo da AWS, que incluem as bibliotecas Transformers, Tokenizers e Datasets e integração otimizada com o SageMaker para treinamento e inferência de modelos.
Em nossa implementação, herdamos o backbone da arquitetura RoBERTa da estrutura Hugging Face Transformers e usamos o SageMaker para treinar e implantar nosso próprio modelo de classificação de texto, que chamamos de RoBERTox. RoBERTox usa codificação de pares de bytes (BPE), introduzida em Tradução de máquina neural de palavras raras com unidades de subpalavra, para tokenizar o texto de entrada em representações de subpalavra. Podemos então treinar nossos modelos e tokenizers nos dados do Jigsaw ou em qualquer corpus grande de domínio específico (como os logs de bate-papo de um jogo específico) e usá-los para classificação de texto personalizada. Definimos nossa classe de modelo de classificação personalizada no código a seguir:
Antes do treinamento, preparamos nossos dados de texto e rótulos usando a biblioteca de conjuntos de dados do Hugging Face e carregamos o resultado no Amazon S3:
Iniciamos o treinamento do modelo de forma semelhante ao RNN:
Por fim, o trecho de código Python a seguir ilustra o processo de servir RoBERTox por meio de um endpoint SageMaker ao vivo para classificação de texto em tempo real para uma solicitação JSON:
Avaliação do desempenho do modelo: conjunto de dados de viés não intencional do Jigsaw
A tabela a seguir contém métricas de desempenho para modelos treinados e avaliados em dados da competição Jigsaw Unintended Bias in Toxicity Detection Kaggle. Treinamos modelos para três tarefas diferentes, mas inter-relacionadas:
- Caso binário – O modelo foi treinado no conjunto de dados de treinamento completo para prever o
toxicity
apenas etiqueta - Caso de granulação fina – O subconjunto dos dados de treinamento para o qual
toxicity>=0.5
foi usado para prever outros rótulos de subtipo de toxicidade (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Caso multitarefa – O conjunto de dados de treinamento completo foi usado para prever todos os seis rótulos simultaneamente
Treinamos modelos RNN e RoBERTa para cada uma dessas três tarefas usando os rótulos fracionários fornecidos pelo Jigsaw, que correspondem à proporção de anotadores que acharam o rótulo apropriado para o texto, bem como com rótulos binários combinados com pesos de classe na rede função de perda. No esquema de rotulagem binária, as proporções foram limitadas em 0.5 para cada rótulo disponível (1 se rótulo>=0.5, 0 caso contrário), e as funções de perda do modelo foram ponderadas com base nas proporções relativas de cada rótulo binário no conjunto de dados de treinamento. Em todos os casos, verificamos que a utilização dos rótulos fracionários resultou diretamente no melhor desempenho, indicando o valor agregado da informação inerente ao grau de concordância entre os anotadores.
Exibimos duas métricas de modelo: a precisão média (AP), que fornece um resumo da curva de precisão-recall calculando a média ponderada dos valores de precisão alcançados em cada limite de classificação e a área sob a curva característica de operação do receptor (AUC) , que agrega o desempenho do modelo nos limites de classificação em relação à taxa de verdadeiros positivos e à taxa de falsos positivos. Observe que a classe verdadeira para uma determinada instância de texto no conjunto de teste corresponde a se a proporção verdadeira é maior ou igual a 0.5 (1 se rótulo>=0.5, 0 caso contrário).
. | Incorporação de subpalavras + RNN | Roberto | ||
. | Rótulos fracionários | Rótulos binários + ponderação de classe | Rótulos fracionários | Rótulos binários + ponderação de classe |
Binário | PA=0.746, AUC=0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
Refinado | AP=0.906, AUC=0.909 | AP=0.850, AUC=0.851 | AP=0.913, AUC=0.913 | AP=0.911, AUC=0.912 |
Multitarefa | PA=0.721, AUC=0.972 | AP=0.535, AUC=0.907 | AP=0.740, AUC=0.972 | AP=0.711, AUC=0.961 |
Conclusão
Neste post, apresentamos duas abordagens de classificação de texto para conversas online usando serviços AWS ML. Você pode generalizar essas soluções em plataformas de comunicação on-line, com setores como o de jogos particularmente propensos a se beneficiar da capacidade aprimorada de detectar conteúdo prejudicial. Em postagens futuras, planejamos discutir ainda mais uma arquitetura de ponta a ponta para implantação perfeita de modelos em sua conta da AWS.
Se você quiser ajuda para acelerar o uso de ML em seus produtos e processos, entre em contato com o Laboratório de soluções de ML da Amazon.
Sobre os autores
Marca Ryan é cientista de dados no Amazon Machine Learning Solutions Lab. Ele tem experiência específica na aplicação de aprendizado de máquina a problemas na área de saúde e nas ciências da vida, e nas horas vagas gosta de ler história e ficção científica.
Sourav Bhabesh é cientista de dados no Amazon ML Solutions Lab. Ele desenvolve soluções de IA/ML para clientes da AWS em vários setores. Sua especialidade é Processamento de Linguagem Natural (PNL) e é apaixonado por aprendizado profundo. Fora do trabalho, gosta de ler livros e viajar.
Liutong Zhou é um cientista aplicado no Amazon ML Solutions Lab. Ele cria soluções de IA/ML sob medida para clientes da AWS em vários setores. Ele é especialista em Processamento de Linguagem Natural (PNL) e é apaixonado por aprendizado profundo multimodal. Ele é um tenor lírico e gosta de cantar óperas fora do trabalho.
Sia Gholami é Cientista de Dados Sênior no Amazon ML Solutions Lab, onde desenvolve soluções de IA/ML para clientes em vários setores. Ele é apaixonado por processamento de linguagem natural (PNL) e aprendizado profundo. Fora do trabalho, Sia gosta de passar o tempo na natureza e jogar tênis.
Daniel Horowitz é um gerente de ciência de IA aplicada. Ele lidera uma equipe de cientistas no Amazon ML Solutions Lab trabalhando para resolver os problemas dos clientes e impulsionar a adoção da nuvem com ML.
- Coinsmart. A melhor troca de Bitcoin e criptografia da Europa.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. ACESSO LIVRE.
- CryptoHawk. Radar Altcoin. Teste grátis.
- Fonte: https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- habilidade
- Sobre
- acelerando
- Conta
- Alcançar
- alcançado
- em
- adicionado
- Adoção
- Acordo
- AI
- Serviços de IA
- Todos os Produtos
- permite
- Amazon
- quantidade
- análise
- api
- aplicações
- aplicado
- Aplicar
- Aplicando
- abordagem
- se aproxima
- apropriado
- arquitetura
- ÁREA
- atributos
- disponível
- média
- AWS
- Bolsa
- referência
- beneficiar
- MELHOR
- Melhor
- entre
- maior
- Livros
- Constrói
- construídas em
- chamada
- casas
- casos
- caracteres
- classe
- classificação
- Na nuvem
- código
- combinação
- combinado
- comentários
- Comunicação
- competição
- completar
- composta
- computação
- Computar
- computação
- consecutivo
- constantemente
- Contacto
- Recipiente
- contém
- conteúdo
- Conversa
- conversas
- crio
- curva
- personalizadas
- cliente
- Clientes
- dados,
- cientista de dados
- profundo
- implantar
- desenvolvimento
- descreve
- projetado
- detalhes
- Detecção
- Determinar
- Desenvolvimento
- diferente
- Dimensão
- diretamente
- discutir
- Ecrã
- download
- distância
- durante
- dinâmico
- cada
- facilmente
- efetivamente
- permitir
- end-to-end
- Ponto final
- Inglês
- Entrar
- entidade
- avaliação
- evolução
- exemplo
- exemplos
- existente
- vasta experiência
- experiência
- extenso
- Rosto
- Moda
- Ficção
- Primeiro nome
- seguinte
- formulário
- para a frente
- encontrado
- fracionário
- Quadro
- Gratuito
- da
- cheio
- função
- funcionalidade
- funções
- mais distante
- futuro
- jogo
- Games
- jogos
- Geral
- propósito geral
- gerar
- geração
- Global
- maior
- Growth
- manipular
- cabeça
- saúde
- ajudar
- ajudou
- Alta
- alta qualidade
- história
- HTTPS
- humano
- Dados de identificação:
- implementação
- importante
- melhorado
- melhoria
- incluir
- Incluindo
- indústrias
- INFORMAÇÕES
- inerente
- entrada
- insights
- inspirado
- instância
- Insulto
- integrado
- integração
- IT
- serra de vaivém
- Trabalho
- chaves
- conhecido
- laboratório
- O rótulo
- marcação
- Rótulos
- língua
- grande
- Maior
- camada
- Leads
- APRENDER
- aprendizagem
- levou
- Biblioteca
- Ciências da Vida
- Provável
- viver
- carregar
- máquina
- aprendizado de máquina
- fazer
- FAZ
- gerenciados
- Gerente
- máscara
- Máscaras
- Match
- Matriz
- mecanismo
- Memória
- métodos
- Métrica
- poder
- ML
- modelo
- modelos
- mais
- múltiplo
- natural
- Natureza
- rede
- redes
- Próximo
- caderno
- número
- Oferece
- online
- operando
- Otimize
- otimizado
- ordem
- original
- Outros
- de outra forma
- próprio
- Papel
- particularmente
- parceria
- apaixonado
- atuação
- peça
- Plataformas
- jogar
- por favor
- Popular
- positivo
- POSTAGENS
- predizer
- predição
- Preparar
- anterior
- Problema
- problemas
- processo
- processos
- em processamento
- Produtos
- Projeção
- fornecido
- fornece
- Leitura
- em tempo real
- Recuperar
- relevante
- removendo
- representar
- representação
- representando
- solicitar
- retorno
- Retorna
- Tipo
- Execute
- escalável
- esquema
- Ciência
- CIÊNCIAS
- Cientista
- cientistas
- desatado
- segmento
- serviço
- Serviços
- de servir
- conjunto
- vários
- Baixo
- periodo
- semelhante
- simples
- desde
- SIX
- Tamanho
- solução
- Soluções
- RESOLVER
- Espaço
- espaços
- especializada
- Especialidade
- específico
- Passar
- estado-da-arte
- Unidos
- armazenamento
- sucesso
- sistemas
- Target
- tarefas
- Profissionais
- técnicas
- telecomunicações
- teste
- A
- três
- limiar
- Através da
- tempo
- vezes
- Tokens
- ferramentas
- tocha
- tradicional
- Trem
- Training
- transição
- Tradução
- Viagens
- para
- único
- usar
- usuários
- validação
- valor
- variedade
- vário
- Vídeo
- jogos de vídeo
- se
- QUEM
- dentro
- sem
- palavras
- Atividades:
- trabalhar
- investimentos