Knowledgator发布GLiFormer:5.75亿参数编码器,嵌套JSON抽取F1达91.10
Knowledgator工程团队开源GLiFormer——一种支持多任务信息抽取的schema条件化编码器框架,含Base(2.64亿)和Large(5.75亿)两版模型。其不生成token,直接从原文抽取span构建嵌套JSON,在500例测试中Large版F1达91.10,接近GPT-5.6-luna(91.96),GPU推理中位延迟仅69ms。
多任务统一编码框架上线
Knowledgator Engineering正式发布GLiFormer,一个面向结构化信息抽取的schema-conditioned编码器框架。该模型统一处理命名实体识别(NER)、文本分类、关系抽取、嵌套JSON结构化及文本嵌入五大任务。用户在推理时动态传入标签与抽取schema,无需修改模型权重。两个预训练检查点(GLiFormer Base v1与Large v1)已开源至Hugging Face,均采用Apache 2.0许可证,支持`pip install gliformer`一键安装,并可在CPU或GPU上直接运行。
直击传统抽取栈痛点
当前主流信息抽取流程常依赖多个独立模型串联:一个识别实体,一个分类文档类型,另一个重建结构化记录。研究团队指出,这些任务本质共享同一核心操作——对源文本编码、表征目标概念、再评估二者兼容性。尽管大语言模型(LLM)可逐token生成嵌套JSON(含字段名、标点与值),但GLiFormer彻底剥离输出生成环节,转而通过打分机制直接定位原文中的语义片段(spans)。
基于‘锚点’的通用匹配机制
GLiFormer继承并扩展了GLiNER的标签匹配范式,引入‘anchor’(锚点)概念:每个运行时标签均与一个锚点进行打分匹配。锚点形态依任务而异——可以是分类任务中的类别向量、关系抽取中的实体对,或是结构化任务中的记录槽位(record slot)。源文本仅需编码一次,多个schema即可基于该共享编码并行执行,各任务以‘任务本地组’方式运作。头部计算量随锚点数、标签数及组数线性增长。在NER任务中,模型为每个token-label组合独立输出起始、结束与内部证据的sigmoid分数,天然支持嵌套提及与边界共享。
四阶段嵌套JSON结构化流程
GLiFormer的结构化过程分为四步:(1)将字段值锚定为源文本中的连续span;(2)通过匈牙利算法将span分配至无序记录槽位;(3)预测受schema约束的有向父子层级关系;(4)由确定性解码器组装最终嵌套JSON。所有字段值均严格来自原文span,杜绝虚构内容;但span选取、槽位分配与层级推断仍可能出错。
模型配置与训练细节
两个v1检查点均采用`gliformer-layout`模型类型,配备5个任务头:NER、分类、联合关系、多级结构化及嵌入。均配置最大span宽度为12词、最多100个记录锚点。Base版参数量2.642亿,含12层编码器、768维嵌入、最大上下文长度16,384;Large版参数量5.756亿,含24层编码器、1024维嵌入、最大长度8,192。Base版以DeBERTa为基座,进一步在1000亿token上预训练;论文披露其多任务训练使用135.8万样本,任务聚焦后训练使用37.2万样本。
性能基准与速度优势
在嵌套JSON抽取(500例)任务中,Large版F1达91.10,Base版为87.20;对比GPT-5.6-luna(91.96)与GPT-5-mini(82.56),指标为顺序无关、边界容错型,非精确JSON字符串匹配。分类任务(13个数据集)中,Large平均macro-F1为75.03,Base为72.36;GLiNER2.5为64.89,GPT-5-mini领先至79.79。CrossNER(5领域)中Base平均F1 65.10,Large为64.35;Gemma-4-31B-IT达70.74。关系抽取(4基准)中Large平均micro-F1为21.33,Base为18.94;GLiNER-Relex为25.6,Gemma-4-31B-IT为25.08。论文特别指出,在NER+分类综合指标上,Large版以约1/14参数量超越Gemma-4-E4B。
零生成token的高效推理
Knowledgator实测GLiFormer-Base在NVIDIA RTX PRO 6000 Blackwell GPU(FP16)上处理40份结构化文档(batch size=1)的中位延迟为69ms;在8线程AMD EPYC 9B45 CPU(FP32)上为547ms。其宣称‘最高快95.8倍’系理论估算:假设LLM预填充速率为2000 token/s、生成速率为60 token/s,未计入排队、网络延迟及隐式推理开销,亦未要求精度对等。
开箱即用的简易调用
GitHub仓库与模型卡提供简洁示例:`records = model.structure("Alice works at Acme.", {"employee": ["name", "company"]})`,输出为`{'employee': [{'name': 'Alice', 'company': 'Acme'}]}`。支持Pydantic嵌套schema定义多级记录;单次推理可同时执行实体、分类与结构化任务;关系抽取需调用`joint_relations`头,因v1检查点暂无开放关系头。