A inteligência artificial (IA) e o aprendizado de máquina (ML) foram amplamente adotados em organizações empresariais e governamentais. O processamento de dados não estruturados tornou-se mais fácil com os avanços no processamento de linguagem natural (PNL) e serviços de IA/ML fáceis de usar, como amazontext, Amazon Transcribe e Amazon Comprehend. As organizações começaram a usar serviços de IA/ML como o Amazon Comprehend para criar modelos de classificação com seus dados não estruturados e obter insights profundos que não tinham antes. Embora você possa usar modelos pré-treinados com o mínimo de esforço, sem curadoria de dados e ajuste de modelo adequados, não será possível obter todos os benefícios dos modelos de IA/ML.
Nesta postagem, explicamos como construir e otimizar um modelo de classificação personalizado usando o Amazon Comprehend. Demonstramos isso usando uma classificação personalizada do Amazon Comprehend para criar um modelo de classificação personalizada com vários rótulos e fornecemos diretrizes sobre como preparar o conjunto de dados de treinamento e ajustar o modelo para atender às métricas de desempenho, como exatidão, precisão, recall e pontuação F1. Usamos os artefatos de saída de treinamento do modelo do Amazon Comprehend como uma matriz de confusão para ajustar o desempenho do modelo e orientar você na melhoria dos dados de treinamento.
Visão geral da solução
Esta solução apresenta uma abordagem para criar um modelo de classificação personalizado otimizado usando o Amazon Comprehend. Passamos por várias etapas, incluindo preparação de dados, criação de modelo, análise de métricas de desempenho de modelo e otimização de inferência com base em nossa análise. Usamos um Amazon Sage Maker caderno e os votos de Console de gerenciamento da AWS para concluir algumas dessas etapas.
Também abordamos as melhores práticas e técnicas de otimização durante a preparação de dados, construção de modelo e ajuste de modelo.
Pré-requisitos
Se você não tiver uma instância de notebook SageMaker, poderá criar uma. Para obter instruções, consulte Criar uma instância de notebook do Amazon SageMaker.
Prepare os dados
Para esta análise, usamos o conjunto de dados Toxic Comment Classification de Kaggle. Este conjunto de dados contém 6 rótulos com 158,571 pontos de dados. No entanto, cada rótulo tem apenas menos de 10% do total de dados como exemplos positivos, com dois dos rótulos tendo menos de 1%.
Convertemos o conjunto de dados Kaggle existente para o Formato CSV de duas colunas do Amazon Comprehend com os rótulos divididos usando um delimitador de barra vertical (|). O Amazon Comprehend espera pelo menos um rótulo para cada ponto de dados. Neste conjunto de dados, encontramos vários pontos de dados que não se enquadram em nenhum dos rótulos fornecidos. Criamos um novo rótulo chamado limpo e atribuímos qualquer ponto de dados que não seja tóxico como positivo com esse rótulo. Por fim, dividimos os conjuntos de dados selecionados em conjuntos de dados de treinamento e teste usando uma proporção de 80/20 por rótulo.
Estaremos usando o caderno de preparação de dados. As etapas a seguir usam o conjunto de dados Kaggle e preparam os dados para nosso modelo.
- No console SageMaker, escolha Instâncias de notebook no painel de navegação.
- Selecione a instância de notebook que você configurou e escolha Abra o Jupyter.
- No Novo menu, escolha terminal.
- Execute os seguintes comandos no terminal para baixar os artefatos necessários para esta postagem:
- Feche a janela do terminal.
Você deverá ver três cadernos e trem.csv arquivos.
- Escolha o caderno Preparação de dados.ipynb.
- Execute todas as etapas no notebook.
Essas etapas preparam o conjunto de dados Kaggle bruto para servir como conjuntos de dados de treinamento e teste selecionados. Conjuntos de dados selecionados serão armazenados no notebook e Serviço de armazenamento simples da Amazon (Amazônia S3).
Considere as seguintes diretrizes de preparação de dados ao lidar com conjuntos de dados multirrótulos em grande escala:
- Os conjuntos de dados devem ter no mínimo 10 amostras por rótulo.
- O Amazon Comprehend aceita no máximo 100 rótulos. Este é um limite flexível que pode ser aumentado.
- Certifique-se de que o arquivo do conjunto de dados esteja formatado corretamente com o delimitador adequado. Delimitadores incorretos podem introduzir rótulos em branco.
- Todos os pontos de dados devem ter rótulos.
- Os conjuntos de dados de treinamento e teste devem ter distribuição equilibrada de dados por rótulo. Não use distribuição aleatória porque ela pode introduzir distorções nos conjuntos de dados de treinamento e teste.
Crie um modelo de classificação personalizado
Usamos os conjuntos de dados de treinamento e teste selecionados que criamos durante a etapa de preparação de dados para construir nosso modelo. As etapas a seguir criam um modelo de classificação personalizada com vários rótulos do Amazon Comprehend:
- No console do Amazon Comprehend, escolha Classificação personalizada no painel de navegação.
- Escolha Criar novo modelo.
- Escolha Nome do modelo, insira o modelo de classificação tóxica.
- Escolha Nome da versão, insira 1.
- Escolha Anotação e formato de dados, escolha Usando o modo Multi-rótulo.
- Escolha Conjunto de dados de treinamento, insira o local do conjunto de dados de treinamento selecionado no Amazon S3.
- Escolha Conjunto de dados de teste fornecido pelo cliente e insira o local dos dados de teste selecionados no Amazon S3.
- Escolha Dados de saída, insira o local do Amazon S3.
- Escolha Papel do IAM, selecione Crie uma função IAM, especifique o sufixo do nome como “compreender-blog”.
- Escolha Crie para iniciar o treinamento do modelo de classificação personalizado e a criação do modelo.
A captura de tela a seguir mostra os detalhes do modelo de classificação personalizado no console do Amazon Comprehend.
Ajustar o desempenho do modelo
A captura de tela a seguir mostra as métricas de desempenho do modelo. Inclui métricas importantes como precisão, recall, pontuação F1, exatidão e muito mais.
Após o modelo ser treinado e criado, ele irá gerar o arquivo output.tar.gz, que contém os rótulos do conjunto de dados, bem como a matriz de confusão para cada um dos rótulos. Para ajustar ainda mais o desempenho de previsão do modelo, você precisa entender seu modelo com as probabilidades de previsão para cada classe. Para fazer isso, você precisa criar um trabalho de análise para identificar as pontuações que o Amazon Comprehend atribuiu a cada um dos pontos de dados.
Conclua as etapas a seguir para criar um trabalho de análise:
- No console do Amazon Comprehend, escolha Trabalhos de análise no painel de navegação.
- Escolha Criar emprego.
- Escolha Nome, entrar
toxic_train_data_analysis_job
. - Escolha Tipo de análise, escolha Classificação personalizada.
- Escolha Modelos de classificação e volantes, especificamos
toxic-classification-model
. - Escolha Versão, especifique 1.
- Escolha Localização dos dados de entrada S3, insira o local do arquivo de dados de treinamento selecionado.
- Escolha Formato de entrada, escolha Um documento por linha.
- Escolha Local dos dados de saída S3, insira o local.
- Escolha Permissões de acesso, selecione Use uma função IAM existente e escolha a função criada anteriormente.
- Escolha Criar emprego para iniciar o trabalho de análise.
- Selecione os Trabalhos de análise para visualizar os detalhes do trabalho. Anote o ID do trabalho em Detalhes do trabalho. Usaremos o ID do trabalho em nossa próxima etapa.
Repita as etapas para iniciar o trabalho de análise dos dados de teste selecionados. Usamos os resultados de previsão de nossos trabalhos de análise para aprender sobre as probabilidades de previsão de nosso modelo. Anote os IDs dos trabalhos de treinamento e análise de testes.
Usamos o Model-Threshold-Analysis.ipynb notebook para testar as saídas em todos os limites possíveis e pontuar a saída com base na probabilidade de previsão usando o scikit-learn precision_recall_curve
função. Além disso, podemos calcular a pontuação F1 em cada limite.
Precisaremos dos IDs do trabalho de análise do Amazon Comprehend como entrada para Análise de modelo-limiar caderno. Você pode obter os IDs dos trabalhos no console do Amazon Comprehend. Execute todos os passos em Análise de modelo-limiar caderno para observar os limites de todas as classes.
Observe como a precisão aumenta à medida que o limite aumenta, enquanto o inverso ocorre com a recuperação. Para encontrar o equilíbrio entre os dois, usamos a pontuação F1, onde há picos visíveis em sua curva. Os picos na pontuação F1 correspondem a um limite específico que pode melhorar o desempenho do modelo. Observe como a maioria dos rótulos fica em torno da marca de 0.5 para o limite, exceto o rótulo de ameaça, que tem um limite em torno de 0.04.
Podemos então usar esse limite para rótulos específicos com baixo desempenho, apenas com o limite padrão de 0.5. Ao usar os limites otimizados, os resultados do modelo nos dados de teste melhoram para o rótulo ameaça de 0.00 para 0.24. Estamos usando a pontuação F1 máxima no limite como referência para determinar o positivo versus o negativo para esse rótulo, em vez de um benchmark comum (um valor padrão como> 0.7) para todos os rótulos.
Lidando com classes sub-representadas
Outra abordagem eficaz para um conjunto de dados desequilibrado é oversampling. Ao sobreamostrar a classe sub-representada, o modelo vê a classe sub-representada com mais frequência e enfatiza a importância dessas amostras. Nós usamos o Sobreamostragem sub-representada.ipynb notebook para otimizar os conjuntos de dados.
Para este conjunto de dados, testamos como o desempenho do modelo no conjunto de dados de avaliação muda à medida que fornecemos mais amostras. Utilizamos a técnica de oversampling para aumentar a ocorrência de classes sub-representadas para melhorar o desempenho.
Neste caso específico, testamos 10, 25, 50, 100, 200 e 500 exemplos positivos. Observe que embora estejamos repetindo pontos de dados, estamos inerentemente melhorando o desempenho do modelo ao enfatizar a importância da classe sub-representada.
Custo
Com o Amazon Comprehend, você paga conforme o uso com base no número de caracteres de texto processados. Referir-se Preços do Amazon Comprehend para custos reais.
limpar
Quando terminar de experimentar esta solução, limpe os seus recursos para eliminar todos os recursos implantados neste exemplo. Isso ajuda você a evitar custos contínuos em sua conta.
Conclusão
Nesta postagem, fornecemos práticas recomendadas e orientações sobre preparação de dados, ajuste de modelo usando probabilidades de previsão e técnicas para lidar com classes de dados sub-representadas. Você pode usar essas práticas e técnicas recomendadas para melhorar as métricas de desempenho do seu modelo de classificação personalizado do Amazon Comprehend.
Para obter mais informações sobre o Amazon Comprehend, visite Recursos de desenvolvedor do Amazon Comprehend para encontrar recursos de vídeo e postagens de blog e consulte Perguntas frequentes sobre o AWS Comprehend.
Sobre os autores
Sathya Balakrishnan é arquiteto sênior de entrega ao cliente na equipe de serviços profissionais da AWS, especializado em soluções de dados e ML. Ele trabalha com clientes financeiros federais dos EUA. Ele é apaixonado por construir soluções pragmáticas para resolver os problemas de negócios dos clientes. Nas horas vagas, gosta de assistir filmes e fazer caminhadas com a família.
Príncipe Mallari é Cientista de Dados de NLP na equipe de Serviços Profissionais da AWS, especializada em aplicações de NLP para clientes do setor público. Ele é apaixonado por usar ML como uma ferramenta para permitir que os clientes sejam mais produtivos. Em seu tempo livre, ele gosta de jogar videogame e desenvolver um com seus amigos.
- 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/improve-prediction-quality-in-custom-classification-models-with-amazon-comprehend/
- :tem
- :é
- :onde
- $UP
- 1
- 10
- 100
- 200
- 24
- 25
- 50
- 500
- 7
- 9
- a
- Sobre
- Aceita
- Conta
- precisão
- em
- real
- Adicionalmente
- Adoção
- avanços
- AI
- AI / ML
- Todos os Produtos
- permitir
- tb
- Apesar
- Amazon
- Amazon Comprehend
- Amazon Sage Maker
- Amazon Web Services
- an
- análise
- e
- qualquer
- aplicações
- Aplicações da PNL
- abordagem
- SOMOS
- por aí
- AS
- Ativos
- atribuído
- At
- evitar
- AWS
- Equilíbrio
- baseado
- BE
- Porque
- tornam-se
- antes
- referência
- Benefícios
- MELHOR
- melhores práticas
- entre
- viés
- Blog
- Posts do Blog
- construir
- Prédio
- negócio
- by
- chamado
- CAN
- Pode obter
- casas
- Alterações
- caracteres
- Escolha
- classe
- aulas
- classificação
- clientes
- comentar
- comum
- completar
- compreender
- Computar
- configurado
- confusão
- cônsul
- contém
- continuar
- converter
- custos
- crio
- criado
- criação
- comissariada
- curadoria
- curva
- personalizadas
- cliente
- Clientes
- dados,
- Os pontos de dados
- Preparação de dados
- cientista de dados
- conjuntos de dados
- lidar
- profundo
- Padrão
- Entrega
- demonstrar
- implantado
- detalhes
- Determinar
- Developer
- em desenvolvimento
- distribuição
- do
- documento
- não
- download
- durante
- cada
- mais fácil
- Eficaz
- esforço
- enfatiza
- enfatizando
- Entrar
- Empreendimento
- avaliação
- exemplo
- exemplos
- Exceto
- executar
- existente
- espera
- Explicação
- f1
- Cair
- família
- Federal
- Envie o
- Arquivos
- Finalmente
- financeiro
- Encontre
- seguinte
- Escolha
- amigos
- da
- cheio
- função
- mais distante
- Games
- gerar
- ter
- Go
- vai
- Governo
- orientações
- guia
- orientações
- manipular
- Ter
- ter
- he
- ajuda
- sua
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- http
- HTTPS
- ID
- identificar
- ids
- importância
- melhorar
- melhorar
- in
- inclui
- Incluindo
- Crescimento
- aumentou
- INFORMAÇÕES
- inerentemente
- entrada
- insights
- instância
- em vez disso
- instruções
- Inteligência
- para dentro
- introduzir
- IT
- Trabalho
- Empregos
- apenas por
- Chave
- O rótulo
- Rótulos
- língua
- em grande escala
- APRENDER
- aprendizagem
- mínimo
- menos
- como
- LIMITE
- localização
- máquina
- aprendizado de máquina
- fazer
- de grupos
- marca
- Matriz
- max
- máximo
- Conheça
- Menu
- métrico
- Métrica
- poder
- mínimo
- mínimo
- ML
- modelo
- modelos
- mais
- a maioria
- Filmes
- devo
- nome
- natural
- Processamento de linguagem natural
- Navegação
- você merece...
- negativo
- Novo
- Próximo
- PNL
- caderno
- Perceber..
- número
- observar
- ocorrência
- of
- frequentemente
- on
- ONE
- só
- otimização
- Otimize
- otimizado
- otimizando
- organizações
- A Nossa
- saída
- pão
- particular
- apaixonado
- Pagar
- para
- atuação
- escolher
- tubo
- platão
- Inteligência de Dados Platão
- PlatãoData
- jogar
- por favor
- ponto
- pontos
- positivo
- possível
- Publique
- POSTAGENS
- práticas
- pragmático
- Precisão
- predição
- preparação
- Preparar
- presentes
- anteriormente
- problemas
- Processado
- em processamento
- produtivo
- profissional
- adequado
- fornecer
- fornecido
- público
- qualidade
- acaso
- relação
- Cru
- perceber
- referir
- requeridos
- Recursos
- Resultados
- Tipo
- sábio
- Cientista
- Ponto
- setor
- Vejo
- visto
- vê
- servir
- Serviços
- vários
- rede de apoio social
- Shows
- simples
- Suave
- solução
- Soluções
- RESOLVER
- alguns
- especializando
- específico
- divisão
- padrão
- começo
- começado
- Passo
- Passos
- armazenamento
- armazenadas
- tal
- Tire
- Profissionais
- técnica
- técnicas
- terminal
- teste
- testado
- texto
- do que
- que
- A
- deles
- então
- Este
- deles
- isto
- aqueles
- ameaça
- três
- limiar
- Através da
- tempo
- para
- ferramenta
- Total
- treinado
- Training
- dois
- para
- sub-representado
- compreender
- us
- Federal dos EUA
- usar
- user-friendly
- utilização
- valor
- Vídeo
- jogos de vídeo
- Ver
- visível
- Visite a
- vs
- assistindo
- we
- web
- serviços web
- BEM
- quando
- qual
- enquanto
- generalizada
- precisarão
- janela
- de
- sem
- trabalho
- Vocês
- investimentos
- zefirnet
- Zip