开源开放 | 开源知识图谱抽取工具发布大模型版DeepKE-LLM

news2024/11/24 0:12:15

DeepKE-LLM链接:

https://github.com/zjunlp/DeepKE/tree/main/example/llm

OpenKG地址:

http://openkg.cn/tool/deepke

Gitee地址:

https://gitee.com/openkg/deepke/tree/main/example/llm

开放许可协议:Apache-2.0 license

贡献者:浙江大学(张宁豫、张锦添、王潇寒、桂鸿浩、姜一诺、陈华钧)


1、背景

DeepKE是一个开源可扩展的知识图谱抽取工具,可实现命名实体识别、关系抽取和属性抽取等抽取任务,并支持低资源少样本、文档篇章和多模态等复杂场景。在大模型时代,我们对DeepKE进行了全面升级并发布大模型版DeepKE-LLM智析抽取大模型)。该版本基于大模型对数据进行智能解析以实现知识抽取,支持多种大模型、遵循指令和自定义知识类型、格式。

520cc13146fd791ff0cc0fdb24e7b115.png

2、支持多种大模型

DeepKE-LLM目前支持多个大模型如Llama系列模型(Alpaca、Linly等)、ChatGLM等(MOSS、CPM-Bee、Falcon开发测试中将于近期支持),并通过自研的EasyInstruct支持调用OpenAI和Claude的系列模型,还进行了多实例并发请求(BatchPrompt)优化。此外,DeepKE-LLM提供了丰富的提示(Prompt)形式,含文本指令、代码提示(Code Prompt)等,以满足不同场景下知识抽取的需求。

DeepKE-LLM还提供了一个抽取大模型—智析。特别地,把LLaMA-13B与ZhiXi-13B-Diff合并需要约100GB的内存,显存没有要求(由于大模型合并策略导致的内存开销;为了方便使用,我们提供了fp16权重并将在未来优化合并方式);在模型推理阶段如果基于GPU使用ZhiXi-13B需要约26GB显存。我们将在KnowLM(https://github.com/zjunlp/KnowLM)项目中提供完整的大模型预训练、微调框架及多种大模型选择。

2.1 上手DeepKE-LLM

首先执行以下脚本安装python依赖包。

>> conda create -n deepke-llm python=3.9
>> conda activate deepke-llm
>> cd example/llm
>> pip install -r requirements.txt

大模型时代, DeepKE-LLM采用全新的环境依赖

注意!!是example/llm文件夹下的requirements.txt

使用方式一:按照KnowLM项目指引完成环境配置、模型权重获取与恢复后执行以下脚本测试抽取效果:

>> python examples/generate_lora.py --load_8bit --base_model ./zhixi --lora_weights ./lora --run_ie_cases

使用方式二:按照DeepKE-LLM项目指引完成环境配置、模型权重获取与恢复后执行:

>> CUDA_VISIBLE_DEVICES="0" python inference_llama.py \
   --base_model '智析大模型相对路径' \
   --lora_weights '智析大模型Lora权重相对路径' \
   --input_file '输入文件相对路径' \
   --output_file '输出文件相对路径' \
   --load_8bit \

下图对比了通过DeepKE-LLM使用智析大模型和ChatGPT的中英双语知识抽取效果。可以发现其取得了较为准确和完备的抽取效果。此外,我们也发现智析仍会出现一些抽取错误,我们会在未来继续增强底座模型的中英文语义理解能力并引入更多高质量的指令数据以提升模型性能。

a77f1509162012801c998ec86a44958e.png

2.2 上手大模型微调

DeepKE-LLM还支持多种大模型如Llama系列、ChatGLM等的微调。依照文档的说明,下载完毕数据和模型后,可通过下列脚本即可完成抽取大模型的指令微调训练(基于Llama-7B的Lora微调),我们还提供了多机多卡训练脚本供用户使用。

>> CUDA_VISIBLE_DEVICES="0" python finetune_llama.py \
   --base_model '大模型相对路径' \
   --train_path '训练数据相对路径' \
   --output_dir '输出模型相对路径' \
   --batch_size 128 \
   --micro_train_batch_size 4 \
   --num_epochs 3 \
   --learning_rate 1e-4 \
   --cutoff_len 512 \
   --val_set_size 1000 \
   --lora_r 8 \
   --lora_alpha 16 \
   --lora_dropout 0.05 \
   --lora_target_modules '[q_proj,v_proj]' \
   --train_on_inputs \
   --group_by_length \

2.3 使用 GPT、Anthropic系列模型

通过pip install easyinstruct安装EasyInstruct包,根据LLMICL中文档配置好数据集和API Key等参数后,直接运行python run.py文件即可。

其他模型的使用烦请查阅DeepKE-LLM的README文档。

3、抽取大模型训练

智析大模型基于LLaMA(13B)进行了全量预训练,并基于知识图谱转换指令(KG2Instructions,如下图)技术产生的大量指令数据来提高语言模型对于人类抽取指令的理解。

31519b05732308ca27fe442b0504f296.jpeg

为了在保留原来的代码能力和英语能力的前提下,来提升模型对于中文的理解能力,我们并没有对词表进行扩增,而是搜集了中文语料、英文语料和代码语料。其中中文语料来自于百度百科、悟道和中文维基百科;英文语料是从LLaMA原始的英文语料中进行采样,同时扩充了英文维基数据(原始论文中的英文维基数据的最新时间点是2022年8月,我们额外爬取了2022年9月到2023年2月,共六个月的数据)。对上面爬取到的数据集,我们使用了启发式的方法,剔除了数据集中有害的内容和重复的数据。最后我们使用5500K条中文样本、1500K条英文样本、900K条代码样本基于transformers的trainer搭配Deepspeed ZeRO3进行预训练。

接着,我们构建了针对抽取加强的指令微调数据集以提升模型的知识抽取能力,主要采取的是基于知识图谱转换指令(KG2Instructions)技术。我们基于维基百科和WikiData知识图谱,通过远程监督、Schema约束过滤等方法构建大量的指令数据,并通过随机采样人工指令模板的方式提升指令的泛化性。此外,我们还使用大量开源中英文学术抽取数据集构建指令微调数据集。

除了知识抽取能力之外,智析大模型也继承了基座模型的通用指令遵循能力如翻译、理解、代码、创作和推理等能力,详情烦请查阅KnowLM(https://github.com/zjunlp/KnowLM)的文档。

4、小结和展望

新版本的DeepKE-LLM支持使用多个大模型并提供了基于指令遵循的抽取能力。欢迎各位小伙伴提出意见建议(Issue)和支持(PR)。在今后我们还将继续开发和增强抽取大模型,支持更多的功能如大模型定制化知识增强和编辑、大小模型及多智能体(LLMs)协同、具身交互场景知识获取与协作等。

致谢:感谢多年来对DeepKE项目提供支持的同学(部分同学已毕业)、老师和朋友(排名不分先后):余海阳、陶联宽、徐欣、乔硕斐、毛盛宇、黎洲波、李磊、欧翌昕、王鹏、习泽坤、方润楠、陈想、毕祯、陈静、梁孝转、李欣荣、黄睿、翁晓龙、徐子文、张文、郑国轴、张珍茹、谭传奇、陈强、熊飞宇、黄非等。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

4ac35497312545d74a246ad61fe1b443.png

点击阅读原文,进入 OpenKG 网站。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络核心

1、OSI开放式互联参考模型 1、物理层:机械、电子、定时接口通信信道上的原始比特流传输。2、数据链路层:物理寻址,同时将原始比特流转变为逻辑传输线路。3、网络层:控制子网的运行,如逻辑编址、分组传输、路由选择(IP…

chatgpt赋能python:Python捕获Ctrl+C信号

Python 捕获 CtrlC 信号 在 Python 中,我们通过按下键盘上的 CtrlC 快捷键可以中断程序的运行,但是在某些情况下,我们希望程序在收到 CtrlC 信号后进行一些特殊的处理,而非直接退出或崩溃。这就需要捕获 CtrlC 信号,并…

前端Vue自定义简单实用中国省市区三级联动选择器

前端Vue自定义简单实用中国省市区三级联动选择器&#xff0c; 请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13118 效果图如下&#xff1a; #### 使用方法 使用方法 <!-- themeColor:主题颜色 ref:设置唯一ref pickerValueDefault:默认选择…

C++技能系列 ( 6 ) - 可调用对象、std::function与std::bind【详解】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the…

单片机如何生成周期正弦波

一&#xff0c;简介 在某些场景需要使用单片机的IIS等外设播放正弦波音频数据。本文介绍一种“笨方法”来生成固定频率和固定幅度的正弦波定点型数据&#xff0c;记录总结学习使用。 二&#xff0c;步骤简介 总体步骤概述&#xff1a; 1&#xff0c;使用Audition生成制定波形…

chatgpt赋能python:Python异常捕获存在的问题

Python 异常捕获存在的问题 作为一门广受欢迎、应用广泛的编程语言&#xff0c;Python 在处理异常方面有着比较完善的设计。Python 提供了 try…except…finally 这样的异常处理机制&#xff0c;通过这些机制&#xff0c;开发者可以捕获、处理程序中产生的异常&#xff0c;从而…

【安全】awvs安装(一)

目录 一、简介 二、将安装文件传输到服务器 三、安装 3.1 赋权 3.2 执行安装 四、激活 4.1 复制激活文件到对应安装目录 4.2 赋权 4.3 运行激活文件 五、访问 六、设置不自动更新 七、设置开启 八、忘记密码 前言&#xff1a;安全漏洞扫描工具awvs的安装使用 一、简介…

Android DiskLruCache完全解析,硬盘缓存的最佳方案

概述 LruCache只是管理了内存中图片的存储与释放&#xff0c;如果图片从内存中被移除的话&#xff0c;那么又需要从网络上重新加载一次图片&#xff0c;这显然非常耗时。对此&#xff0c;Google又提供了一套硬盘缓存的解决方案&#xff1a;DiskLruCache(非Google官方编写&…

Nginx基础配置

Nginx的基础配置&#xff1a; Nginx的基础配置 一、实战案例&#xff1a;1.Nginx访问统计&#xff1a;2.基于授权的访问控制&#xff1a;3.基于客户端访问设置&#xff08;设置黑白名单&#xff09;&#xff1a;4.基于域名的nginx虚拟主机&#xff1a;5.基于IP的nginx虚拟主机…

算法分析02--分治法

3.分治法 3.1递归 递归是指子程序&#xff08;或函数&#xff09;直接调用自己或通过一系列调用语句间接调用自己&#xff0c; 是一种描述问题和解决问题的常用方法。使用递归技术往往使函数的定义和算法的描述简洁且易千理解。 递归有两个基本要素&#xff1a;边界条件&…

告别固定字体大小:CSS使用相对单位提升网页可访问性和兼容性

在 Web 开发领域中&#xff0c;有很多误解流传&#xff0c;即使它们被反驳了很多次也仍然存在。"外部链接应该总是在新标签页中打开" 就是一个很好的例子。CSS Tricks 在将近十年前就对此进行了详细的解释&#xff08;简而言之&#xff1a;大多数情况下是错误的&…

沃尔玛、亚马逊跨境境电商如何实现自养账号采退、海淘及测评的

今天曹哥还是针对下亚马逊、沃尔玛跨境平台如何实现自己养买家号可以给自己采购、海淘及测评等技术问题 首先你要有一个稳定的环境方案&#xff0c;这个是做自养号采购、海淘及测评的基础。环境有很多&#xff0c;从早期的虚拟机&#xff0c;模拟机&#xff0c;云手机&#xf…

MATLAB | 绘图复刻(十) | 旋转45度的相关系数热图绘制

我们在论文里经常能见到这样三角形的相关性热图&#xff0c;这样的热图绘制出来会更节省空间&#xff1a; 这期就教大家如何绘制三角形的热图&#xff0c;绘制效果如下&#xff1a; 以下是教程部分&#xff1a; 0 数据准备 这里随便生成了一组数据&#xff0c;计算了相关系数&…

C++——vector迭代器失效与深浅拷贝问题

目录 1. vector迭代器失效问题 1.1 insert迭代器失效 1.1.1 扩容导致野指针 1.1.2 意义变了 1.1.3 官方库windows下VS和Linux下对insert迭代器失效的处理 1.2 erase迭代器失效 1.2.1 失效原因分析 1.2.2 官方库windows下VS和Linux下对erase迭代器失效的处理 1.2.3 测试…

0基础学习VR全景平台篇第46篇:底部菜单- 【开场地图】与【高清矩阵】的对比

大家好&#xff0c;欢迎观看蛙色VR官方——后台使用系列课程&#xff01; 这期 &#xff0c;我们将为大家讲解蛙色VR平台-【开场地图】与【高清矩阵】功能的区别 功能位置示意 一、功能具体应用 开场地图分为两种&#xff0c;分别是高德地图和手绘地图。 高德地图点位目前系统…

【Linux】MySQL 存储引擎

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 MySQL 存储引擎 MyISAM 表支持 3 种不同的存储格式常用存储引擎&#xff1a;InnoDB、MyISAM查看系统支持的存储引擎查看表使用的存储引擎修改存储引擎死锁如何尽可能避免死锁…

每日学术速递6.7

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.The ObjectFolder Benchmark: Multisensory Learning with Neural and Real Objects(CVPR 2023) 标题&#xff1a;ObjectFolder 基准测试&#xff1a;使用神经和真实对象进行多感官…

计算机网络管理- SNMP协议报文和报文格式分析,SNMP PDU分析

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…

【玩转Linux操作】Linux服务管理

&#x1f38a;专栏【玩转Linux操作】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 文章目录 &#x1f354;服务(service)管理⭐service管理指令 &…

《网络安全0-100》网络安全技术

网络安全技术 防火墙 入侵检测系统 防火墙(Firewall)是一种网络安全设备&#xff0c;用于监控和控制网络流量&#xff0c;以保护网络免受未经授权的访问和攻击。防火墙通过过滤网络流量&#xff0c;阻止潜在的攻击流量进入网络。它可以实现基于端口、协议、IP地址和应用程序的…