2026/10/17 18:07:33

如何设计抽取Schema?GLiFormer Large v1推理时指定任务的技巧与示例

如何设计抽取Schema?GLiFormer Large v1推理时指定任务的技巧与示例 人工智能NLP大模型【免费下载链接】gliformer-large-v1项目地址https://ai.gitcode.com/hf_mirrors/knowledgator/gliformer-large-v1点击查看免费下载GLiFormer Large v1 是一个 575.6M 参数的统一文本信息抽取模型它共享同一个 DeBERTa 编码器并在推理时通过传入任务标签和**抽取 Schemaschema**即可完成命名实体识别、文本分类、关系抽取和结构化记录抽取无需为每个任务单独微调。本文面向新手讲清楚抽取 Schema 应该怎么设计以及在推理时如何指定任务。为什么推理时指定任务很重要传统做法是每个 NLP 任务训练一个专用模型维护成本很高。GLiFormer Large v1 的思路是一个模型 任意任务标签——模型在 README.md 中被描述为One encoder for PDF layout processing, entity recognition, classification, relation extraction, structured records, and text embeddings。任务类型调用方法推理时需要你提供什么命名实体识别NERpredict_entities实体类型列表如[person, organization]文本分类classify类别标签列表或分组字典联合关系抽取inference(joint_relations...)实体类型 关系类型一起传入结构化抽取structure字典或嵌套 Pydantic Schema文本向量embed_text无需标签直接输出 1024 维向量一句话理解Schema 就是你在推理时告诉模型要从文本里挖出什么结构的说明书。说明书写得越清晰抽取得越准。快速安装与加载模型先安装官方推理框架需要 Python 3.10pip install gliformer -U然后加载本仓库的模型权重import torch from gliformer import GLiFormer model GLiFormer.from_pretrained( knowledgator/gliformer-large-v1, load_tokenizerTrue, ) model model.to(cuda if torch.cuda.is_available() else cpu).eval() 如果你把模型下载到本地只需把模型 ID 换成本地 checkpoint 目录路径即可代码完全不用改。抽取 Schema 设计的 5 个核心技巧1️⃣ 实体类型短小、互斥、小写NER 任务中Schema 就是一个实体类型字符串列表。建议每个类型名简短且含义互斥例如entities model.predict_entities( Alice works at Acme in London., [person, organization, location], threshold0.5, )每个结果包含text、label、start、end、score五个字段偏移量是字符位置end不含边界。技巧类型名用业务里最常用的英文词如person而非human_name_full过长的类型名会稀释注意力。2️⃣ 分类标签覆盖全部可能性分类任务的 Schema 是候选标签列表建议能枚举就枚举、尽量互斥predictions model.classify( The new search feature is fast and easy to use., [positive, negative, neutral], threshold0.5, )它还支持分组标签一次判断多个维度例如{sentiment: [positive, negative], topic: [product, support]}3️⃣ 关系抽取实体和关系必须成对传入联合关系抽取joint relation extraction需要把实体类型 关系类型放在同一个字典里模型才能理解谁和谁之间是什么关系results model.inference( Alice works at Acme., joint_relations{ employment: { entities: [person, organization], relations: [works_at], } }, threshold0.5, )⚠️ 注意本 checkpoint 没有开放关系open relation头所以请用inferencejoint_relations而不是predict_relations便捷方法。4️⃣ 结构化 Schema扁平用字典多级用 Pydantic结构化抽取可以直接把文本灌进你定义的结构里。最简单的 Schema 是一个字典——外层 key 是记录名value 是字段列表records model.structure( Alice works at Acme., {employee: [name, company]}, ) # {employee: [{name: Alice, company: Acme}]}需要多级嵌套时用 Pydantic 模型描述父-子层级并开启validate_outputTrue做结构校验from pydantic import BaseModel class Employee(BaseModel): name: str role: str class Department(BaseModel): name: str employees: list[Employee] records model.structure(text, {department: Department}, validate_outputTrue)技巧字段名如name、company尽量与原文用词贴近字段越少、越扁平抽取越稳深层嵌套会放大误差传递。5️⃣ 用好threshold和批量参数threshold默认示例 0.5控制置信度过滤结果偏多就调高偏少就调低传入文本列表 batch_size8可批量抽取提升吞吐预测结果受Schema 措辞、领域、输入长度、阈值共同影响同一句话换一组标签结果可能不同——这属于正常行为不是 bug。一次调用跑多个任务Schema 组合示例inference方法可以把多种任务 Schema 合并到一次前向里返回字典按任务分组每组对应每个输入一条结果results model.inference( Alice joined Acme as a software engineer., entities[person, organization], classes[business, sports, technology], structures{employee: [name, company]}, ) print(results[ner][0]) print(results[classification][0]) print(results[structuring][0])仓库文件速览Schema 与任务的边界在哪里本仓库是一个标准的 Hugging Face checkpoint 目录核心文件如下文件作用pytorch_model.bin模型权重约 2.3 GBGit LFS 管理gliner_config.json模型结构配置deberta_2d骨干 各任务头NER、分类、联合关系、结构化、embeddingtokenizer.json / tokenizer_config.json分词器词表与配置trainer_state.json训练状态3000 步loss 从 0.276 降至 0.138README.md完整用法、评估指标与限制说明几个值得留意的配置项来自 gliner_config.jsonmax_types: 128单次推理最多可指定 128 个标签类型max_len: 16384最大输入长度max_width: 12、max_count: 20约束 span 宽度与记录数量属于官方在 README.md 中提到的固定记录锚点与 span 宽度限制抽取容量的边界。 另外配置文件叫gliner_config.json是历史命名GLiFormer 框架早期从 GLiNER 演化而来并不是说这是 GLiNER 模型。常见问题FAQQ为什么我换了一组实体类型结果差别很大ASchema 措辞直接影响预测。模型是按你给的标签去找对应 span 的建议用简洁、领域通用的英文标签并通过调整threshold校准召回/精度。Q关系抽取为什么不能用predict_relationsA本 checkpoint 没有开放关系头只有联合关系头所以要用inference的joint_relations参数详见 README.md。Qvalidate_outputTrue能保证内容正确吗A不能。它只校验输出结构是否符合 Pydantic Schema不校验事实正确性模型仍可能漏抽、选错 span 或把记录挂到错误的父节点下。Q其他语言支持如何A已公布的评估结果覆盖的是英文任务其他语言、文档版面输入和 embedding 基准的效果未被现有结果背书建议先小样本验证。小结Schema 设计清单 ✅标签名短、小写、互斥贴近原文用词分类标签尽量枚举完整可用分组字典做多维分类关系抽取把实体与关系成对传入joint_relations结构化 Schema先扁平后嵌套必要时用 Pydantic validate_output用threshold与batch_size平衡精度、召回与吞吐。掌握推理时指定 Schema这一思路后同一个 GLiFormer Large v1 模型就能覆盖你业务里大部分轻量级信息抽取需求——先跑通一个任务再逐步组合多任务是最上手的路线。赞分享人工智能NLP大模型【免费下载链接】gliformer-large-v1项目地址https://ai.gitcode.com/hf_mirrors/knowledgator/gliformer-large-v1点击查看免费下载相关推荐如何抽取实体间的关系GLiFormer Large v1 联合关系抽取实战教程如何抽取实体间的关系GLiFormer Large v1 联合关系抽取实战教程 GLiFormer Large v1 是面向信息抽取的多任务大模型支持联合关人工智能NLP大模型InfoSpider定时任务设置自动爬取的Windows/Linux计划任务InfoSpider定时任务设置自动爬取的Windows/Linux计划任务 痛点与解决方案 你是否还在每天手动运行InfoSpider获取数据面对24个网页爬虫数据分析数据可视化桌面应用扩展 less.php 编译能力自定义函数 registerFunction 开发教程扩展 less.php 编译能力自定义函数 registerFunction 开发教程 基于对项目源码 lib/Less/Parser.php 、 lib/创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考