Cómo funciona Clasificación de texto

La clasificación de texto es el proceso de asignar una categoría o etiqueta predefinida a frases, párrafos, informes textuales u otras formas de texto no estructurado. El conjunto de herramientas Análisis de texto de la caja de herramientas GeoAI contiene herramientas que utilizan técnicas de procesamiento de lenguaje natural (PLN) para entrenar modelos de clasificación de texto, así como para utilizar los modelos para clasificar texto.

La herramienta Entrenar modelo de clasificación de texto entrena modelos PLN para clasificar texto basándose en clases o categorías conocidas proporcionadas como parte de un dataset de entrenamiento. Los modelos entrenados se pueden utilizar con la herramienta Clasificar texto con aprendizaje profundo para clasificar texto similar en esas categorías.

Potenciales aplicaciones

A continuación se describen aplicaciones potenciales para esta herramienta:

  • Las direcciones incompletas se pueden clasificar por el país al que pertenecen. Puede ayudar a asignar el localizador adecuado para geocodificar esas direcciones con mayor precisión.
  • Los tuits geolocalizados se pueden clasificar en función de si indican un sentimiento de duda hacia las vacunas. Puede ayudar a identificar las áreas en las que las campañas de educación pública pueden aumentar la confianza del público y la aceptación de las vacunas.
  • Categorizar el tipo de delito basándose en informes de incidentes. Puede ayudar a comprender las tendencias, al agregar delitos por categoría, y a planificar las medidas correctivas.
Gráfico de flujo del modelo de clasificación de texto
Un modelo de clasificación de texto para la clasificación de direcciones puede predecir el país al que pertenece una dirección incompleta.

Los modelos de clasificación de texto de ArcGIS se basan en la arquitectura Transformador propuesta por Vaswani, et al. en el influyente ensayo "Attention is All you Need". Permite que los modelos sean más precisos y paralelos, y además se necesitan menos datos etiquetados para el entrenamiento.

Internamente, los modelos de clasificación de texto en ArcGIS son redes neuronales profundas que tienen dos componentes:

  • Codificador: el codificador es la columna vertebral del modelo y transforma el texto de entrada en una representación de entidades en forma de vectores de tamaño fijo. El modelo utiliza codificadores conocidos como BERT, ALBERT y RoBERTa, basados en la arquitectura de transformador y previamente entrenados con ingentes cantidades de texto.
  • Clasificador: un clasificador es la cabeza del modelo y clasifica las representaciones de entidades en varias categorías. Con frecuencia, un clasificador es una capa lineal simple de la red neuronal.
Componentes del modelo clasificador de texto

Los modelos de clasificación de texto de ArcGIS también son compatibles con la base del modelo Mistral. Mistral es un modelo extenso de lenguaje basado en una arquitectura de transformadores y funciona como un modelo exclusivamente descodificador. Los componentes clave de la arquitectura de Mistral son los siguientes:

  • Atención de ventana deslizante: manipula eficazmente los textos largos procesándolos en segmentos más pequeños que se superponen, lo que reduce el coste computacional y el uso de memoria al tiempo que preserva el contexto importante.
  • Atención de consulta agrupada: mejora la eficiencia agrupando consultas similares, lo que minimiza la cantidad de cómputos de atención y acelera el procesamiento.
  • Divisor en tokens BPE de reserva de bytes (codificación de par de bytes): convierte el texto en tokens para que el modelo los procese.
Nota:

Los modelos PLN pueden ser herramientas eficaces a la hora de automatizar el análisis de grandes volúmenes de texto no estructurado. Al igual que con otros tipos de modelos, asegúrese de que se apliquen a tareas relevantes con el nivel adecuado de supervisión humana y transparencia respecto al tipo de modelo y los datasets de entrenamiento utilizados para entrenar el modelo.

Utilizar modelos de clasificación de texto

Puede utilizar la herramienta Clasificar texto con aprendizaje profundo para aplicar un modelo de clasificación de texto entrenado a texto no estructurado y categorizarlo en tipos predeterminados. Puede usar modelos de clasificación de texto previamente entrenados desde ArcGIS Living Atlas of the World, o bien entrenar modelos personalizados con la herramienta Entrenar modelo de clasificación de texto.

La entrada de la herramienta Clasificar texto con aprendizaje profundo es una clase de entidad o tabla que contiene el texto que se va a clasificar. El modelo de entrada puede ser un archivo JSON de definición de modelo de Esri (.emd) o un paquete de modelo de aprendizaje profundo (.dlpk). El modelo contiene la ruta al archivo de modelo de aprendizaje profundo (que contiene las ponderaciones del modelo) y otros parámetros de modelo. Algunos modelos pueden tener argumentos de modelo adicionales.

La herramienta crea un campo en la tabla de entrada que contiene la etiqueta de clase o categoría asignada al texto de entrada por el modelo.

Aunque la herramienta se puede ejecutar en CPU, se recomienda el uso de GPU para el procesamiento, ya que el aprendizaje profundo requiere gran potencia de cómputo. Para ejecutar esta herramienta con una GPU, configure el ajuste de entorno Tipo de procesador como GPU. Si tiene más de una GPU, especifique en su lugar el ajuste de entorno Id. de GPU.

Entrenar modelos de clasificación de texto

La herramienta Entrenar modelo de clasificación de texto se puede usar para entrenar modelos de PLN para la clasificación del texto. Esta herramienta utiliza un planteamiento de aprendizaje automático y entrena el modelo al alimentarle muestras de entrenamiento formadas por pares de clases de etiquetas y texto de entrada. Con la base del modelo Mistral, utiliza el aprendizaje en contexto, guiando la comprensión y las respuestas del modelo mediante indicaciones de entrada y proporcionando al modelo ejemplos concretos que le ayuden a inferir el resultado deseado. El entrenamiento de modelos PLN requiere gran potencia de cómputo, por lo que se recomienda el uso de una GPU.

Los datos de entrenamiento se proporcionan en forma de tabla de entrada que contiene un campo de texto que actúa como variable de indicador y un campo de etiqueta que contiene la etiqueta de clase de destino para cada texto de entrada de la tabla.

Al entrenar un modelo de clasificación de texto, puede entrenar el modelo desde cero, ajustar con precisión un modelo entrenado o utilizar aprendizaje en contexto. En general, los modelos de idioma que utilizan la arquitectura de transformador se considera que aprenden con unas pocas muestras.

Sin embargo, si tiene acceso a un modelo de clasificación de texto preentrenado con el mismo conjunto de clases objetivo que en las muestras de entrenamiento, puede ajustarlo en los nuevos datos de entrenamiento. Ajustar un modelo existente a menudo es más rápido que entrenar un modelo nuevo, y este proceso también requiere menos muestras de entrenamiento. Al perfeccionar un modelo preentrenado, asegúrese de mantener el mismo modelo base utilizado en el modelo preentrenado.

El modelo preentrenado puede ser un archivo de definición de modelo de Esri o un archivo de paquete de aprendizaje profundo. El modelo de salida también se guarda en estos formatos en la carpeta de modelo de salida especificada.

Entrenar modelos de aprendizaje profundo es un proceso iterativo en el que los datos de entrenamiento de entrada pasan por la red neuronal varias veces. Cada pase de entrenamiento por todos los datos de entrenamiento se conoce como ciclo. El parámetro Máximo de épocas especifica el número máximo de veces que el modelo ve los datos de entrenamiento mientras se está entrenando. Depende del modelo que esté entrenando, la complejidad de la tarea y el número de muestras de entrenamiento. Si tiene muchas muestras de entrenamiento, puede usar un valor bajo. En general, es buena idea repetir el entrenamiento durante varios ciclos, hasta que la pérdida de validación siga disminuyendo.

El parámetro Base del modelo especifica la red neuronal preconfigurada que actúa como codificador del modelo y extrae representaciones de entidades del texto de entrada. Este modelo admite codificadores basados en BERT, ALBERT y RoBERTa, basados en la arquitectura de transformador y previamente entrenados con ingentes cantidades de texto de forma semisupervisada. Estos codificadores tienen un buen conocimiento del lenguaje y pueden representar el texto de entrada en forma de vectores de longitud fija que sirven como entradas para la cabeza de clasificación del modelo. El parámetro Base del modelo también es compatible con el modelo extenso de lenguaje (LLM) de Mistral. Mistral es un transformador exclusivamente descodificador que utiliza la atención de ventana deslizante para un procesamiento eficiente de textos largos, la atención de consulta agrupada para agilizar los cómputos y el divisor en tokens BPE de reserva de bytes para manipular diversas entradas de texto.

El entrenamiento de modelos se realiza por lotes, y el parámetro Tamaño de lote especifica la cantidad de muestras de entrenamiento que se procesan al mismo tiempo para el entrenamiento. Aumentar el tamaño de lote puede mejorar el rendimiento de la herramienta. Sin embargo, a medida que aumenta el tamaño de lote, se utiliza más memoria. Si se produce un error de memoria insuficiente mientras está entrenando el modelo, utilice un tamaño de lote más pequeño.

El parámetro Tasa de aprendizaje es uno de los hiperparámetros más importantes. Es la velocidad a la que se ajustan las ponderaciones del modelo durante el entrenamiento. Si especifica una tasa de aprendizaje baja, el modelo mejora lentamente y puede tardar mucho tiempo en entrenarse, lo cual se traduce en desaprovechamiento de tiempo y recursos. Una tasa de aprendizaje alta puede ser contraproducente y podría no aprender bien. Con tasas de aprendizaje altas, es posible que las ponderaciones del modelo se ajusten drásticamente, lo que provoca resultados erróneos. A menudo, es mejor no especificar un valor para el parámetro Tasa de aprendizaje, ya que la herramienta utiliza un buscador automático de tasa de aprendizaje basado en el ensayo "Cyclical Learning Rates for Training Neural Networks" de Leslie N. Smith.

La herramienta utiliza parte de los datos de entrenamiento (10 por ciento de forma predeterminada) a modo de conjunto de validación. El parámetro Porcentaje de validación permite ajustar la cantidad de datos de entrenamiento que se van a utilizar para la validación. Para el modelo Mistral, al menos el 50 por ciento de los datos deben reservarse para la validación, ya que Mistral requiere un conjunto de entrenamiento menor y se basa en un conjunto de validación mayor para evaluar el rendimiento del modelo.

De forma predeterminada, la herramienta utiliza una técnica de detención temprana que hace que el entrenamiento del modelo se detenga cuando este ya no mejora en los posteriores ciclos de entrenamiento. Puede desactivar este comportamiento al desmarcar el parámetro Detener cuando el modelo deje de mejorar.

También puede especificar si las capas de base del modelo previamente entrenado se inmovilizarán, de modo que las ponderaciones y sesgos permanezcan tal como se diseñaron originalmente. De forma predeterminada, las capas del modelo base no se inmovilizan, y las ponderaciones y los sesgos del valor de Base del modelo se pueden modificar para ajustarlos a las muestras de entrenamiento. Esto tarda más tiempo en procesarse, pero generalmente produce mejores resultados.

Los datos de texto a menudo contienen ruido en forma de etiquetas HTML y direcciones URL. Puede utilizar los parámetros Eliminar etiquetas HTML y Eliminar URL para preprocesar el texto y eliminar las etiquetas antes del procesamiento.

Referencias

Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser e Illia Polosukhin. "Attention Is All You Need." 6 de diciembre de 2017. https://arxiv.org/abs/1706.03762.

Devlin, Jacob, Ming-Wei Chang, Kenton Lee y Kristina Toutanova. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." 24 de mayo de 2019. https://doi.org/10.48550/arxiv.1810.04805.

"Encoder models." https://huggingface.co/course/chapter1/5?fw=pt.

Brown, Tom B. et al. "Language Models are Few-Shot Learners." 22 de julio de 2020. https://doi.org/10.48550/arxiv.2005.14165.

Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks." 4 de abril de 2017. https://doi.org/10.48550/arxiv.1506.01186.

"Mistral." https://docs.mistral.ai/getting-started/open_weight_models/.