Preparar dados de treinamento de texto

Nesta página, descrevemos como preparar dados de texto para uso em um conjunto de dados da Vertex AI. O formato dos dados de entrada de texto depende do objetivo. Por exemplo, a preparação de dados para classificação de texto é diferente em comparação com a análise de sentimento do texto.

As seções a seguir descrevem os requisitos de dados, as recomendações e os arquivos de entrada para cada objetivo

Classificação de rótulo único

Para a classificação de rótulo único, os dados de treinamento consistem nos documentos e na categoria de classificação que se aplicam a esses documentos. A classificação de rótulo único permite que um documento seja atribuído a apenas um rótulo.

Requisitos de dados

  • Você precisa fornecer no mínimo 20 e no máximo 1.000.000 documentos de treinamento.
  • Você precisa fornecer no mínimo 2 e no máximo 5.000 rótulos exclusivos.
  • Cada rótulo precisa ser aplicado a pelo menos dez documentos.
  • Para a classificação de vários rótulos, é possível aplicar um ou vários rótulos a um documento.
  • É possível incluir documentos in-line ou referência em arquivos TXT que estejam em buckets do Cloud Storage.

Práticas recomendadas para dados de texto usados para treinar modelos do AutoML

As recomendações a seguir se aplicam a conjuntos de dados usados para treinar modelos do AutoML.

  • Use dados de treinamento tão variados quanto os dados usados para previsões. Inclua documentos de diversos tamanhos, criados por pessoas diferentes, com palavras ou estilo variados e assim por diante.
  • Use documentos que possam ser facilmente categorizados por uma pessoa. Os modelos do AutoML não podem prever rótulos de categorias que os humanos não podem atribuir. Assim, se uma pessoa não pode ser treinada para atribuir um rótulo lendo um documento, é provável que o modelo também não possa.
  • Forneça o maior número possível de documentos de treinamento por rótulo. No entanto, é possível melhorar a pontuação de confiança do modelo usando mais exemplos por rótulo. Treine um modelo usando 50 exemplos por rótulo e avalie os resultados. Adicione mais exemplos e treine novamente até atingir suas metas de precisão, o que pode exigir centenas ou até 1000 exemplos por rótulos.
  • O modelo funciona melhor quando há no máximo 100 vezes mais documentos para o rótulo mais comum do que para o menos comum. Recomendamos remover rótulos de frequência muito baixa.
  • Considere a inclusão de um rótulo fora do domínio (por exemplo, None_of_the_above) para documentos que não correspondam a nenhum dos rótulos definidos. Por exemplo, se você rotulou apenas documentos sobre artes e entretenimento, mas seu conjunto de dados contém documentos sobre outros assuntos, como esportes ou tecnologia, rotule os documentos sobre outros assuntos como None_of_the_above. Sem esse rótulo, o modelo treinado tentará atribuir todos os documentos a um dos rótulos definidos, mesmo os documentos para os quais esses rótulos são inadequados.
  • Se você tiver um grande número de documentos que não correspondem atualmente seus rótulos, filtre-os para que seu modelo não desvie previsões para um rótulo fora do domínio. Por exemplo, é possível ter um modelo de filtragem que prevê se um documento se encaixa no conjunto atual de rótulos ou está fora do domínio. Depois de filtrar, você teria outro modelo que classifica somente documentos no domínio.

Arquivos de entrada

A classificação de rótulo único é compatível com arquivos de entrada JSONL ou CSV. É possível especificar apenas um rótulo (anotação) para um determinado documento. As seções a seguir descrevem os arquivos de entrada e fornecem exemplos para cada tipo de arquivo.

JSONL

O formato, os nomes de campo, os tipos de valor para arquivos JSONL são determinados por um arquivo de esquema, que é um arquivo YAML acessível publicamente.

É possível fazer o download do arquivo de esquema para classificação de rótulo único no seguinte local do Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

Exemplo de JSONL

No exemplo a seguir, mostramos como usar o esquema para criar seu próprio arquivo JSONL. O exemplo inclui quebras de linha para facilitar a leitura. Nos arquivos JSON, inclua quebras de linha somente após cada documento. O campo dataItemResourceLabels especifica, por exemplo, ml_use e é opcional.


{
  "classificationAnnotation": {
    "displayName": "label"
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
},
{
  "classificationAnnotation": {
    "displayName": "label2"
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Cada linha em um arquivo CSV refere-se a um único documento. No exemplo a seguir, mostramos o formato geral de um arquivo CSV válido. A coluna ml_use é opcional.

[ml_use],gcs_file_uri|"inline_text",label

O snippet a seguir é um exemplo de arquivo CSV de entrada.

test,gs://path_to_file,label1
test,"inline_text",label2
training,gs://path_to_file,label3
validation,gs://path_to_file,label1

Classificação de vários rótulos

Para a classificação de vários rótulos, os dados de treinamento consistem nos documentos e nas categorias de classificação que se aplicam a eles. A classificação de vários rótulos permite que um documento seja atribuído a um ou mais rótulos.

Requisitos de dados

  • Você precisa fornecer no mínimo 20 e no máximo 1.000.000 documentos de treinamento.
  • Você precisa fornecer no mínimo 2 e no máximo 5.000 rótulos exclusivos.
  • Cada rótulo precisa ser aplicado a pelo menos dez documentos.
  • Para a classificação de vários rótulos, é possível aplicar um ou vários rótulos a um documento.
  • É possível incluir documentos in-line ou referência em arquivos TXT que estejam em buckets do Cloud Storage.

Práticas recomendadas para dados de texto usados para treinar modelos do AutoML

As recomendações a seguir se aplicam a conjuntos de dados usados para treinar modelos do AutoML.

  • Use dados de treinamento tão variados quanto os dados usados para previsões. Inclua documentos de diversos tamanhos, criados por pessoas diferentes, com palavras ou estilo variados e assim por diante.
  • Use documentos que possam ser facilmente categorizados por uma pessoa. Os modelos do AutoML não podem prever rótulos de categorias que os humanos não podem atribuir. Assim, se uma pessoa não pode ser treinada para atribuir um rótulo lendo um documento, é provável que o modelo também não possa.
  • Ao usar a classificação com vários rótulos, aplique todos os rótulos relevantes a cada documento. Por exemplo, se você estiver rotulando documentos que fornecem detalhes sobre produtos farmacêuticos, talvez tenha um documento rotulado com Dosage e Side Effects.
  • Forneça o maior número possível de documentos de treinamento por rótulo. No entanto, é possível melhorar a pontuação de confiança do modelo usando mais exemplos por rótulo. Melhores pontuações de confiança são especialmente úteis quando o modelo retorna vários rótulos ao classificar um documento. Treine um modelo usando 50 exemplos por rótulo e avalie os resultados. Adicione mais exemplos e treine novamente até atingir suas metas de precisão, o que pode exigir centenas ou até 1000 exemplos por rótulos.
  • O modelo funciona melhor quando há no máximo 100 vezes mais documentos para o rótulo mais comum do que para o menos comum. Recomendamos remover rótulos de frequência muito baixa.
  • Considere a inclusão de um rótulo fora do domínio (por exemplo, None_of_the_above) para documentos que não correspondam a nenhum dos rótulos definidos. Por exemplo, se você rotulou apenas documentos sobre artes e entretenimento, mas seu conjunto de dados contém documentos sobre outros assuntos, como esportes ou tecnologia, rotule os documentos sobre outros assuntos como None_of_the_above. Sem esse rótulo, o modelo treinado tentará atribuir todos os documentos a um dos rótulos definidos, mesmo os documentos para os quais esses rótulos são inadequados.
  • Se você tiver um grande número de documentos que não correspondem atualmente seus rótulos, filtre-os para que seu modelo não desvie previsões para um rótulo fora do domínio. Por exemplo, é possível ter um modelo de filtragem que prevê se um documento se encaixa no conjunto atual de rótulos ou está fora do domínio. Depois de filtrar, você teria outro modelo que classifica somente documentos no domínio.

Arquivos de entrada

A classificação com vários rótulos é compatível com arquivos de entrada JSONL ou CSV. É possível especificar mais de um rótulo (anotação) para um determinado documento. As seções a seguir descrevem os arquivos de entrada e fornecem exemplos para cada tipo de arquivo.

JSONL

O formato, os nomes de campo, os tipos de valor para arquivos JSONL são determinados por um arquivo de esquema, que é um arquivo YAML acessível publicamente.

É possível fazer o download do arquivo de esquema para a classificação de vários rótulos no seguinte local do Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml (em inglês)

Exemplo de JSONL

No exemplo a seguir, mostramos como usar o esquema para criar seu próprio arquivo JSONL. O exemplo inclui quebras de linha para facilitar a leitura. Nos arquivos JSON, inclua quebras de linha somente após cada documento. O campo dataItemResourceLabels especifica, por exemplo, ml_use e é opcional.


{
  "classificationAnnotations": [{
    "displayName": "label1"
    },{
    "displayName": "label2"
  }],
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
},
{
  "classificationAnnotations": [{
    "displayName": "label2"
    },{
    "displayName": "label3"
  }],
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Cada linha em um arquivo CSV refere-se a um único documento. No exemplo a seguir, mostramos o formato geral de um arquivo CSV válido. A coluna ml_use é opcional.

[ml_use],gcs_file_uri|"inline_text",label1,label2,...

O snippet a seguir é um exemplo de arquivo CSV de entrada.

test,gs://path_to_file,label1,label2
test,"inline_text",label3
training,gs://path_to_file,label1,label2,label3
validation,gs://path_to_file,label4,label5

Extração de entidade

Os dados de treinamento da extração de entidades consistem em documentos anotados com os rótulos que identificam os tipos de entidades que você quer que o modelo identifique. Por exemplo, é possível criar um modelo de extração de entidades para identificar a terminologia especializada em documentos ou patentes legais. As anotações especificam os locais das entidades que você está rotulando e os próprios rótulos.

Ao fazer anotações em documentos estruturados ou semiestruturados para um conjunto de dados usado no treinamento de modelos do AutoML, como faturas ou contratos, a Vertex AI pode considerar a posição de uma anotação na página como um fator que contribui ao rótulo adequado. Por exemplo, um contrato imobiliário tem uma data de aceitação e uma data de encerramento. A Vertex AI pode aprender a diferenciar as entidades com base na posição espacial da anotação.

Requisitos de dados

  • Você precisa fornecer no mínimo 50 e no máximo 100.000 documentos de treinamento.
  • É preciso fornecer no mínimo 1 e no máximo 100 rótulos exclusivos para anotar entidades que você queira extrair.
  • Você pode usar um marcador para fazer anotações entre 1 e 10 palavras.
  • Os nomes dos rótulos podem ter entre dois e 30 caracteres.
  • Você pode incluir anotações nos arquivos JSONL ou adicioná-las mais tarde usando o Console do Google Cloud depois de fazer upload de documentos.
  • É possível incluir documentos in-line ou referência em arquivos TXT que estejam em buckets do Cloud Storage.

Práticas recomendadas para dados de texto usados para treinar modelos do AutoML

As recomendações a seguir se aplicam a conjuntos de dados usados para treinar modelos do AutoML.

  • Use cada rótulo pelo menos 200 vezes no conjunto de dados de treinamento.
  • Anote todas as ocorrências de entidades que você quer que o modelo identifique.

Arquivos de entrada

Os tipos de arquivo de entrada para extração de entidade precisam ser JSONL. O formato, os nomes de campos e os tipos de valores dos arquivos JSONL são determinados por um arquivo de esquema, que são arquivos YAML de acesso público.

É possível fazer o download do arquivo de esquema para a extração de entidade do seguinte local do Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml para criar um anexo da VLAN de monitoramento.

No exemplo a seguir, mostramos como usar o esquema para criar seu próprio arquivo JSONL. O exemplo inclui quebras de linha para facilitar a leitura. Nos arquivos JSON, inclua quebras de linha somente após cada documento. O campo dataItemResourceLabels especifica, por exemplo, ml_use e é opcional.


{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textContent": "inline_text"|"textGcsUri": "gcs_uri_to_file",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}

Também é possível anotar documentos usando o Console do Google Cloud. Crie um arquivo JSONL apenas com conteúdo (sem o campo textSegmentAnnotations). Os documentos são enviados para a Vertex AI sem anotações.

Análise de sentimento

Os dados de treinamento da análise de sentimento consistem em documentos associados a um valor de sentimento que indica o sentimento do conteúdo. Por exemplo, você pode ter tweets sobre um domínio específico, como viagens aéreas. Cada tweet está associado ao valor de sentimento que indica se o tweet é positivo, negativo ou neutro.

Requisitos de dados

  • Você precisa fornecer no mínimo 10, mas não mais de 100.000 documentos de treinamento.
  • O valor de sentimento precisa ser um número inteiro de 0 a 10. O valor de sentimento máximo é sua escolha. Por exemplo, se quiser identificar se o sentimento é negativo, positivo ou neutro, você precisa rotular os dados de treinamento com pontuações de sentimento de 0 (negativo), 1 (neutro) e 2 (positivo). A Pontuação máxima do sentimento () do conjunto de dados é 2 Se você quiser capturar mais granularidade, como cinco níveis de sentimento, rotule documentos de 0 (mais negativo) a 4 (mais positivo).
  • Aplique cada valor de sentimento a pelo menos 10 documentos.
  • Os valores de pontuação de sentimento devem ser números inteiros consecutivos a partir de zero. Se houver lacunas nas pontuações ou não começar do zero, faça o remapeamento delas para gerar números inteiros consecutivos a partir de zero.
  • É possível incluir documentos in-line ou referência em arquivos TXT que estejam em buckets do Cloud Storage.

Práticas recomendadas para dados de texto usados para treinar modelos do AutoML

As recomendações a seguir se aplicam a conjuntos de dados usados para treinar modelos do AutoML.

  • Forneça pelo menos 100 documentos por valor de sentimento.
  • Usar um número equilibrado de documentos para cada pontuação de sentimento. Ter mais exemplos de pontuações de sentimento específicas pode introduzir uma tendência no modelo.

Arquivos de entrada

Os tipos de arquivo de entrada para análise de sentimento podem ser JSONL ou CSV

JSONL

O formato, os nomes de campo, os tipos de valor para arquivos JSONL são determinados por um arquivo de esquema, que é um arquivo YAML acessível publicamente.

É possível fazer o download do arquivo de esquema para a análise de sentimento no seguinte local do Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_sentiment_io_format_1.0.0.yaml

Exemplo de JSONL

No exemplo a seguir, mostramos como usar o esquema para criar seu próprio arquivo JSONL. O exemplo inclui quebras de linha para facilitar a leitura. Nos arquivos JSON, inclua quebras de linha somente após cada documento. O campo dataItemResourceLabels especifica, por exemplo, ml_use e é opcional.


{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
},
{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Cada linha em um arquivo CSV refere-se a um único documento. No exemplo a seguir, mostramos o formato geral de um arquivo CSV válido. A coluna ml_use é opcional.

[ml_use],gcs_file_uri|"inline_text",sentiment,sentimentMax

O snippet a seguir é um exemplo de arquivo CSV de entrada.

test,gs://path_to_file,sentiment_value,sentiment_max_value
test,"inline_text",sentiment_value,sentiment_max_value
training,gs://path_to_file,sentiment_value,sentiment_max_value
validation,gs://path_to_file,sentiment_value,sentiment_max_value

A seguir