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

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

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

做个类比,在 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. 新一代自动化测试神器Playwright

    转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/4bedb73c.html 你好,我是测试蔡坨坨. 说到WebUI自动化测试,首当其冲的当属Selenium,在很长的一段时间 ...

  2. Kubernetes入门实践(Pods)

    为了解决多应用联合运行的问题,同时还要不破坏容器的隔离,就要再对多个容器进行打包.Pod就是对容器的打包,里面的容器可以看成是一个整体,总是能一起调度.一起运行,绝不会出现分离的情况,而Pod属于Ku ...

  3. Python代码相似度计算(基于AST和SW算法)

    代码相似度计算将基于AST和Smith-Waterman算法 AST (抽象语法树) AST即Abstract Syntax Trees,是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中 ...

  4. APISIX 是怎么保护用户的敏感数据不被泄露的?

    本文以 APISIX 作为例子,为大家介绍了如何借助 Global Data Encryption 功能来保护敏感数据,确保不会有任何敏感数据进行明文存储,这样即使 etcd 中所有存储的数据都被盗取 ...

  5. Mysql中的数据类型注意事项

    整型数据类型 MySQL数据类型 含义(有符号) tinyint 1字节,范围(-128~127) smallint 2字节,范围(-32768~32767) mediumint 3字节,范围(-83 ...

  6. vivo 推送系统的容灾建设与实践

    作者:vivo 互联网服务器团队 - Yu Quan 本文介绍了推送系统容灾建设和关键技术方案,以及实践过程中的思考与挑战. 一.推送系统介绍 vivo推送平台是vivo公司向开发者提供的消息推送服务 ...

  7. ersync 实时同步

    ersync 实时同步 目录 ersync 实时同步 实时同步概述 结合sersync+rsync实时同步实战 环境准备 部署sersync(客户端) 实时同步概述 什么是实时同步 实时同步是一种只要 ...

  8. 从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目

    简而轻的低侵入式在线构建.自动部署.日常运维.项目监控软件 一键部署Jpom 本文主要介绍: 如何从零开始使用一键安装的方式安装 Jpom 服务端+插件端配置 本文中服务端和插件端是安装在同一个服务器 ...

  9. Python对两个Excel操作

    简介 现在有个需求,我们根据需要 data.xlsx 中某些单元格的内容来查找 find.xlsx 中的某些內容. 数据内容(为了数据安全,所有数据均已模糊处理) data.xlsx内容: find. ...

  10. 使用 @GrpcClient 实现客户端

    转载请注明出处: @GrpcClient 注解的作用是将 gRPC 客户端注入到 Spring 容器中,方便在应用程序中使用 gRPC 客户端调用 gRPC 服务提供的函数.使用 @GrpcClien ...