Cómo funciona Reconocimiento de entidades
El reconocimiento de entidades, también conocido como reconocimiento de entidades con nombre (NER), es el proceso de extraer información de frases, párrafos, informes textuales u otras formas de texto no estructurado. El conjunto de herramientas de análisis de texto del conjunto de herramientas GeoAI contiene herramientas que utilizan técnicas de procesamiento del lenguaje natural (PLN) para entrenar modelos de reconocimiento de entidades y utilizar estos modelos para extraer entidades de texto no estructurados.
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 utilizan la herramienta Extraer entidades con aprendizaje profundo para extraer esas entidades de texto sin formato a un formato estructurado.
Potenciales aplicaciones
A continuación se describen aplicaciones potenciales para esta herramienta:
Extracción de datos como la ubicación, el agente denunciante o el arma utilizada a partir de informes sobre delitos. Esto puede ayudar a visualizar las tendencias y a planificar las medidas correctoras.
A partir de tuits o publicaciones en redes sociales se puede extraer información como la ubicación o si se necesita ayuda. Esto puede ayudar a identificar las zonas en las que se necesita ayuda inmediata durante una catástrofe natural.

Los modelos de reconocimiento de entidades de ArcGIS se basan en la arquitectura Transformador, que funciona en el marco Integrar, codificar, asistir, predecir.
Incorporar: en este proceso, el texto de entrada se transforma en incorporaciones de palabras densas. Estas incorporaciones capturan la información semántica del texto de entrada y facilitan mucho el trabajo del modelo.

Codificar: en este proceso, el contexto se codifica en un vector de palabras. Para ello se utilizan redes neuronales convolucionales (CNN) de trigramas residuales.

Asistir: la matriz de salida del paso anterior se reduce a un único vector que se pasará para la predicción a una red de tipo feed-forward estándar. Este paso tiene un efecto similar al del mecanismo de atención.

Predicción: el último paso del modelo consiste en realizar una predicción a partir del texto de entrada. Aquí, el vector de la capa de atención se pasa a un perceptrón multicapa para obtener el Id. de la etiqueta de la entidad.

El backend basado en transformadores utiliza la arquitectura propuesta por Vaswani et al. en el artículo " Attention Is All You Need." Permite que los modelos sean más precisos y paralelos, y además se necesitan datos etiquetados menos precisos para el entrenamiento. Internamente, los modelos de reconocimiento de entidades basados en transformadores en ArcGIS tienen dos componentes:
Codificador: el codificador es la base 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, que se basan en la arquitectura de transformadores y están preentrenados en enormes volúmenes de texto.
Clasificador a nivel de token: un clasificador a nivel de token actúa como cabecera del modelo y clasifica la representación de entidades de cada token en múltiples categorías que representan las distintas entidades. Un clasificador suele ser una simple capa lineal de la red neuronal.

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 de PNL pueden ser herramientas muy eficaces para automatizar el análisis de grandes volúmenes de texto no estructurado. Como sucede con otros tipos de modelos, hay que tener cuidado para garantizar que se aplican a las tareas pertinentes, con el nivel adecuado de supervisión humana y transparencia sobre el tipo de modelo y los datasets de entrenamiento utilizados para entrenar el modelo.
Utilizar modelos de reconocimiento de entidades
Puede utilizar la herramienta Extraer entidades con aprendizaje profundo para aplicar un modelo entrenado de reconocimiento de entidades a texto no estructurado y extraer de él información útil en forma de datos estructurados. Puede utilizar modelos de reconocimiento de entidades preentrenados de ArcGIS Living Atlas of the World o entrenar sus propios modelos mediante 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 modelos de Esri (.emd) o un paquete de modelos de aprendizaje profundo (.dlpk). El modelo contiene la ruta al archivo del modelo de aprendizaje profundo (que contiene las ponderaciones del modelo) y otros parámetros del modelo. Algunos modelos puede 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 generará una clase de entidad geocodificando 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 puede ejecutarse en CPU, se recomienda una GPU para el procesamiento, ya que el proceso de aprendizaje profundo requiere muchos recursos del sistema. Para ejecutar esta herramienta con una GPU, establezca el ajuste de entorno Tipo de procesador en GPU. Si dispone de más de una GPU, especifique en su lugar el ajuste de entorno Id. de GPU.
Entrenar modelos de reconocimiento de entidades
Puede utilizar la herramienta Entrenar modelo de reconocimiento de entidades para entrenar modelos NLP para el reconocimiento de entidades con nombre. Esta herramienta utiliza un método de aprendizaje automático y entrena el modelo proporcionándole muestras de entrenamiento consistentes en 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 de PNL es una tarea de alta carga computacional, por lo que se recomienda utilizar 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
.jsono.csv. El formato de archivo determina el tipo de dataset de la entrada.Cuando la entrada es una carpeta, se admiten los tipos de datasets siguientes:
ner_json: la carpeta de datos de entrenamiento debe contener un archivo
.jsoncon texto y las entidades etiquetadas con el formato de entrenamiento JSON de spaCy.IOB: el formato IOB (etiquetas dentro, fuera, principio) propuesto por Ramshaw y Marcus en el artículo Text Chunking using Transformation-Based Learning.
La carpeta de datos de entrenamiento debe contener los dos siguientes archivos
.csv:tokens.csv: contiene texto como fragmentos de entradatags.csv: contiene etiquetas IOB para los fragmentos de texto
BILUO: extensión del formato IOB que contiene las etiquetas L (último) y U (unidad).
La carpeta de datos de entrenamiento debe contener los dos siguientes archivos
.csv:tokens.csv: contiene texto como fragmentos de entradatags.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 incluido en las muestras de entrenamiento, puede optar por ajustarlo aún más en los nuevos datos de entrenamiento. Ajustar un modelo existente suele ser más rápido que entrenar un modelo nuevo, y este proceso también requiere menos muestras de entrenamiento. Al ajustar un modelo preentrenado, asegúrese de mantener el mismo modelo base que se utilizó en el modelo preentrenado.
El modelo preentrenado puede ser un archivo de definición de modelos 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 direcciones de forma diferente a las demás entidades. Si una entidad debe tratarse como una localización, debe especificarse como una entidad de dirección en los parámetros de la herramienta. Durante la inferencia, estas entidades se geocodifican utilizando el localizador especificado y se genera 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 direcciones, se genera una tabla que contiene las entidades extraídas.
El entrenamiento de modelos de aprendizaje profundo es un proceso iterativo en el que los datos de entrenamiento de entrada pasan varias veces por la red neuronal. Cada pasada de entrenamiento a través de la totalidad de los datos de entrenamiento se conoce como una época. El parámetro Épocas máximas especifica el número máximo de veces que un modelo ve los datos de entrenamiento mientras se está entrenando. Esto depende del modelo que esté entrenando, de la complejidad de la tarea y del número de muestras de entrenamiento de que disponga. Si dispone de un gran número de muestras de entrenamiento, puede utilizar un valor pequeño. En general, es conveniente seguir entrenando repetidamente durante más épocas, hasta que la pérdida de validación siga disminuyendo.
El parámetro Modelo central especifica la red neuronal preconfigurada que sirve de codificador para el 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 del lote puede mejorar el rendimiento de la herramienta, pero, cuanto mayor es el tamaño, más memoria se utiliza. Si se produce un error de memoria insuficiente durante el entrenamiento del modelo, utilice un tamaño de lote menor.
El parámetro Tasa de aprendizaje es uno de los hiperparámetros más importantes. Es la tasa a la que se ajustan los pesos del modelo durante el entrenamiento. Si especifica una tasa de aprendizaje baja, el modelo mejora lentamente y puede tardar mucho tiempo en entrenarse, lo que supone una pérdida de tiempo y recursos. Una tasa de aprendizaje elevada puede ser contraproducente y el modelo puede no aprender bien. Con tasas de aprendizaje elevadas, las ponderaciones del modelo pueden ajustarse drásticamente, haciendo que produzca resultados erróneos. Suele ser mejor no especificar un valor para el parámetro Tasa de aprendizaje, ya que la herramienta utiliza un buscador automático de tasas de aprendizaje basado en el artículo 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 utilizarán 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 parada anticipada que hace que el entrenamiento del modelo se detenga cuando deja de mejorar en las siguientes épocas de entrenamiento. Para desactivar este comportamiento, desactive la casilla Detener cuando el modelo deja de mejorar.
También puede especificar si las capas base del modelo previamente entrenado se congelarán, de modo que los pesos y sesgos sigan tal como se diseñaron originalmente. De forma predeterminada, las capas del modelo central no están congeladas, y los pesos y sesgos del valor Modelo central pueden modificarse para ajustarse a las muestras de entrenamiento. Esto conlleva más tiempo de procesamiento, pero suele producir 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. Gómez, Lukasz Kaiser e Illia Polosukhin en arXivLabs de la Universidad de Cornell
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/.