Prepara datos de entrenamiento de texto para la clasificación

En esta página, se describe cómo preparar datos de texto para usarlos en un conjunto de datos de Vertex AI para entrenar modelos de clasificación de una sola etiqueta y varias etiquetas.

Clasificación de una sola etiqueta

Para la clasificación con una sola etiqueta, los datos de entrenamiento se componen de documentos y la categoría de clasificación que se aplica a esos documentos. La clasificación con una sola etiqueta permite que a un documento se le asigne solo una etiqueta.

Requisitos de los datos

  • Debes proporcionar entre 20 y 1,000,000 documentos de entrenamiento.
  • Debes proporcionar entre 2 y 5,000 etiquetas únicas de categorías.
  • Debes aplicar cada etiqueta a, por lo menos, 10 documentos.
  • En la clasificación de varias etiquetas, puedes aplicar una o varias etiquetas a un documento.
  • Puedes incluir documentos intercalados o hacer referencia a archivos TXT que están en buckets de Cloud Storage.

Prácticas recomendadas para los datos de texto que se usan a fin de entrenar los modelos de AutoML

Los siguientes requisitos se aplican a los conjuntos de datos que se usan para entrenar modelos de AutoML.

  • Usa datos de entrenamiento que sean tan variados como los datos sobre los cuales se harán las predicciones. Incluye documentos de diferentes longitudes, de distintos autores, que contengan diferentes palabras o estilos, etcétera.
  • Usa documentos que un lector humano pueda clasificar fácilmente. Por lo general, los modelos de AutoML no pueden predecir las etiquetas de categoría que las personas no pueden asignar. Por lo tanto, si no se puede entrenar a un humano para asignar una etiqueta cuando se lee un documento, es probable que tu modelo tampoco pueda hacerlo.
  • Proporciona tantos documentos de entrenamiento como sea posible por etiqueta. Sin embargo, puedes mejorar las puntuaciones de confianza de tu modelo utilizando más ejemplos por etiqueta. Entrena un modelo mediante 50 ejemplos por etiqueta y evalúa los resultados. Agrega más ejemplos y vuelve a entrenar hasta alcanzar tus objetivos de precisión, lo que puede requerir cientos o incluso 1,000 ejemplos por etiqueta.
  • El modelo funciona mejor cuando hay como máximo 100 veces más documentos para la etiqueta más común que para la etiqueta menos común. Recomendamos quitar etiquetas de muy baja frecuencia.
  • Considera incluir una etiqueta de fuera del dominio (por ejemplo, None_of_the_above) para documentos que no coincidan con ninguna de tus etiquetas definidas. Por ejemplo, si solo etiquetaste documentos sobre arte y entretenimiento, pero tu conjunto de datos contiene documentos acerca de otros temas, como deportes o tecnología, etiqueta los documentos sobre otras temáticas como None_of_the_above. Sin esa etiqueta, el modelo entrenado intentará asignar todos los documentos a una de las etiquetas definidas, incluso aquellos documentos para los cuales esas etiquetas no son adecuadas.
  • Si tienes una gran cantidad de documentos que no coinciden actualmente con tus etiquetas, fíltralos para que tu modelo no sesgue las predicciones a una etiqueta fuera del dominio. Por ejemplo, podrías tener un modelo de filtro que prediga si un documento se ajusta al conjunto actual de etiquetas o si está fuera de dominio. Después de la filtración, tendrías otro modelo que clasifica solo los documentos dentro del dominio.

Archivos de entrada

La clasificación con una sola etiqueta admite archivos de entrada CSV o líneas JSON. Solo puedes especificar una etiqueta (anotación) para un documento determinado. En las siguientes secciones, se describen los archivos de entrada y se proporcionan ejemplos para cada tipo de archivo.

Líneas JSON

El formato, los nombres de campos y los tipos de valores para los archivos de líneas JSONL se determinan mediante un archivo de esquema, que son archivos YAML de acceso público.

Puedes descargar el archivo de esquema para la clasificación de una sola etiqueta desde la siguiente ubicación de Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

Ejemplo de líneas JSON

En el siguiente ejemplo, se muestra cómo puedes usar el esquema para crear tu propio archivo de líneas JSON. El ejemplo incluye saltos de línea para facilitar la lectura. En tus archivos JSON, incluye saltos de línea solo después de cada documento. El campo dataItemResourceLabels especifica, por ejemplo, ml_use, de manera 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 línea de un archivo CSV hace referencia a un solo documento. En el siguiente ejemplo, se muestra el formato general de un archivo CSV válido. La columna ml_use es opcional.

[ml_use],gcs_file_uri|"inline_text",label

El siguiente fragmento es un ejemplo de un archivo 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

Clasificación con varias etiquetas

Para la clasificación con varias etiquetas, los datos de entrenamiento se componen de documentos y las categorías de clasificación que se aplican a esos documentos. La clasificación de varias etiquetas permite asignar una o más etiquetas a un documento.

Requisitos de los datos

  • Debes proporcionar entre 20 y 1,000,000 documentos de entrenamiento.
  • Debes proporcionar entre 2 y 5,000 etiquetas únicas de categorías.
  • Debes aplicar cada etiqueta a, por lo menos, 10 documentos.
  • En la clasificación de varias etiquetas, puedes aplicar una o varias etiquetas a un documento.
  • Puedes incluir documentos intercalados o hacer referencia a archivos TXT que están en buckets de Cloud Storage.

Prácticas recomendadas para los datos de texto que se usan a fin de entrenar los modelos de AutoML

Los siguientes requisitos se aplican a los conjuntos de datos que se usan para entrenar modelos de AutoML.

  • Usa datos de entrenamiento que sean tan variados como los datos sobre los cuales se harán las predicciones. Incluye documentos de diferentes longitudes, de distintos autores, que contengan diferentes palabras o estilos, etcétera.
  • Usa documentos que un lector humano pueda clasificar fácilmente. Por lo general, los modelos de AutoML no pueden predecir las etiquetas de categoría que las personas no pueden asignar. Por lo tanto, si no se puede entrenar a un humano para asignar una etiqueta cuando se lee un documento, es probable que tu modelo tampoco pueda hacerlo.
  • Cuando utilices la clasificación de varias etiquetas, aplica todas las etiquetas relevantes para cada documento. Por ejemplo, si etiquetas documentos que proporcionan detalles sobre productos farmacéuticos, es posible que tengas un documento etiquetado con Dosage y Side Effects.
  • Proporciona tantos documentos de entrenamiento como sea posible por etiqueta. Sin embargo, puedes mejorar las puntuaciones de confianza de tu modelo utilizando más ejemplos por etiqueta. Las mejores puntuaciones de confianza son especialmente útiles cuando tu modelo muestra varias etiquetas al clasificar un documento. Entrena un modelo mediante 50 ejemplos por etiqueta y evalua los resultados. Agrega más ejemplos y vuelve a entrenar hasta alcanzar tus objetivos de precisión, lo que puede requerir cientos o incluso 1,000 ejemplos por etiqueta.
  • El modelo funciona mejor cuando hay como máximo 100 veces más documentos para la etiqueta más común que para la etiqueta menos común. Recomendamos quitar etiquetas de muy baja frecuencia.
  • Considera incluir una etiqueta de fuera del dominio (por ejemplo, None_of_the_above) para documentos que no coincidan con ninguna de tus etiquetas definidas. Por ejemplo, si solo etiquetaste documentos sobre arte y entretenimiento, pero tu conjunto de datos contiene documentos acerca de otros temas, como deportes o tecnología, etiqueta los documentos sobre otras temáticas como None_of_the_above. Sin esa etiqueta, el modelo entrenado intentará asignar todos los documentos a una de las etiquetas definidas, incluso aquellos documentos para los cuales esas etiquetas no son adecuadas.
  • Si tienes una gran cantidad de documentos que no coinciden actualmente con tus etiquetas, fíltralos para que tu modelo no sesgue las predicciones a una etiqueta fuera del dominio. Por ejemplo, podrías tener un modelo de filtro que prediga si un documento se ajusta al conjunto actual de etiquetas o si está fuera de dominio. Después de la filtración, tendrías otro modelo que clasifica solo los documentos dentro del dominio.

Archivos de entrada

La clasificación con varias etiquetas admite archivos de entrada CSV o líneas de JSON. Puedes especificar más de una etiqueta (anotación) para un documento determinado. En las siguientes secciones, se describen los archivos de entrada y se proporcionan ejemplos para cada tipo de archivo.

Líneas JSON

El formato, los nombres de campos y los tipos de valores para los archivos de líneas JSONL se determinan mediante un archivo de esquema, que son archivos YAML de acceso público.

Puedes descargar el archivo de esquema para la clasificación de varias etiquetas desde la siguiente ubicación de Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

Ejemplo de líneas JSON

En el siguiente ejemplo, se muestra cómo puedes usar el esquema para crear tu propio archivo de líneas JSON. El ejemplo incluye saltos de línea para facilitar la lectura. En tus archivos JSON, incluye saltos de línea solo después de cada documento. El campo dataItemResourceLabels especifica, por ejemplo, ml_use, de manera 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 línea de un archivo CSV hace referencia a un solo documento. En el siguiente ejemplo, se muestra el formato general de un archivo CSV válido. La columna ml_use es opcional.

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

El siguiente fragmento es un ejemplo de un archivo 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