Seleção de modelos de NER: spaCy, GLiNER, Transformers ou LLMs?

Tradução automática

Este artigo foi traduzido automaticamente a partir da versão original em inglês.

O reconhecimento de entidades nomeadas (NER) encontra e classifica segmentos de texto, como pessoas, empresas e códigos de produto. Esta página destina-se a engenheiros que estão a escolher uma abordagem de extração para uma carga de trabalho de produção. Fornece um ponto de partida que pode testar com o seu esquema, documentos e restrições operacionais.

Use spaCy para etiquetas estáveis e pipelines rápidos. Escolha GLiNER quando as etiquetas mudam frequentemente. Teste um bi-encoder quando muitas etiquetas puderem reutilizar embeddings em cache, ou um classificador de tokens baseado num Transformer com fine-tuning quando tiver exemplos anotados. Use extração estruturada baseada em LLM quando precisar de um registo complexo, em vez de uma simples lista de segmentos.

Escolha de acordo com as etiquetas necessárias, o idioma, o formato do resultado, os dados anotados e o orçamento de latência.

Tabela de decisão

NecessidadePonto de partidaMotivo
Etiquetas conhecidas e implementação em CPUReferência inicial com spaCyOs pipelines pré-treinados e as regras fornecem uma referência inicial; verifique a precisão no idioma e no domínio.
Etiquetas novas sem treino completoGLiNERA extração condicionada pelas etiquetas funciona bem quando o conjunto de etiquetas muda. Comece com descrições claras dos tipos, não apenas com nomes.
Inventário grande e reutilizável de etiquetasGLiNER bi-encoderPode pré-calcular e colocar em cache os embeddings das etiquetas, em vez de as codificar para cada documento.
Entidades e relações numa única passagemCandidato GLiNER-RelexExtrai conjuntamente tipos de entidades e de relações. Faça o benchmark comparando-o com fases separadas no esquema de relações alvo.
Entidades, campos de documentos ou classificaçãoGLiNER2A sua interface de esquema combina reconhecimento de entidades, classificação e tarefas de extração estruturada.
Entidades aninhadas ou sobrepostasDescodificador com suporte para entidades aninhadas, incluindo GLiNER com flat_ner=FalseA descodificação plana suprime sobreposições. Teste segmentos aninhados em anotações que contenham os padrões de sobreposição esperados.
Extração multilingue ou em vários sistemas de escritaGLiNER-X ou referência inicial XLM-RTeste cada idioma alvo, domínio e formulação das descrições dos tipos.
Etiquetas de domínio estáveis com segmentos anotados representativosClassificador de tokens com fine-tuning ou pipeline spaCyEstabeleça uma referência inicial supervisionada e compare F1 de segmentos exatos, latência e custo no seu conjunto de domínio.
Campos implícitos, entre frases ou estruturadosLLM ou candidato híbridoOs structured outputs restringem o formato da resposta, não a correção da extração. Valide a precisão ao nível dos campos num conjunto de teste de domínio.
PII de alto risco ou processo reguladoPresidio mais candidato GLiNER2-PIICombine o resultado do modelo com verificações determinísticas, controlos de ocultação e revisão.
IDs exatos, códigos de produto ou termos conhecidosRegras e dicionáriosA correspondência determinística é útil para padrões fixos; teste variantes não detetadas e correspondências incorretas.

Como escolher

Escreva os tipos de entidades e alguns exemplos anotados antes de escolher um modelo. Inclua termos ambíguos e segmentos dentro de outros segmentos se a tarefa o exigir.

Se as etiquetas forem estáveis, teste primeiro um pipeline existente. Aplique fine-tuning a um classificador de tokens quando os seus erros de domínio justificarem o treino e existirem exemplos anotados representativos. Compare-o num conjunto de domínio reservado para avaliação. Prevê etiquetas de tokens sem gerar a resposta token a token.

Se as etiquetas mudarem frequentemente, teste GLiNER ou um extrator baseado em LLM. Escreva uma descrição curta para cada tipo ambíguo. O ZeroNER avalia descrições de tipos com tipos de entidades não vistos durante o treino. As descrições clarificam a etiqueta; um teste de tipos não vistos também tem de excluir esses tipos do treino.

Se reutilizar um inventário grande de etiquetas, avalie um bi-encoder antes de um codificador conjunto de etiquetas e texto. O artigo sobre o GLiNER bi-encoder reporta um débito cerca de 130 vezes superior para gliner-bi-edge-v2.0 com embeddings de etiquetas em cache, face a gliner_small-v2.5 com 1 024 etiquetas. Essa comparação utilizou uma GPU H100 e tamanho de lote 1; os testes de velocidade abrangeram entradas com 64, 256 e 512 tokens. Isto mostra por que razão vale a pena testar a reutilização de etiquetas, não qual a aceleração a esperar noutra carga de trabalho.

Se os documentos abrangerem vários idiomas, faça benchmark de todos os idiomas e sistemas de escrita alvo. O OpenNER 1.0 concluiu que nenhum modelo foi o melhor em toda a sua coleção de 52 idiomas. Teste descrições dos tipos tanto em inglês como localizadas, porque o texto das etiquetas faz parte da entrada do modelo.

Se o resultado for um registo estruturado em vez de segmentos, use um LLM com structured outputs ou um pipeline híbrido. O LangExtract é útil quando cada extração tem de remeter para a localização correspondente na fonte. O NuExtract é uma opção alojada em infraestrutura própria para extração multimodal de documentos. Ambos continuam a exigir avaliação ao nível dos campos nos documentos alvo.

Muitas tarefas de extração empresarial não são NER puro. “Encontrar as partes, obrigações, data de entrada em vigor, cláusula de rescisão e lei aplicável” é compreensão de documentos com campos de entidades.

Para PII, use um framework de PII como o Presidio como camada de integração e ocultação. Trate o GLiNER2-PII como candidato a modelo, não como uma decisão de conformidade. Meça a sensibilidade nos formatos sensíveis, idiomas e documentos que o sistema irá processar.

Pipeline de produção

Um pipeline de extração de produção acrescenta frequentemente fases em torno do modelo:

  1. Extração de candidatos: spaCy, GLiNER, modelo Transformer, LLM, regras ou uma combinação.
  2. Normalização opcional ou ligação de entidades: mapeia segmentos para IDs canónicos, códigos de produto, utilizadores, empresas ou entradas no vocabulário do seu domínio.
  3. Validação e revisão: rejeita etiquetas impossíveis, impõe restrições do esquema, elimina segmentos duplicados e encaminha casos incertos para revisão.

A normalização associa o texto extraído a um ID estável nos seus dados. Para o segmento “Apple”, determine primeiro se significa a empresa, a fruta, uma família de produtos ou um símbolo bolsista. Depois associe esse significado ao ID correspondente.

Lista de verificação da avaliação

Meça mais do que o F1 ao nível das entidades:

O F1 de segmentos exatos considera uma previsão correta apenas quando tanto o segmento como a etiqueta correspondem à anotação. Uma pontuação menos exigente pode aceitar segmentos sobrepostos, pelo que deve registar a sua regra de correspondência. Nenhuma das pontuações verifica se o nome extraído está associado ao ID correto na base de dados.

  • F1 de segmentos exatos
  • F1 com correspondência menos exigente de segmentos
  • matriz de confusão das etiquetas
  • tratamento de entidades aninhadas
  • precisão da normalização de entidades
  • sensibilidade às descrições dos tipos e ao idioma das etiquetas
  • resultados discriminados por idioma, sistema de escrita e formato do documento
  • falsos positivos por etiqueta
  • calibração da confiança
  • latência e custo por documento
  • taxa de correções humanas

Mantenha o conjunto de teste separado do desenho do esquema e do ajuste de limiares. Comunique o número de documentos e de menções de entidades por etiqueta. Utilize intervalos de confiança ao nível do documento quando menções repetidas no mesmo documento pudessem, de outro modo, inflacionar a certeza.

Leitura aprofundada

Referências