知识抽取框架OneKE
OneKE 中指令的格式采用了类 JSON 字符串的结构,本质上是一种字典类型的字符串。优化知识抽取的性能不仅能够强化模型对世界知识的理解和应用,还能够构建知识要素之间的跨领域的深度关联和依赖,这些都是大规模知识图谱构建的关键依赖。一直是知识图谱大规模落地的关键难题之一,因为真实世界的信息高度碎片化、非结构化,大语言模型在处理信息抽取任务时仍因抽取内容与自然语言表述之间的巨大差异导致效果不佳,自然
OneKE 是由蚂蚁集团和浙江大学联合研发的大模型知识抽取框架,具备中英文双语、多领域多任务的泛化知识抽取能力,并提供了完善的工具链支持。OneKE 以开源形式贡献给 OpenKG 开放知识图谱社区。
大语言模型目前已显著提升了人工智能系统处理世界知识的能力,然而,以大语言模型为代表的生成式人工智能依然存在推理能力不足、事实知识匮乏、生成结果不稳定等问题,这些都极大地阻碍了大语言模型的产业化落地。为克服上述问题,加速推进可控生成式人工智能的产业落地,依托校企战略合作框架,蚂蚁集团和浙江大学成立知识图谱联合实验室,以期通过联合技术攻坚构建大语言模型与知识图谱双向增强的可控生成技术范式,围绕大模型增强的知识图谱构建、知识增强的可控生成、领域常识世界图谱等课题展开全方位合作。 基于非结构化文档的知识构建一直是知识图谱大规模落地的关键难题之一,因为真实世界的信息高度碎片化、非结构化,大语言模型在处理信息抽取任务时仍因抽取内容与自然语言表述之间的巨大差异导致效果不佳,自然语言文本信息表达中因隐式、长距离上下文关联存在较多的歧义、多义、隐喻等,给知识抽取任务带来较大的挑战。针对上述问题,蚂蚁集团与浙江大学依托多年积累的知识图谱与自然语言处理技术,联合构建和升级蚂蚁百灵大模型在知识抽取领域的能力,并发布中英双语大模型知识抽取框架 OneKE,同时开源基于 Chinese-Alpaca-2-13B 全参数微调的版本。测评指标显示,OneKE 在多个全监督及零样本实体/关系/事件抽取任务上取得了相对较好的效果。 统一知识抽取框架有比较广阔的应用场景,可大幅降低领域知识图谱的构建成本。通过从海量的数据中萃取结构化知识,构建高质量知识图谱并建立知识要素间的逻辑关联,可以实现可解释的推理决策,也可用于增强大模型缓解幻觉并提升稳定性,加速大模型垂直领域的落地应用。如应用在医疗领域通过知识抽取实现医生经验的知识化规则化管理,构建可控的辅助诊疗和医疗问答。应用在金融领域抽取金融指标、风险事件、因果逻辑及产业链等,实现自动的金融研报生成、风险预测、产业链分析等。应用在政务场景实现政务法规的知识化,提升政务服务的办事效率和准确决策。
01
OneKE 简介
OneKE 主要聚焦基于 Schema 的可泛化信息抽取,采用了基于 Schema 的轮询指令构造技术,专门针对提升大模型在结构化信息抽取的泛化能力进行了优化,旨在通过提供中英双语、可泛化的大模型知识抽取,OneKE 在一定程度上具备统一、通用、可泛化的知识抽取能力。同时,配套开源 OpenSPG 及 DeepKE 开源框架的支持,支持开箱即用。帮助研究人员和开发者更好地处理信息抽取、数据结构化、知识图谱构建等问题。
OneKE 支撑了蚂蚁知识图谱构建能力的建设,并在多个内部业务领域应用。与此同时,我们也正在开发一套基于 OpenSPG 的图谱自动构建系统,如视频演示所示,用户仅需输入“请帮我基于上述文本构建知识图谱”的简单指令,便可迅速完成文本的知识抽取及图谱构建。该平台集成了包括 Schema 自动构建、混合模型知识抽取在内的多个组件,而 OneKE 则是该平台的核心技术之一。目前,我们已经验证了可行性,未来相关能力成熟后,将推出完全开放的自动知识构建平台服务。官方主页:http://oneke.openkg.cn/
资源地址:http://data.openkg.cn/tool/oneke
OneKE 的典型特点:
- 多领域多任务泛化性。支持金融、常识、医疗等领域实体多属性、事件多论元的抽取,不限制属性数量;
- 中英文双语支持。支持中文和英文两种语言文本的知识抽取任务;
- 完善的工具链支持。OneKE 依托 OpenSPG 及 DeepKE 开源库提供了完善的 SFT 及抽取工具支持,开箱即用。
02
OneKE 的训练方法
数据处理
数据的形式和质量是提升大模型能力的关键。针对不同领域、任务、语言的数据格式不统一问题,OneKE 在训练前进行了数据的归一化与清洗。首先计算每个数据集的训练集、验证集和测试集内的文本重叠情况。如果发现一个文本实例在同一个文件中多次出现,并且伴随着不一致的标签,则移除该实例。其次,设计启发式规则以过滤低质量和无意义的数据:1)非字母字符占文本总量超过 80%;2)文本长度不足五个字符且没有任何标签;3)高频出现的停用词,如‘the’、‘to’、‘of’等,超过 80%。
指令微调
根据前人工作以及错误案例分析发现,抽取模型误判的主要原因可能在于 Schema 语义相似导致的混淆。因此,OneKE 在指令微调训练过程中采用了“基于 Schema 的轮询指令构造”技术。
如上图所示,先构建一个困难负样本字典,其键值对应的是 Schema 及其语义上相近的 Schema 集。难负样本的构建旨在促进语义近似的 Schema 更频繁地出现在指令中,同时也能在不牺牲性能的情况下减少训练样本量。然后,采取一种批次化指令生成方法,动态限制每条指令中询问的模式数量为 N(其范围在 4 到 6 之间)。
即使在评估阶段询问的 Schema 数目与训练时不同,通过轮询机制可以将询问数量平均分散至 N 个,从而缓解泛化性能下降的问题。具体算法如下图所示,详细技术细节请查阅论文“IEPile: Unearthing Large-Scale Schema-Based Information Extraction Corpus”。
通过“基于 Schema 的轮询指令构造”技术,并融合开源及蚂蚁业务相关 NER、RE、EE 等近 50 个数据集可得到约 0.4B tokens 的大规模高质量抽取指令微调数据,其中部分数据已通过 IEPile 开源。这次开源的 OneKE 模型是通过在 LLaMA 上进行全参数微调得到的,这一过程利用了上文提到的大规模高质量的抽取指令数据。
03
模型效果
如下图所示,OneKE 具备相对较好的中英双语可泛化的知识抽取能力,其中在中文 NER 命名实体识别类任务、RE 关系抽取类任务、EE 事件抽取类任务上取得了相对较好的效果。
04
OneKE使用方法与案例
OneKE 中指令的格式采用了类 JSON 字符串的结构,本质上是一种字典类型的字符串。它由以下三个字段构成:(1) 'instruction',即任务描述,以自然语言指定模型扮演的角色以及需要完成的任务;(2) 'schema',这是一份需提取的标签列表,明确指出了待抽取信息的关键字段,反应用户的需求,这是动态可变的;(3) 'input',指的是用于信息抽取的源文本。目前可通过 DeepKE-LLM 或 OpenSPG 来直接使用 OneKE,高级用户可自行转换和构造指令使用 OneKE。注意:鉴于特定领域内信息抽取的复杂性和对提示的依赖程度较高,我们支持在指令中融入 Schema 描述和示例(Example)来提升抽取任务的效果。由于模型规模有限,模型输出依赖于提示且不同的提示可能会产生不一致的结果,敬请谅解。
基于 DeepKE-LLM 使用 OneKE
用户可以按照 DeepKE-LLM 项目指引完成环境配置、模型权重获取、数据转换后直接使用 OneKE,DeepKE-LLM 也支持对 OneKE 进行量化(如 4bit 量化)以实现在低功耗设备上运行 OneKE。
DeepKE-LLM项目:
https://github.com/zjunlp/DeepKE/blob/main/example/llm/OneKE.md
基于OpenSPG使用OneKE
用户可以按照 OpenSPG 项目指引完成环境配置、模型权重获取、Schema 定义、数据转换后直接使用 OneKE。OpenSPG项目:https://openspg.yuque.com/ndx6g9/nmwkzz/dht0wtgycuw032gd基于 OpenSPG kNext 编程框架,用户可以按照 SPG Schema 的定义,提交端到端的图谱构建任务,实现文本到知识的自动转换,同时实现属性标化、实体链指,更新并写入到图谱存储,同时还可以使用 SPG KGDSL 查询构建好的结果。用户也可以添加领域指令数据后提交本地的 SFT 任务。
05
局限与不足
OneKE 在全监督及多领域泛化性上有比较出色的表现,统一的指令结构也能让业务通过增加更多领域标注数据以获取更好的模型能力。通过 OneKE 框架,我们证明了基于大模型统一知识构建框架的可行性。
然而,在实际的工业应用中,业务对知识要素的覆盖率、准确率要求非常高,统一Schema指令结构难以覆盖所有的知识表示形式,因此 OneKE 依然存在抽不全、抽不准以及难以处理较长文本的问题。
由于模型的规模有限,模型输出极大地依赖于输入的提示词(Prompt)。因此,不同的尝试可能会产生不一致的结果,且可能存在幻觉输出。我们也在并行探索开放知识抽取,联动图谱自动构建系统,持续优化和提升 OneKE 新领域及新类型上的适应性。
06
小结和展望
知识抽取是深度自然语言语义理解能力的重要体现。不仅需要知识抽取模型能够精确地捕获并解析文本信息,还要能够从复杂的数据中提炼出有用的知识和洞察。优化知识抽取的性能不仅能够强化模型对世界知识的理解和应用,还能够构建知识要素之间的跨领域的深度关联和依赖,这些都是大规模知识图谱构建的关键依赖。我们也将持续地将相关的技术体系应用到金融、医疗、政务等各垂直领域,加速构建垂直领域的知识脉络,推动知识图谱与大语言模型双驱的可控生成技术的产业落地。 本次我们开源的 OneKE 是非结构化数据知识化非常关键的一步。未来我们也将持续优化知识抽取的性能,同时以 OneKE 为基础加速构建各领域常识世界图谱 OneGraph。我们也将持续发布知识图谱与大型语言模型相互增强的实践和案例,欢迎各位小伙伴提出意见建议(Issue)和支持(PR)。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)