Preparar datos de entrenamiento de texto

En esta página, se describe cómo preparar datos de texto para usarlos en un conjunto de datos de Vertex AI. El formato de los datos de entrada del texto depende del objetivo. Por ejemplo, la preparación de datos para la clasificación de texto es diferente en comparación con el análisis de opiniones en texto.

En las siguientes secciones, se describen los requisitos de datos, las recomendaciones y los archivos de entrada para cada objetivo.

Clasificación de una sola etiqueta

Para la clasificación de 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 una sola 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 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 es posible entrenar a un humano para asignar una etiqueta cuando 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íltralas 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 filtrar, tendrías otro modelo que clasifica documentos dentro del dominio solamente.

Archivos de entrada

La clasificación con una sola etiqueta es compatible con archivos de entrada JSONL o CSV. Puedes especificar solo 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.

JSONL

El formato, los nombres de campos y los tipos de valores para los archivos 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 JSONL

En el siguiente ejemplo, se muestra cómo puedes usar el esquema para crear tu propio archivo JSONL. 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, y es 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 de 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 con 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 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 es posible entrenar a un humano para asignar una etiqueta cuando lee un documento, es probable que tu modelo tampoco pueda hacerlo.
  • Cuando utilices la clasificación de varias etiquetas, aplica todas las etiquetas relevantes a cada documento. Por ejemplo, si etiquetas documentos que proporcionan detalles sobre productos farmacéuticos, es posible que tengas un documento con las etiquetas 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íltralas 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 filtrar, tendrías otro modelo que clasifica documentos dentro del dominio solamente.

Archivos de entrada

La clasificación de varias etiquetas admite archivos de entrada JSONL o CSV. 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.

JSONL

El formato, los nombres de campos y los tipos de valores para los archivos 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 JSONL

En el siguiente ejemplo, se muestra cómo puedes usar el esquema para crear tu propio archivo JSONL. 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, y es 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

Extracción de entidades

Los datos de entrenamiento de extracción de entidades constan de documentos anotados con las etiquetas que identifican los tipos de entidades que deseas que identifique tu modelo. Por ejemplo, puedes crear un modelo de extracción de entidades para identificar terminología especializada en patentes o documentos legales. Las anotaciones especifican las ubicaciones de las entidades que etiquetas y las etiquetas en sí.

Si anotas documentos estructurados o semiestructurados para un conjunto de datos que se usa a fin de entrenar modelos de AutoML, como facturas o contratos, Vertex AI puede considerar la posición de una anotación en la página como un factor que contribuye a la etiqueta correspondiente. Por ejemplo, un contrato de bienes raíces tiene una fecha de aceptación y una de cierre. Vertex AI puede aprender a distinguir entre las entidades según la posición espacial de la anotación.

Requisitos de los datos

  • Debes proporcionar entre 50 y 100,000 documentos de entrenamiento.
  • Debes proporcionar entre 1 y 100 etiquetas únicas para anotar las entidades que deseas extraer.
  • Puedes usar una etiqueta para anotar entre 1 y 10 palabras.
  • Los nombres de las etiquetas pueden tener entre 2 y 30 caracteres.
  • Puedes incluir anotaciones en tus archivos JSONL o agregarlas más adelante mediante Google Cloud Console después de subir documentos.
  • 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 cada etiqueta al menos 200 veces en tu conjunto de datos de entrenamiento.
  • Anota cada caso de las entidades que deseas que identifique tu modelo.

Archivos de entrada

Los tipos de archivos de entrada para la extracción de entidades deben ser JSONL. El formato, los nombres de campos y los tipos de valores para los archivos JSONL se determinan mediante un archivo de esquema, que son archivos YAML de acceso público.

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

En el siguiente ejemplo, se muestra cómo puedes usar el esquema para crear tu propio archivo JSONL. 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, y es 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"
    }
}

También puedes anotar documentos con Google Cloud Console. Crear un archivo JSONL solo con contenido (sin el campo textSegmentAnnotations); los documentos se suben a Vertex AI sin ninguna anotación

Análisis de opiniones

Los datos de entrenamiento de análisis de opiniones constan de documentos asociados con un valor de opinión que indica la opinión del contenido. Por ejemplo, es posible que tengas tuits sobre un dominio en particular, como Air travel. Cada tuit se asocia con un valor de opinión que indica si el tuit es positivo, negativo o neutro.

Requisitos de los datos

  • Debes proporcionar entre 10 y 100,000 documentos de entrenamiento en total.
  • Un valor de opinión debe ser un número entero de 0 a 10. El valor máximo de opiniones es tu elección. Por ejemplo, si deseas identificar si la opinión es negativa, positiva o neutra, puedes etiquetar los datos de entrenamiento con puntuaciones de opinión de 0 (negativo), 1 (neutral) y 2 (positivo). La puntuación máxima de las opiniones para este conjunto de datos es de 2. Si deseas lograr un mayor nivel de detalle, como cinco niveles de opinión, puedes etiquetar los documentos de 0 (más negativo) a 4 (más positivo).
  • Debes aplicar cada valor de opinión a por lo menos 10 documentos.
  • Los valores de la puntuación de opinión deben ser números enteros consecutivos a partir de cero. Si tienes vacíos en las puntuaciones o no comienzas desde cero, reasigna tus puntuaciones para que sean números enteros consecutivos a partir de cero.
  • 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.

  • Proporciona al menos 100 documentos por valor de opinión.
  • Usa una cantidad similar de documentos para cada puntuación de opiniones. Tener más ejemplos para puntuaciones de opinión específicas puede ingresar sesgos en el modelo.

Archivos de entrada

Los tipos de archivo de entrada para el análisis de opiniones pueden ser JSONL o CSV.

JSONL

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

Puedes descargar el archivo de esquema para el análisis de opiniones en la siguiente ubicación de Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_sentiment_io_format_1.0.0.yaml

Ejemplo de JSONL

En el siguiente ejemplo, se muestra cómo puedes usar el esquema para crear tu propio archivo JSONL. 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, y es 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 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",sentiment,sentimentMax

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

¿Qué sigue?