【信息抽取 YYDS!】KnowLM:知识图谱 + 大模型,实现更有效的信息抽取和知识管理

KnowLM 知识图谱 + 大模型:实现信息抽取

    • KnowLM 原理
    • KnowLM 部署
    • KnowLM 应用
        • 1. 命名实体识别(NER)
        • 2. 关系抽取(RE)
        • 3. 事件抽取(EE)

 


KnowLM 原理

代码:https://github.com/zjunlp/KnowLM/blob/main/README_ZH.md

 
目前需要从大量文本中,抽取信息,构建知识图谱,加强和补足大模型的专业能力,避免胡说八道、宽泛模糊问题。

知识图谱 = 实体 + 关系 + 实体

  • 实体:现实世界存在的事物,如人名、地名

  • 关系:实体之间的关系,如朋友、家

  • 举例:小明-电话-xxx,小明-年龄-20,小明-朋友-小张

 
安利 浙大的开源项目 KnowLM:

KnowLM 的信息抽取模型,叫 能分

  • NER 是,实体命名识别(现实世界存在的事物,比如地名、人名)
  • Event Extraction 是,事件抽取(哪里发生了什么事情,如旅游)
  • Relation Extraction 是,关系抽取(对象之间的关系,如父亲、女儿、朋友)

 
这个项目是怎么实现的?

  • KnowLM 是使用知识图谱来增强大型语言模型的预训练推理可解释性

  • 用知识图谱的结构化数据来提高模型的专业知识和输出质量,同时也用大模型的能力来更新和维护知识图谱本身。

KnowLM 结构图:

左侧用于预训练的数据集,包括中文(红色)、英文(绿色)、代码(蓝色),以及这些数据的处理步骤,如分词、清洗等。

  • 预训练过程详细的数据处理代码和训练代码、完整的训练脚本、详细的训练情况:https://github.com/zjunlp/KnowLM/tree/main/pretrain

右侧更专注于指令数据集,包括实体识别(NER)、关系抽取(RE)、事件抽取(EE)等NLP任务,以及各种中文和英文的数据集。

  • 详细的指令微调训练参数、训练脚本:https://github.com/zjunlp/KnowLM/tree/main/finetune/lora

数据量:

在信息抽取(从文本中抽取信息,建立知识图谱),智析 对比 GPT:

在这里插入图片描述

在这个例子中,GPT在执行关系抽取任务时存在以下问题:

  1. 不准确的关系抽取:GPT未能正确识别和提取文本中的关系三元组。它提供的输出可能包含不正确的关系或实体,或者完全缺失了某些关系。

  2. 不完整的信息提取:GPT在输出结果时,可能未能包含所有相关的信息,导致提供的信息不全面或不具体。

  3. 不适用的格式:GPT可能没有遵循指定的结构化输出格式,这是关系抽取任务中一个重要的要求,以便于后续的信息整合和知识图谱构建。

与之相比,“智析”这个系统在以下方面显示出了改进:

  1. 更准确的关系识别:智析能够更准确地识别出文本中的实体和关系,提供更符合预期的关系三元组。

  2. 完整性:智析提供的输出更完整,覆盖了指令中要求识别的所有相关信息。

  3. 遵循格式:智析能够根据指定的{s_format}格式提供结构化输出,这对于后续自动化处理和知识图谱的构建是非常有用的。

智析 相比 通用的GPT模型,在准确性、完整性和遵循指定输出格式方面的优势。

 

KnowLM 应用框架:

1.知识提示 - EasyInstruct:基于知识图谱等结构化数据的知识提示生成和知识增强约束技术,解决知识抽取和推理问题

2.知识编辑 - EasyEdit:基于知识编辑技术对齐大模型内过时、错误及价值观不正确的知识,解决知识谬误问题 (英文版Tutorial)

3.知识交互 - EasyAgent:基于知识动态交互和反馈实现工具组合学习及多智能体协作,解决大模型具身认知问题 (英文版Tutorial)

 


KnowLM 部署

跟着教程部署就行:
在这里插入图片描述
遇到问题在 issues 提问即可:

  • https://github.com/zjunlp/KnowLM/issues

 


KnowLM 应用

模板用于构建模型输入的指令,包括三个部分:

  • 任务描述:明确定义模型的功能和需要完成的任务,如实体识别、关系抽取、事件抽取等。
  • 候选标签列表{s_schema}(可选):定义模型需要抽取的标签类别,如实体类型、关系类型、事件类型等。
  • 结构化输出格式{s_format}:指定模型应如何呈现它提取的结构化信息。

指定候选标签列表的模板:

命名实体识别(NER):您是专门从事实体抽取的专家。
请根据候选实体类型列表{s_schema},从下面的输入中提取可能的实体,
如果某个实体不存在,请输出NAN。请按照{s_format}格式回答。关系抽取(RE):您是抽取关系三元组的专家。
请根据候选关系列表{s_schema},从下面的输入中提取可能的头实体和尾实体,并提供相应的关系三元组。
如果关系不存在,请输出NAN。请以{s_format}格式回答。事件抽取(EE):您是事件抽取的专家。根据候选事件字典{s_schema},请从下面的输入中提取任何可能的事件。
如果事件不存在,请输出NAN。请以{s_format}格式回答。事件类型抽取(EET):作为事件分析专家,您需要审查输入并根据事件类型目录{s_schema}确定可能的事件。
所有答案应基于{s_format}格式。如果事件类型不匹配,请标记为NAN。事件论元抽取(EEA):您是事件论元抽取的专家。
鉴于事件字典{s_schema1},以及事件类型和触发词{s_schema2},请从以下输入中提取可能的论元。
如果事件论元不存在,请输出NAN。请以{s_format}格式回答。

举例:

  • 信息抽取 Prompt:https://github.com/zjunlp/KnowLM/blob/main/examples/ie_prompt.py

应用:

要使用这些模板构建知识图谱,我们需要从文本中抽取实体、关系和事件。以下是一个如何应用这些模板的例子:

示例输入文本:

小明和小红是同学,他们都在北京大学读书。
小明的专业是计算机科学,而小红的专业是金融学。
他们经常一起在图书馆学习。
上周,小明和小红参加了学校的编程比赛并获得了第一名。
1. 命名实体识别(NER)

使用NER模板识别文本中的实体。
候选实体类型列表(s_schema)可能包括:人名、地点、学校、专业等。
结构化输出格式(s_format)可以选择为:“(实体类型: 实体)”。

示例输出(NER):

  • (人名: 小明)
  • (人名: 小红)
  • (地点: 北京大学)
  • (专业: 计算机科学)
  • (专业: 金融学)
  • (事件: 编程比赛)
2. 关系抽取(RE)

接下来使用RE模板抽取实体间的关系。
候选关系列表(s_schema)可能包括:同学、读书于、专业是、一起学习、参加比赛、获得名次等。
结构化输出格式(s_format)可以为:“{‘head’: ‘头实体’, ‘relation’: ‘关系’, ‘tail’: ‘尾实体’}”。

示例输出(RE):

  • {‘head’: ‘小明’, ‘relation’: ‘同学’, ‘tail’: ‘小红’}
  • {‘head’: ‘小明’, ‘relation’: ‘读书于’, ‘tail’: ‘北京大学’}
  • {‘head’: ‘小明’, ‘relation’: ‘专业是’, ‘tail’: ‘计算机科学’}
  • {‘head’: ‘小红’, ‘relation’: ‘专业是’, ‘tail’: ‘金融学’}
  • {‘head’: ‘小明’, ‘relation’: ‘参加比赛’, ‘tail’: ‘编程比赛’}
  • {‘head’: ‘小明’, ‘relation’: ‘获得名次’, ‘tail’: ‘第一名’}
3. 事件抽取(EE)

使用EE模板抽取文本中的事件。
候选事件字典(s_schema)可能包括:学习、比赛等。
结构化输出格式(s_format)可以为:“事件: {事件类型}”。

示例输出(EE):

  • 事件: 学习
  • 事件: 比赛

通过这样的过程,我们可以从文本中抽取出实体、关系和事件,构建成一个知识图谱。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450994.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

隧道穿透:常规反弹、加密反弹

目录 1、常规反弹 (1)Windows正向连接shell (2)Windows反向连接shell (3)Linux正向连接shell (2)利用Linux自带bash反弹Shell 2、加密反弹 1、常规反弹 假设在内网环境中发现…

GPGPU面临的工程困境闲聊

作者:蒋志强 本人同意他人对我的文章引用,但请在引用时注明出处,谢谢.作者:蒋志强 0.前言 2007年作为GPGPU的工程界元年至今,已经发展了接近小二十年了。这个领域是如此的重要,几乎影响了工业…

LangChain 81 LangGraph 从入门到精通三

LangChain系列文章 LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 62 深入理解Lang…

Python 数据分析(PYDA)第三版(一)

原文:wesmckinney.com/book/ 译者:飞龙 协议:CC BY-NC-SA 4.0 关于开放版本 第 3 版的《Python 数据分析》现在作为“开放获取”HTML 版本在此网站wesmckinney.com/book上提供,除了通常的印刷和电子书格式。该版本最初于 2022 年…

【数据结构与算法】之排序系列-20240203

这里写目录标题 一、628. 三个数的最大乘积二、645. 错误的集合三、747. 至少是其他数字两倍的最大数四、905. 按奇偶排序数组五、922. 按奇偶排序数组 II六、976. 三角形的最大周长 一、628. 三个数的最大乘积 简单 给你一个整型数组 nums ,在数组中找出由三个数组…

第二十二回 横海郡柴进留宾 景阳冈武松打虎-大模型ChatGLM2-6B新手速通

柴进说这人叫武松,排名老二。宋江说江湖上听说过武二郎的名字,幸会幸会,就拉着武松的手,一起喝酒吃饭。 武松是家喻户晓的打虎英雄,现在最流行的是大模型! 大模型ChatGLM2-6B新手速通! 人工智能…

路由器、路由器的构成、交换结构

目录 1 路由器 1.1 路由器的结构 “转发”和“路由选择”的区别 1.1.1 输入端口对线路上收到的分组的处理 1.1.2 输出端口将交换结构传送来的分组发送到线路 2.2 交换结构 2.2.1 通过存储器 2.2.2 通过总线 2.2.3 通过纵横交换结构 (crossbar switch fabric) 1 路由器…

【Iot】什么是串口?什么是串口通信?串口通信(串口通讯)原理,常见的串口通信方式有哪些?

串口通信原理 1. 串口2. 串口通信4. 波特率与比特率5. 帧格式3. 串口通讯的通讯协议3.1. RS2323.2. RS485 总结 1. 串口 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。 串口可…

2024/1/30 dfs与bfs

想要了解dfs与bfs,就得了解队列和栈。 一、栈与队列 1.栈 栈说白了就是先入后出。把栈类比为一个容器。只有一个口,所以如果我们想要取出最底层也就是最先放入的元素,只能最后取出它。 栈基础操作有如下几种: push 放入pop 拿…

网络安全挑战:威胁建模的应对策略与实践

在数字威胁不断演变的时代,了解和降低网络安全风险对各种规模的组织都至关重要。威胁建模作为安全领域的一个关键流程,提供了一种识别、评估和应对潜在安全威胁的结构化方法。本文将深入探讨威胁建模的复杂性,探索其机制、方法、实际应用、优…

leetcode 1.两数之和(C++)DAY1(待补充哈希表法)

文章目录 1.题目描述示例提示 2.解答思路3.实现代码结果4.总结 1.题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&…

Quppy 注册教程,轻松通过欧洲银行同名转账绑定个人IBAN账号

Quppy 注册教程,轻松通过欧洲银行同名转账绑定个人IBAN账号 官网下载APP或者去香港区下载APP使用 https://quppy.com/ch/ 按照官方APP里的邮箱注册,填写邀请代码258258 能提升审核成功率,后添加电话和个人信息;需要说明的是:网站…