- Notas de Versão
- Antes de começar
- Introdução
- Instalação do Automation Suite
- Migração e atualização
- Projetos
- Conjuntos de dados
- Pacotes de ML
- Pipelines
- Habilidades de ML
- Logs de ML
- Document Understanding no AI Center
- Como fazer
- Guia básico de solução de problemas
Classificação de textos em inglês
Pacotes do SO > Análise de idiomas > EnglishTextClassification
Esse é um modelo genérico retreinável para a classificação em inglês. Esse pacote de ML deve ser retreinado; se for implantado sem treinamento primeiro, a implantação falhará, com um erro informando que o modelo não foi treinado.
Esse modelo é uma arquitetura de deep learning para a classificação de idiomas. Ele é baseado no RoBERTa, um método autosupervisionado para o pré-treinamento de sistemas de processamento de linguagem natural. Uma GPU pode ser usada tanto no tempo de serviço quanto no tempo de treinamento. Uma GPU proporciona uma melhoria de 5x a 10x na velocidade. O modelo teve seu código aberto pelo Facebook AI Research.
JSON com o nome de classe previsto, a confiança associada nessa previsão de classes (entre 0 e 1).
Exemplo:
{
"class": "Positive",
"confidence": 0.9422031841278076
}
{
"class": "Positive",
"confidence": 0.9422031841278076
}
Pipelines
Todos os três tipos de pipelines (Treinamento completo, Treinamento e Avaliação) são suportados por esse pacote.
Para a maioria dos casos de uso, não é necessário especificar parâmetros: o modelo usa técnicas avançadas para encontrar um modelo de bom desempenho. Nos treinamentos subsequentes após o primeiro, o modelo usa aprendizado incremental (ou seja, a versão treinada anteriormente será usada no final de uma execução de treinamento).
Leitura de vários arquivos
Por padrão, esse modelo lerá todos os arquivos com uma extensão .csv e .json (recursivamente) no diretório fornecido.
Formato de arquivo CSV:
Espera-se que cada arquivo CSV possa ter qualquer número de colunas, sendo que apenas duas serão usadas pelo modelo. Essas colunas são especificadas pelos parâmetros input_column (se não estiver definido, assumirá “input” como padrão) e target_column (se não estiver definido, assumirá "target" como padrão).
Por exemplo, um arquivo CSV individual pode ter a seguinte aparência:
input,target
I like this movie,positive
I hated the acting,negative
input,target
I like this movie,positive
I hated the acting,negative
No exemplo de arquivo acima, qualquer tipo de pipeline pode ser acionado sem adicionar quaisquer parâmetros extras. No exemplo seguinte, as colunas precisam ser especificadas explicitamente:
review,sentiment
I like this movie,positive
I hated the acting,negative
review,sentiment
I like this movie,positive
I hated the acting,negative
Quaisquer arquivos que não têm as colunas especificadas por input_column e e target_column serão ignorados. Além disso, o delimitador que será usado para analisar o arquivo pode ser configurado definindo os parâmetros csv_delimiter. Por exemplo, se seu arquivo estiver na verdade separado por tabulações, salve-o com a extensão .csv e defina o parâmetro csv_delimiter como ** **
Formato de arquivo JSON:
Cada arquivo JSON pode ser para um único ponto de dados ou para uma lista de pontos de dados. Ou seja, cada arquivo JSON pode ter um entre dois formatos: ponto de dados único em um arquivo JSON:
{
"input": "I like this movie",
"target": "positive"
}
{
"input": "I like this movie",
"target": "positive"
}
Vários pontos de dados em um arquivo JSON:
[
{
"input": "I like this movie",
"target": "positive"
},
{
"input": "I hated the acting",
"target": "negative"
}
]
[
{
"input": "I like this movie",
"target": "positive"
},
{
"input": "I hated the acting",
"target": "negative"
}
]
Como para o arquivo csv, se os parâmetros input_column e target_column forem definidos, o formato substitui "imput" por input_column e "target" por target_column.
Todos os arquivos válidos (todos os arquivos CSV e arquivos JSON que estão em conformidade com o formato acima) serão agrupados.
Leitura de um único arquivo
Em alguns casos, pode ser útil usar um único arquivo (mesmo que seu diretório tenha muitos arquivos). Nesse caso, o parâmetro csv_name pode ser usado. Se estiver definido, o pipeline só lerá esse arquivo. Quando esse parâmetro está definido, dois outros parâmetros adicionais são habilitados:
- csv_start_index, que permite que o usuário especifique a linha onde começar a leitura.
- csv_end_index, que permite que o usuário especifique a linha para terminar a leitura.
Por exemplo, você pode ter um arquivo grande com 20 mil linhas, mas pode querer ver rapidamente como seria a aparência de uma execução de treinamento em um subconjunto de dados. Nesse caso, é possível especificar o nome do arquivo e definir csv_end_index com um valor muito inferior a 20 mil.
- input_column: altere esse valor para corresponder ao nome da coluna de entrada do conjunto de dados (padrão: "input")
- target_column: altere esse valor para corresponder ao nome da coluna de entrada do conjunto de dados (padrão: "target")
- evaluation_metric: defina esse valor para alterar o retorno da métrica por função de avaliação e superfície na UI. Esse parâmetro pode ser definido com um dos seguintes valores: "accuracy" (padrão), "auroc" (área sob a curva ROC), "precision", "recall", "recall", "matthews correlation" (coeficiente de correlação de matthews), "fscore".
- csv_name: use essa variável se você quiser especificar um arquivo CSV exclusivo a ser lido a partir do conjunto de dados.
- csv_start_index: permite especificar a linha onde começar a leitura. A ser usado em combinação com csv_name..
- csv_end_index: permite especificar a linha para terminar a leitura. A ser usado em combinação com csv_name..
Treinar a função produz três artefatos:
- train.csv - Os dados que foram usados para treinar o modelo, salvos aqui para governança e rastreabilidade.
- validation.csv - Os dados que foram usados para validar o modelo.
learning-rate-finder.png
- A maioria dos usuários nunca precisará se preocupar com isso. Os usuários avançados podem achar isso útil (veja a seção Avançado). - train-report.pdf - Um relatório contendo informações resumidas dessa execução. A primeira seção inclui todos os parâmetros que foram especificados pelo usuário. A segunda seção inclui estatísticas sobre os dados (o número de pontos de dados para o treinamento, validação e a soma de verificação de cada arquivo). A última seção inclui duas plotagens:
- Plotagem de perda - Plota a perda do treinamento e da validação em função do número de epochs. A versão do pacote de ML de saída será sempre a versão que teve a perda de validação mínima (não o modelo no último epoch).
- Plotagem de métricas - Plota várias métricas computadas no conjunto de validação no final de cada epoch.
Avaliar a função produz dois artefatos:
- evaluation.csv - Os dados que foram usados para avaliar o modelo.
- evaluation-report.pdf - Um relatório que contém informações resumidas dessa execução. A primeira seção inclui todos os parâmetros que foram especificados pelo usuário. A segunda seção inclui estatísticas sobre os dados (o número de pontos de dados para avaliação e a soma de verificação dos arquivos). A terceira seção inclui estatísticas dessa avaliação (para multiclasses, as métricas são ponderadas). A última seção inclui uma plotagem da matriz de confusão e uma computação por classe de cada um dos seguintes valores: accuracy, precision, recall e support, além da média de seus valores.
Papel
RoBERTa: A Robustly Optimized BERT Pretraining Approach, de Yinhan Liu, Myle Ott, et al.