Selección de modelos de NER: ¿spaCy, GLiNER, Transformers o LLMs?

Traducción automática

Este artículo se tradujo automáticamente a partir de la versión original en inglés.

El reconocimiento de entidades con nombre (NER) localiza y etiqueta fragmentos de texto, como personas, empresas y códigos de producto. Esta página está dirigida a ingenieros que deben elegir un enfoque de extracción para una carga de trabajo de producción. Ofrece un punto de partida que puedes probar con tu esquema, tus documentos y tus restricciones operativas.

Usa spaCy para etiquetas estables y pipelines rápidos. Elige GLiNER cuando las etiquetas cambien con frecuencia. Prueba un bi-encoder cuando muchas etiquetas puedan reutilizar embeddings en caché, o un clasificador de tokens basado en un Transformer con fine-tuning cuando dispongas de ejemplos etiquetados. Usa extracción estructurada basada en LLM cuando necesites un registro complejo en lugar de una simple lista de fragmentos.

Elige según las etiquetas necesarias, el idioma, la forma de la salida, los datos etiquetados y el presupuesto de latencia.

Tabla de decisión

NecesidadPunto de partidaMotivo
Etiquetas conocidas y despliegue en CPUReferencia inicial con spaCyLos pipelines preentrenados y las reglas ofrecen una referencia inicial; comprueba la precisión en el idioma y el dominio.
Etiquetas nuevas sin entrenamiento completoGLiNERLa extracción condicionada por etiquetas funciona bien cuando cambia el conjunto de etiquetas. Empieza con descripciones claras de los tipos, no con nombres aislados.
Inventario de etiquetas grande y reutilizableGLiNER bi-encoderPuede precomputar y almacenar en caché los embeddings de las etiquetas en lugar de codificarlas con cada documento.
Entidades y relaciones en una sola pasadaCandidato GLiNER-RelexExtrae conjuntamente tipos de entidades y relaciones. Compáralo con etapas separadas usando el esquema de relaciones objetivo.
Entidades y campos documentales o clasificaciónGLiNER2Su interfaz de esquema combina reconocimiento de entidades, clasificación y tareas de extracción estructurada.
Entidades anidadas o solapadasDecodificador compatible con anidamiento, incluido GLiNER con flat_ner=FalseLa decodificación plana suprime los solapamientos. Prueba fragmentos anidados con anotaciones que contengan los patrones de solapamiento esperados.
Extracción multilingüe o en varios sistemas de escrituraGLiNER-X o una referencia inicial XLM-RPrueba cada idioma objetivo, dominio y formulación de las descripciones de tipos.
Etiquetas de dominio estables con fragmentos etiquetados representativosClasificador de tokens con fine-tuning o pipeline de spaCyEstablece una referencia inicial supervisada y compara F1 de fragmentos exactos, latencia y coste en tu conjunto de dominio.
Campos implícitos, entre frases o estructuradosCandidato LLM o híbridoLos structured outputs restringen la forma de la respuesta, no la corrección de la extracción. Valida la precisión por campo en un conjunto de prueba del dominio.
PII crítica o flujo reguladoPresidio más candidato GLiNER2-PIICombina la salida del modelo con comprobaciones deterministas, controles de ocultación y revisión.
IDs exactos, códigos de producto o términos conocidosReglas y diccionariosLa coincidencia determinista resulta útil para patrones fijos; comprueba las variantes omitidas y las coincidencias incorrectas.

Cómo elegir

Escribe los tipos de entidad y unos cuantos ejemplos etiquetados antes de elegir un modelo. Incluye términos ambiguos y fragmentos dentro de otros fragmentos si la tarea los necesita.

Si las etiquetas son estables, prueba primero un pipeline existente. Aplica fine-tuning a un clasificador de tokens cuando sus errores de dominio justifiquen el entrenamiento y dispongas de ejemplos etiquetados representativos. Compáralo en un conjunto de dominio reservado para evaluación. Predice etiquetas de tokens sin generar la respuesta token a token.

Si las etiquetas cambian con frecuencia, prueba GLiNER o un extractor basado en LLM. Escribe una descripción breve para cada tipo ambiguo. ZeroNER evalúa descripciones de tipos con tipos de entidad no vistos durante el entrenamiento. Las descripciones aclaran la etiqueta; una prueba de tipos no vistos también debe excluir esos tipos del entrenamiento.

Si reutilizas un inventario grande de etiquetas, evalúa un bi-encoder antes que un codificador conjunto de etiquetas y texto. El artículo sobre GLiNER bi-encoder informa de un rendimiento aproximadamente 130 veces superior para gliner-bi-edge-v2.0 con embeddings de etiquetas en caché que para gliner_small-v2.5 con 1.024 etiquetas. La comparación utilizó una GPU H100 y tamaño de lote 1; las pruebas de velocidad cubrieron entradas de 64, 256 y 512 tokens. Esto demuestra por qué merece la pena probar la reutilización de etiquetas, no qué aceleración debes esperar en otra carga de trabajo.

Si los documentos abarcan varios idiomas, haz benchmark de cada idioma y sistema de escritura objetivo. OpenNER 1.0 no encontró un único modelo que fuera el mejor en su colección de 52 idiomas. Prueba tanto descripciones de tipos en inglés como localizadas, porque el texto de la etiqueta forma parte de la entrada del modelo.

Si la salida es un registro estructurado en lugar de fragmentos, usa un LLM con structured outputs o un pipeline híbrido. LangExtract resulta útil cuando cada extracción debe poder vincularse con su ubicación de origen. NuExtract es una opción alojada en infraestructura propia para la extracción multimodal de documentos. Ambos necesitan evaluación a nivel de campo en los documentos objetivo.

Muchas tareas de extracción empresarial no son NER puro. «Encuentra las partes, las obligaciones, la fecha de entrada en vigor, la cláusula de rescisión y la ley aplicable» es comprensión documental con campos de entidades.

Para PII, usa un framework de PII como Presidio como capa de integración y ocultación. Trata GLiNER2-PII como candidato de modelo, no como una decisión de cumplimiento normativo. Mide la exhaustividad en los formatos sensibles, idiomas y documentos que procesará el sistema.

Pipeline de producción

Un pipeline de extracción de producción suele añadir etapas alrededor del modelo:

  1. Extracción de candidatos: spaCy, GLiNER, modelo Transformer, LLM, reglas o una combinación.
  2. Normalización o vinculación de entidades opcional: asigna fragmentos a IDs canónicos, códigos de producto, usuarios, empresas o entradas del vocabulario de tu dominio.
  3. Validación y revisión: rechaza etiquetas imposibles, aplica las restricciones del esquema, elimina fragmentos duplicados y envía los casos inciertos a revisión.

La normalización asigna el texto extraído a un ID estable en tus datos. Para el fragmento «Apple», decide primero si se refiere a la empresa, a la fruta, a una familia de productos o a un símbolo bursátil. Después asigna ese significado al ID correspondiente.

Lista de comprobación de la evaluación

Mide más que el F1 a nivel de entidad:

El F1 de fragmentos exactos considera correcta una predicción solo cuando tanto el fragmento como la etiqueta coinciden con la anotación. Una puntuación con criterios más flexibles puede aceptar fragmentos solapados, así que documenta su regla de correspondencia. Ninguna de las dos puntuaciones comprueba si el nombre extraído corresponde al ID correcto de la base de datos.

  • F1 de fragmentos exactos
  • F1 con correspondencia flexible de fragmentos
  • matriz de confusión de etiquetas
  • gestión de entidades anidadas
  • precisión de la normalización de entidades
  • sensibilidad a las descripciones de tipos y al idioma de las etiquetas
  • cortes por idioma, sistema de escritura y formato documental
  • falsos positivos por etiqueta
  • calibración de confianza
  • latencia y coste por documento
  • tasa de correcciones humanas

Mantén el conjunto de prueba separado del diseño del esquema y del ajuste de umbrales. Informa del número de documentos y menciones de entidades por etiqueta. Usa intervalos de confianza a nivel de documento cuando las menciones repetidas en un mismo documento pudieran inflar la certeza.

Lecturas recomendadas

Referencias