52 Star 522 Fork 177

OpenKG/DeepKE

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Documentation PyPI GitHub Documentation Open In Colab

English | 简体中文

DeepKE-LLM: A Large Language Model Based
Knowledge Extraction Toolkit


环境依赖

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

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

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

新闻

  • [2023/11] knowlm-13b-ie权重进行了更新,这次更新主要是调整了NAN输出,缩短了推理长度,并支持了不指定schema的指令。同时,还支持了vllm快速推理6.1.3vllm预测加速
  • [2023/10] 发布了一个新的中英双语基于文本主题的信息抽取(IE)指令数据集,名为InstructIE
  • [2023/08] 推出了专门用于信息抽取(IE)的KnowLM版本,命名为knowlm-13b-ie
  • [2023/07] 发布了训练所使用的部分指令数据集,包括knowlm-keKnowLM-IE
  • [2023/06] 发布了第一版的预训练权重knowlm-13b-base-v1.0和第一版的zhixi-13b-lora

数据

名称 下载 数量 描述
InstructIE-train Google drive
HuggingFace
百度云盘
30w+ InstructIE训练集,基于弱监督构建得到,包含一定程度的噪音数据
InstructIE-valid Google drive
HuggingFace
百度云盘
2000+ InstructIE验证集
InstructIE-test Google drive
HuggingFace
百度云盘
2000+ InstructIE测试集
train.json, valid.json Google drive 5000 CCKS2023 开放环境下的知识图谱构建与补全评测任务一:指令驱动的自适应知识图谱构建 中的初赛训练集及测试集

InstructIE-train 包含InstructIE-zh.jsonInstructIE-en.json两个文件, 每个文件均包含以下字段:'id'(唯一标识符)、'cate'(文本主题)、'entity''relation'(三元组)字段,可以通过'entity''relation'自由构建抽取的指令和输出。 InstructIE-validInstructIE-test分别是验证集和测试集, 包含zhen双语。

train.json:字段含义同train.json'instruction''output'都只有1种格式,也可以通过'relation'自由构建抽取的指令和输出。 valid.json:字段含义同train.json,但是经过众包标注,更加准确。

以下是各字段的说明:

字段 说明
id 唯一标识符
cate 文本input对应的主题(共12种)
input 模型输入文本(需要抽取其中涉及的所有关系三元组)
instruction 模型进行抽取任务的指令
output 模型期望输出
entity 实体(entity, entity_type)
relation input中涉及的关系三元组(head, relation, tail)

模型

LLaMA系列

LLaMA

LLaMA,它是一组从7B到65B参数的基础语言模型。我们还提供了基于KnowLM框架的抽取大模型智析的支持。其首先(1)使用中英双语语料首先对LLaMA(13B)进行进一步全量预训练,在尽可能保留原来的英文和代码能力的前提下,进一步提高模型对于中文理解能力和知识储备;接着(2)使用指令数据集对第一步的模型微调,来提高语言模型对于人类指令的理解。模型详细信息请参考KnowLM.

案例一:LoRA微调LLaMA完成CCKS2023指令驱动的知识图谱构建 英文 | 中文

案例二:使用智析完成CCKS2023指令驱动的知识图谱构建 英文 | 中文

ChatGLM

ChatGLM

案例一:LoRA微调ChatGLM完成CCKS2023指令驱动的知识图谱构建 英文 | 中文

案例二:P-Tuning微调ChatGLM完成CCKS2023指令驱动的知识图谱构建 英文 | 中文

MOSS

ChatGLM

案例一:Lora微调Moss完成CCKS2023指令驱动的知识图谱构建 英文 | 中文

Baichuan

Baichuan

Case 1: Lora微调Baichuan完成CCKS2023指令驱动的知识图谱构建 英文 | 中文

CPM-Bee

案例一:OpenDelta微调CPM-Bee完成CCKS2023指令驱动的知识图谱构建 英文 | 中文

GPT系列

GPT

案例一:ICL使用大语言模型进行信息抽取 英文 | 中文

案例二:ICL使用大语言模型进行数据增强 英文 | 中文

案例三:ICL使用大语言模型完成CCKS2023指令驱动的知识图谱构建 英文 | 中文

案例四:ICL释放大型语言模型进行少样本关系抽取中的能力 英文 | 中文

案例五:CodeKGC-基于代码语言模型的知识图谱构建 英文 | 中文

为了更好地处理知识图谱构建中的关系三元组抽取(RTE)任务,我们设计了代码形式的提示建模关系三元组的结构,并使用代码语言模型(Code-LLM)生成更准确的预测。代码形式提示构建的关键步骤是将(文本,输出三元组)对转换成Python中的语义等价的程序语言。

方法

方法一:In-Context Learning(ICL)

In-Context Learning 是一种指导大语言模型的方法,可以提升其在特定任务上的表现。它通过在特定上下文中进行迭代学习,对模型进行微调和训练,以使其更好地理解和应对特定领域的需求。通过 In-Context Learning,我们可以让大语言模型具备信息抽取、数据增强以及指令驱动的知识图谱构建等功能。

方法二:LoRA

LoRA通过学习秩分解矩阵对来减少可训练参数的数量,同时冻结原始权重。这大大降低了适用于特定任务的大型语言模型的存储需求,并在部署期间实现了高效的任务切换,而无需引入推理延迟。详细可查看原论文LoRA: Low-Rank Adaptation of Large Language Models.

方法三:P-Tuning

PT方法,即P-Tuning方法,参考ChatGLM官方代码 ,是一种针对于大模型的soft-prompt方法。 P-Tuning,仅对大模型的Embedding加入新的参数。 P-Tuning-V2,将大模型的Embedding和每一层前都加上新的参数。

引用

如果您使用了本项目代码, 烦请引用下列论文:

@misc{knowlm,
  author = {Ningyu Zhang and Jintian Zhang and Xiaohan Wang and Honghao Gui and Kangwei Liu and Yinuo Jiang and Xiang Chen and Shengyu Mao and Shuofei Qiao and Yuqi Zhu and Zhen Bi and Jing Chen and Xiaozhuan Liang and Yixin Ou and Runnan Fang and Zekun Xi and Xin Xu and Lei Li and Peng Wang and Mengru Wang and Yunzhi Yao and Bozhong Tian and Yin Fang and Guozhou Zheng and Huajun Chen},
  title = {KnowLM Technical Report},
  year = {2023},
 url = {http://knowlm.zjukg.cn/},
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/openkg/deepke.git
git@gitee.com:openkg/deepke.git
openkg
deepke
DeepKE
main

搜索帮助