Cómo funciona el reconocimiento de entidades

El reconocimiento de entidades, también conocido como reconocimiento de entidades con nombre (NER, por sus siglas en inglés) es el proceso de extraer información de 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 (NLP, por sus siglas en inglés) para entrenar modelos de reconocimiento de entidades, así como para extraer entidades de texto no estructurado.

La herramienta Entrenar el modelo de reconocimiento de entidades entrena modelos NLP para extraer un conjunto predefinido de entidades (como organizaciones, personas, fechas o países) proporcionadas como parte de un dataset de entrenamiento. Los modelos de reconocimiento de entidades entrenados se pueden utilizar con la herramienta Extraer entidades con aprendizaje profundo para extraer esas entidades del texto sin procesar en un formato estructurado.

Potenciales aplicaciones

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

  • Extraer datos como, por ejemplo, ubicación, agente de la declaración o arma que se utiliza de informes de delitos. Puede ayudar a revelar tendencias y a planificar los procesos correctivos.
  • Información como, por ejemplo, la ubicación o si se requiere asistencia, se puede extraer de los tuits o de las publicaciones en redes sociales. Este método puede ayudar a identificar las áreas en las que se requiere ayuda inmediata durante una catástrofe natural.
Gráfico de flujo del modelo de reconocimiento de entidades
Este modelo de reconocimiento de entidades se usa para extraer entidades tales como fecha, hora y ubicación de informes de texto.

Los modelos de reconocimiento de entidades de ArcGIS se basan en la arquitectura Transformador, que funciona en el marco Integrar, codificar, asistir, predecir.

  • Integrar: en este proceso, el texto de entrada se transforma en integraciones de palabras densas. Estas integraciones capturan información semántica del texto de entrada y facilitan su uso en el modelo.
    Flujo de trabajo Integrar
  • Codificar: en este proceso, el contexto se codifica en un vector de palabra. Se realiza utilizando redes neuronales convolucionales de trigramas residuales (CNN).
    Flujo de trabajo Codificar
  • Asistir: la salida de matriz del paso anterior se reduce a un único vector que se entregará para la predicción a una red prealimentada estándar. Este paso tiene un efecto similar al del mecanismo de atención.
    Flujo de trabajo Asistir
  • Predecir: el paso final del modelo es realizar una predicción partiendo del texto de entrada. En este caso, el vector de la capa de atención se entrega a un perceptrón multicapa para generar el Id. de la etiqueta de entidad.
    Flujo de trabajo Predecir

El back-end basado en transformador utiliza la arquitectura propuesta por Vaswani y otros en su artículo "Attention Is All You Need". Proporciona modelos más precisos y paralelizables, a la vez que requiere datos etiquetados menos precisos para el entrenamiento. Internamente, los modelos de reconocimiento de entidades de ArcGIS basados en transformador presentan 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 de nivel token: un clasificador de nivel token es la cabeza del modelo y clasifica la representación de entidades de cada token en varias categorías que representan las distintas entidades. Con frecuencia, un clasificador es una capa lineal simple de la red neuronal.
Componentes de los modelos de reconocimiento de entidades

Los modelos de reconocimiento de entidades 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 NLP pueden ser herramientas potentes a la hora de automatizar el análisis de volúmenes muy elevados de texto no estructurado. Al igual que con otros tipos de modelos, se debe prestar atención para asegurarse 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.

Usar modelos de reconocimiento de entidades

Puede utilizar la herramienta Extraer entidades con aprendizaje profundo para aplicar un modelo de reconocimiento de entidades entrenado a texto no estructurado y extraer información útil de él en forma de datos estructurados. Puede usar modelos de reconocimiento de entidades preentrenados desde ArcGIS Living Atlas of the World o entrenar sus propios modelos con la herramienta Entrenar modelo de reconocimiento de entidades.

La entrada de la herramienta Extraer entidades con aprendizaje profundo es una carpeta que contiene los archivos de texto o una columna de texto de una clase de entidad o tabla en los que se llevará a cabo el reconocimiento de entidades con nombre. 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 una tabla que contiene las entidades extraídas de cada texto. Si se proporciona un localizador y el modelo puede extraer direcciones, se producirá en su lugar una clase de entidad mediante la geocodificación de las direcciones extraídas. Si un archivo de texto contiene varias direcciones, se crea una entidad geocodificando cada dirección y replicando las demás entidades para ese archivo de texto.

Aunque la herramienta se puede ejecutar en CPU, se recomienda el uso de GPU para el procesamiento, ya que el aprendizaje profundo supone un alto coste 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 reconocimiento de entidades

Puede usar la herramienta Entrenar modelo de reconocimiento de entidades para entrenar modelos NLP para el reconocimiento de entidades con nombre. Esta herramienta utiliza un planteamiento de aprendizaje automático y entrena el modelo proporcionándole muestras de entrenamiento formadas por pares de texto de entrada y entidades etiquetadas en ese texto. 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 NLP requiere gran potencia de cómputo, por lo que se recomienda el uso de una GPU.

La entrada puede ser cualquiera de las siguientes:

  • Una tabla o clase de entidad que contiene un campo de texto con el texto de entrada para el modelo y las entidades etiquetadas donde el campo de texto seleccionado se utilizará como texto de entrada para el modelo y los campos restantes se tratarán como etiquetas de entidades con nombre.
  • Carpeta que contiene datos de entrenamiento en forma de datasets estándar para tareas NER. Los datos de entrenamiento deben estar en archivos .json o .csv. El formato de archivo determina el tipo de dataset de la entrada.
    • Cuando la entrada es una carpeta, se admiten los siguientes tipos de datasets:
      • ner_json: la carpeta de datos de entrenamiento debe contener un archivo .json con texto y las entidades etiquetadas con el formato de entrenamiento JSON de spaCy.
      • IOB: el formato IOB (etiquetas interiores –I, del inglés "inside"–, exteriores –O, del inglés "outside"– e iniciales –B, del inglés "beginning"–) propuesto por Ramshaw y Marcus en el ensayo Text Chunking using Transformation-Based Learning.

        La carpeta de datos de entrenamiento debe contener estos dos archivos .csv:

        • tokens.csv: contiene texto como fragmentos de entrada
        • tags.csv: contiene etiquetas IOB para los fragmentos de texto
      • BILUO: extensión del formato IOB que contiene además etiquetas finales L, del inglés "last" y de unidad U, del inglés "unit".

        La carpeta de datos de entrenamiento debe contener estos dos archivos .csv:

        • tokens.csv: contiene texto como fragmentos de entrada
        • tags.csv: contiene etiquetas BILUO para los fragmentos de texto

Al entrenar un modelo de reconocimiento de entidades, puede entrenar el modelo desde cero, ajustar con precisión aún más un modelo entrenado o utilizar aprendizaje en contexto.

Si ya tiene acceso a un modelo de reconocimiento de entidades preentrenado con el mismo conjunto de entidades objetivo que en las muestras de entrenamiento, tiene la opción de afinarlo para 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 (.emd) o un archivo de paquete de aprendizaje profundo (.dlpk). El modelo de salida también se guarda en estos formatos en la carpeta de modelo de salida especificada.

Los modelos de reconocimiento de entidades de ArcGIS tratan las entidades de dirección de manera diferente a otras entidades. Si se desea tratar una entidad como una ubicación, se debe especificar como una entidad de dirección en los parámetros de la herramienta. Durante la inferencia, estas entidades se geocodifican con el localizador especificado y se produce una clase de entidad como resultado del proceso de extracción de entidades. Si no se proporciona un localizador o el modelo entrenado no extrae entidades de dirección, se genera en su lugar una tabla con las entidades extraídas.

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 la totalidad de 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 de que disponga. Si tiene un gran número de muestras de entrenamiento, puede usar un valor bajo. En general, conviene 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 parámetro 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. 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 tiene lugar 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 del 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 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 desactivando la casilla de verificación 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.

Recursos

Consulte lo siguiente para más información:

"Attention Is All You Need", de Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser y Illia Polosukhin, en arXivLabs, Cornell University

Honnibal, Matthew. "Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models." https://explosion.ai/blog/deep-learning-formula-nlp.

Devlin, Jacob, Ming-Wei Chang, Kenton Lee y Kristina Toutanova. "Fully Understanding the Hashing Trick". 22 de mayo de 2018. https://arxiv.org/pdf/1805.08539.pdf.

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://arxiv.org/pdf/1810.04805.pdf.

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

Ramshaw, Lance y Mitch Marcus. "Text Chunking using Transformation-Based Learning". 1995. En Third Workshop on Very Large Corpora.

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