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
| Necessidade | Ponto de partida | Motivo |
|---|---|---|
| Etiquetas conhecidas e implementação em CPU | Referência inicial com spaCy | Os 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 completo | GLiNER | A 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 etiquetas | GLiNER bi-encoder | Pode pré-calcular e colocar em cache os embeddings das etiquetas, em vez de as codificar para cada documento. |
| Entidades e relações numa única passagem | Candidato GLiNER-Relex | Extrai 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ção | GLiNER2 | A sua interface de esquema combina reconhecimento de entidades, classificação e tarefas de extração estruturada. |
| Entidades aninhadas ou sobrepostas | Descodificador com suporte para entidades aninhadas, incluindo GLiNER com flat_ner=False | A 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 escrita | GLiNER-X ou referência inicial XLM-R | Teste cada idioma alvo, domínio e formulação das descrições dos tipos. |
| Etiquetas de domínio estáveis com segmentos anotados representativos | Classificador de tokens com fine-tuning ou pipeline spaCy | Estabeleç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 estruturados | LLM ou candidato híbrido | Os 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 regulado | Presidio mais candidato GLiNER2-PII | Combine o resultado do modelo com verificações determinísticas, controlos de ocultação e revisão. |
| IDs exatos, códigos de produto ou termos conhecidos | Regras e dicionários | A 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:
- Extração de candidatos: spaCy, GLiNER, modelo Transformer, LLM, regras ou uma combinação.
- 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.
- 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
- Guia de NER 2026 aborda codificadores, LLMs e a arquitetura de produção em três níveis.
- Raciocínio guiado por esquemas é relevante quando NER passa a ser extração estruturada.
Referências
- Documentação do GLiNER
- Artigo sobre o GLiNER bi-encoder - embeddings de etiquetas em cache para inventários grandes.
- Documentação do GLiNER2
- Artigo sobre o GLiNER-Relex - extração conjunta de entidades e relações.
- Artigo sobre o ZeroNER - avaliação zero-shot rigorosa com descrições de tipos.
- Artigo sobre o OpenNER 1.0 - avaliação multilingue e com várias ontologias de NER.
- LangExtract - extração com LLM com referências à fonte.
- NuExtract - extração multimodal alojada em infraestrutura própria.
- Presidio - framework de deteção e anonimização de PII.
- Artigo sobre o GLiNER2-PII - candidato a modelo multilingue de PII.
- Documentação de entidades nomeadas do spaCy
- Guia de classificação de tokens da Hugging Face
- Guia de structured outputs da OpenAI