大家好,我是东方财富的一名算法工程师,这里分享一些利用大模型赋能知识图谱建设的一些实践。

为什么知识图谱需要大模型

在金融场景中,天然会有大量结构化的数据需要投入大量的人力去生产和维护,而这样的数据又会大量被应用在下游的标签、推荐、风控等场景。比如基金关联的基金经理,基金净值,基金重仓股等信息,需要从各个基金公司的公告信息中进行提取。

做个类比,在 1.0 时代,我们会利用大量的规则和人力去提取和校验相应的数据,但这种方法往往需要针对特定的文本内容去维护各自的规则,成本较高。在 2.0 时代我们可以构建相应的深度学习模型,去辅助完成 NER、实体链接等工作。在这个过程中,数据的清洗,标注和训练,往往需要非常专业的标注人员和算法开发参与,而且其准确率需要大量的工作来提高。在大模型时代,我们发现 ChatGPT 能以一个相对非常高的准确率去完成各式各样的任务,这也让我们有一个想法,是否可以利用大模型去辅助我们建设知识图谱(毕竟不是啥业务都上得起大模型,一个图谱能解决下游很多任务)。

通过一些实践发现,ChatGPT 的确可以根据海量文本数据自动生成实体、属性和关系三元组等知识元素,从而快速构建大规模的知识图谱。

利用 ChatGPT 构建知识图谱

社区里已经有不少利用 ChatGPT 甚至 GPT4 构建知识图谱的案例:

假设我们已经在图数据库中建了一些节点,囊括了所以上市公司,我们的目标是想构建一个关于上市公司的知识图谱,包括董事长,上市时间等信息。

这里推荐修改下面的代码,构建相应的知识图谱:https://github.com/cocacola-lab/ChatIE,我们只需将预设的实体类型和关系类型修改成我们需要的种类,就能实现零样本的大规模知识图谱构建,当然能用 GPT4 的话效果更佳。

本地部署的 ChatGLM 方案

考虑到本地部署的数据隐私问题,也可以将 ChatIE 中的 ChatGPT 接口换成 ChatGLM-6B,理论上可以接近 ChatGPT 的效果。

但在实际应用中,我们发现 ChatGLM 虽然具备了一定的内容抽取和链接能力,但是生成内容的可控性较差。

比如我们希望令模型按(实体1,实体2,...)或者 实体1 关系1 实体2 \n这样的格式输出结果,可以在大模型的输入中添加:不要编造答案,并严格按照(实体1,实体2,...)的格式回答,不要有额外内容“ 类似的话。

但往往结果中还是有大量不可控的内容,需要做大量的正则匹配去清洗数据。

在后来的尝试中,我们在 ChatGLM 中前置了两轮对话达到了较好的效果。具体的代码 demo 可以参考

利用 ChatGLM 进行金融知识抽取,具体的效果演示参考下图:

当然这只是一个初级的 demo,后续还有更多利用 ES 和 NebulaGraph 进行校验和应用的代码,欢迎大家进行讨论。

同主题线上分享

如果你对 LLM、知识图谱感兴趣,可以看看同主题的线上分享:和 LLM、图数据库从业者一起夜谈这波 AI 风

与 AI 同行,利用 ChatGLM 构建知识图谱的更多相关文章

  1. Redis闲谈(1):构建知识图谱

    场景:Redis面试 (图片来源于网络) 面试官: 我看到你的简历上说你熟练使用Redis,那么你讲一下Redis是干嘛用的? 小明: (心中窃喜,Redis不就是缓存吗?)Redis主要用作缓存,通 ...

  2. springboot2.0+Neo4j+d3.js构建知识图谱

    Welcome to the Neo4j wiki! 初衷这是一个知识图谱构建工具,最开始是对产品和领导为了做ppt临时要求配合做图谱展示的不厌其烦,做着做着就抽出一个目前看着还算通用的小工具 技术栈 ...

  3. 中文维基百科分类提取(jwpl)--构建知识图谱数据获取

    首先感谢 : 1.https://blog.csdn.net/qq_39023569/article/details/88556301 2.https://www.cnblogs.com/Cheris ...

  4. [知识图谱]Neo4j知识图谱构建(neo4j-python-pandas-py2neo-v3)

    neo4j-python-pandas-py2neo-v3 利用pandas将excel中数据抽取,以三元组形式加载到neo4j数据库中构建相关知识图谱 Neo4j知识图谱构建 1.运行环境: pyt ...

  5. Atitit 知识图谱的数据来源

    Atitit 知识图谱的数据来源   2. 知识图谱的数据来源1 a) 百科类数据2 b) 结构化数据3 c) 半结构化数据挖掘AVP (垂直站点爬虫)3 d) 通过搜索日志(query record ...

  6. 1. 通俗易懂解释知识图谱(Knowledge Graph)

    1. 通俗易懂解释知识图谱(Knowledge Graph) 2. 知识图谱-命名实体识别(NER)详解 3. 哈工大LTP解析 1. 前言 从一开始的Google搜索,到现在的聊天机器人.大数据风控 ...

  7. 知识图谱+Recorder︱中文知识图谱API与工具、科研机构与算法框架

    目录 分为两个部分,笔者看到的知识图谱在商业领域的应用,外加看到的一些算法框架与研究机构. 文章目录 @ 一.知识图谱商业应用 01 唯品金融大数据 02 PlantData知识图谱数据智能平台 03 ...

  8. Task1:知识图谱介绍(1天)

    一.知识图谱简介 "知识图谱本质上是语义网络(Semantic Network)的知识库".但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图( ...

  9. 知识图谱顶刊综述 - (2021年4月) A Survey on Knowledge Graphs: Representation, Acquisition, and Applications

    知识图谱综述(2021.4) 论文地址:A Survey on Knowledge Graphs: Representation, Acquisition, and Applications 目录 知 ...

  10. Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview

    Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview   知识图谱的表示和在搜索中的展1 提升Google搜索效果3 1.找到最想要的信息.3 2.提供最全面的摘要.4 ...

随机推荐

  1. Vue中Key值的一些问题

    1. Vue里面的key是一个特殊的变量,在元素当中是不体现出来的 2. 在解析成虚拟DOM的是,如果我们没有写key值,那么这个key就类似于下标 0 , 1 , 2 , 3.... 3. 使用列表 ...

  2. GPT-NER:通过大型语言模型的命名实体识别

    讲在前面,chatgpt出来的时候就想过将其利用在信息抽取方面,后续也发现了不少基于这种大语言模型的信息抽取的论文,比如之前收集过的: https://github.com/cocacola-lab/ ...

  3. RHEL 7配置HAProxy实现Web负载均衡

    本文将简单介绍使用HAProxy实现web负载均衡,主要内容包括基于权重的轮询.为HAProxy配置https.配置http重定向为https.配置HAProxy使用独立日志. 一.测试环境 HAPr ...

  4. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(15)-Charles如何配置反向代理

    1.简介 在App开发的过程当中,抓包是一个很常见的需求,而有些app的请求不会在网络设置代理时被抓到数据包,这里若是需要抓包就需要搭建反向代理. 2.什么是代理? 什么是代理,来一张图了解一下. 代 ...

  5. 2022-07-01:某公司年会上,大家要玩一食发奖金游戏,一共有n个员工, 每个员工都有建设积分和捣乱积分, 他们需要排成一队,在队伍最前面的一定是老板,老板也有建设积分和捣乱积分, 排好队后,所有

    2022-07-01:某公司年会上,大家要玩一食发奖金游戏,一共有n个员工, 每个员工都有建设积分和捣乱积分, 他们需要排成一队,在队伍最前面的一定是老板,老板也有建设积分和捣乱积分, 排好队后,所有 ...

  6. 2021-03-20:给定一个二维数组matrix,其中的值不是0就是1,返回全部由1组成的子矩形数量。

    2021-03-20:给定一个二维数组matrix,其中的值不是0就是1,返回全部由1组成的子矩形数量. 福大大 答案2021-03-20: 按行遍历二维数组,构造直方图. 单调栈,大压小.有代码. ...

  7. SQL Server2019 删除列字段

    命令: 有默认值时用:alter table 表名 DROP  约束 alter table 表名 DROP COLUMN 列名 例如: alter table LJEL005H DROP COLUM ...

  8. drf——序列化之source(了解)、定制字段的两种方式(重要)、多表关联反序列化保存、反序列化字段校验、ModelSerializer使用

    1 序列化高级用法之source(了解) # 1.创建了5个表(图书管理的5个) # 2.对book进行序列化 # 总结:source的用法 1.修改前端看到的字段key值--->source指 ...

  9. CreateProcess error=2, 系统找不到指定的文件。

    遇到一个android 配置.gradle时提示CreateProcess error=2, 系统找不到指定的文件 于是百度有很多这类答案,如:干掉NDK 我按照这么做了,最后顽固的bug 并没有理睬 ...

  10. nc工具利用

    c: 瑞士军刀/网络测评工具    将本地的cmd 权限移交到外网 nc工具:应用    本地cmd打开, 输入  nc -e cmd 远程ip  5577  #连接到远程ip的5577 远程cmd打 ...