La transformación de texto es el proceso de traducir o convertir una secuencia de texto a otra secuencia de una longitud igual o distinta. Se consigue utilizando modelos de secuencia a secuencia (o Seq2seq) en el dominio de procesamiento de lenguaje natural (PLN). El conjunto de herramientas Análisis de texto de la caja de herramientas GeoAI contiene herramientas para entrenar modelos de transformación de texto, así como para utilizar los modelos para transformar texto de una forma a otra.
La herramienta Entrenar modelo de transformación de texto entrena modelos PLN para tareas de secuencia a secuencia y los modelos entrenados se pueden usar con la herramienta Transformar texto con aprendizaje profundo para transformar, traducir o resumir texto de forma similar.
Potenciales aplicaciones
A continuación se describen aplicaciones potenciales para esta herramienta:
- Las direcciones de calles incorrectas con errores ortográficos y el formato no estándar se pueden corregir y estandarizar. Puede aumentar la precisión al geocodificar estas direcciones.
- El texto en un idioma extranjero se puede traducir para que pueda entenderlo mejor (dentro de los límites de la traducción automática) o procesarlo más.
- Las descripciones legales de los límites de parcelas (como medidas y límites) se pueden transformar en archivos de trazado poligonal y se pueden procesar automáticamente para obtener la geometría de las parcelas.
Los modelos de transformació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 transformación de texto de ArcGIS son modelos de codificador-decodificador. Las capas de atención del codificador reciben todas las palabras del texto de entrada, pero las capas de atención del decodificador solo pueden acceder a las palabras antes de que se procese la palabra. A continuación, el decodificador genera las representaciones de entidades codificadas para producir la secuencia de tokens de salida. Algunos modelos conocidos de codificador-decodificador son BART y T5.
Los conceptos de codificador y decodificador se describen del siguiente modo:
- Codificador: el codificador transforma el texto de entrada en una representación numérica en forma de vectores de entidades de longitud fija. Esta representación numérica preserva el significado semántico del texto de entrada.
- Decodificador: el decodificador toma los vectores de entidades codificados del codificador y los combina con la secuencia de entrada para producir una secuencia de tokens de salida.
Los modelos de transformación de texto 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 transformación de texto
Puede utilizar la herramienta Transformar texto con aprendizaje profundo para aplicar un modelo de transformación de texto entrenado a texto no estructurado y transformarlo a otro formato o idioma. Puede usar modelos de transformación de texto previamente entrenados desde ArcGIS Living Atlas of the World, o bien entrenar modelos personalizados con la herramienta Entrenar modelo de transformación de texto.
La entrada de la herramienta Transformar texto con aprendizaje profundo es una clase de entidad o tabla que contiene el texto que se va a transformar. 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 el texto transformado.
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 transformación de texto
La herramienta Entrenar modelo de transformación de texto se puede usar para entrenar modelos de PLN para la transformació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 texto de entrada y la salida objetivo transformada. 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 destino para cada texto de entrada de la tabla.
Al entrenar un modelo de transformació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 transformación de texto preentrenado que realiza una tarea similar, 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 T5 que, a su vez, están basados en la arquitectura de transformador y previamente entrenados con ingentes cantidades de texto de forma semisupervisada, y además tienen un buen conocimiento del lenguaje. 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 el modelo 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 una 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.
Raffel, Colin. et al. "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer." 20 de julio de 2020. https://doi.org/10.48550/arxiv.1910.10683.
"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/.