- Notas de Versão
- Requisitos
- Instalação
- Introdução
- Projetos
- Conjuntos de dados
- Pacotes de ML
- Pipelines
- Habilidades de ML
- Logs de ML
- Document Understanding no AI Fabric
- 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
}
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.
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 \t.
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.