doccano 实体识别标注的数据转为 大模型微调的数据集格式

ops/2024/9/25 7:54:33/

文章目录

    • 背景
    • 简介
    • 数据集样例
    • 转换代码
    • 代码公开
    • 进一步阅读

背景

用实体识别的标注数据集微调大模型,往往大模型的效果会好一点。

故笔者提供了将 Doccano 实体标注格式的数据集转为大模型微调数据集的代码;

简介

  1. 展示 Doccano 实体识别导出的数据集格式;
  2. 展示 大模型实体识别微调的数据集格式;
  3. 提供 从Doccano 实体 转换到大模型微调数据集格式的代码;

数据集样例

Doccano 样例:
点击查看 Doccano 样例文件:https://github.com/JieShenAI/csdn/blob/main/24/04/convert_doccano_llm/data/guihua_10.jsonl
下述是一个样例:

{"id":6281,"text":"支持有实力的大企业牵头组建创新联合体,承担国家重大科技项目","Comments":[],"label":[[21,29,"重要项目"]]
}

点击查看 LLM 实体微调的样例文件:https://github.com/JieShenAI/csdn/blob/main/24/04/convert_doccano_llm/data/llm_10.jsonl
下述是一个样例:

{"instruction": "你是专门进行实体抽取的专家。请从text中抽取出符合schema定义的实体,不存在的实体类型返回空列表。请按照JSON字符串的格式回答。,'schema': ['重要项目', '功能定位', '主要任务', '基本遵循', '关键数据', '数值'], 'text': '支持有实力的大企业牵头组建创新联合体,承担国家重大科技项目'", "input": "", "output": {"重要项目": ["国家重大科技项目"], "功能定位": [], "主要任务": [], "基本遵循": [], "关键数据": [], "数值": []}
}

转换代码

查看代码:https://github.com/JieShenAI/csdn/blob/main/24/04/convert_doccano_llm/convert_doccano_llm.ipynb

import jsoninstruction_format = "你是专门进行实体抽取的专家。请从text中抽取出符合schema定义的实体,不存在的实体类型返回空列表。请按照JSON字符串的格式回答。, 'schema': {schema}, 'text': '{text}'"def convert_coccano2LLM(input_file, output_file, schema):with open(input_file, 'r') as f:with open(output_file, 'w') as w:for line in f:d = json.loads(line)text = d['text']ent_labels = d['label']output = {}for ent_class in schema:output[ent_class] = []for ent in ent_labels:start, end, ent_class = entif ent_class in schema:output[ent_class].append(text[start:end])llm_data = {'instruction':instruction_format.format(schema=schema, text=text),"input":"","output": json.dumps(output, ensure_ascii=False)}w.write(json.dumps(llm_data, ensure_ascii=False) + '\n')
convert_coccano2LLM('data/guihua_10.jsonl', 'data/llm_10.jsonl', schema=['重要项目', '功能定位', '主要任务','基本遵循','关键数据','数值']
)

convert_coccano2LLM(input_file, output_file, schema):

  • input_file: Doccano 实体导出文件;
  • out_file: 大模型实体微调导入数据集文件;特别注意:json.dumps(output), 这里是 label 要转成字符串,使用 json.dumps 将字典转成字符串,不然后面在数据集导入时会报错;
  • schema: 实体类别;

代码公开

在上述给出的github 链接中,提供了完整的测试文件和运行代码;

进一步阅读

在下述链接中,提供一种便捷的大模型实体识别实战的教程:

  • llama-factory SFT系列教程 (三),chatglm3-6B 大模型命名实体识别实战

  • 大模型预测结果导入到Doccano,人工修正预测不准的数据
    人工修正大模型预测的结果,从而实现训练出更好的结果


http://www.ppmy.cn/ops/15492.html

相关文章

《深入浅出.NET框架设计与实现》笔记6.5——ASP.NET Core应用程序多种运行模式之五——补充说明Kestrel

关于Kestrel Kestrel 不是 ASP.NET Core 的一种运行模式,而是 ASP.NET Core 默认的 Web 服务器。 在 ASP.NET Core 应用程序中,Kestrel 用作 Web 服务器来处理传入的 HTTP 请求,并将它们传递给应用程序进行处理。实际上,Kestrel 通…

飞书API(5):查看多维表 28 种数据类型的数据结构

一、引入 前面我们用于测试的数据集其实都是比较常用的数据,比如说文本、数字、单选等,但飞书多维表并不仅仅只有这些数据,截止发文,飞书多维表应用上支持28种数据类型,在数据层面飞书官方只提供了23种数据类型&#…

CDGA|解锁数据治理之谜:数据分类分级是关键

在数字化时代,数据已经成为企业运营和社会发展的重要资产。然而,随着数据量的快速增长和复杂性的不断提升,如何有效地管理和利用这些数据成为了一个巨大的挑战。为了解决这个问题,数据治理成为了关键,而在数据治理中&a…

CSS简介与CSS选择器

目录 CSS简介 CSS语法规范 HTML引入CSS的方式 行内样式表 内部样式表 外部样式表 CSS选择器 CSS基础选择器 标签选择器 类选择器 单类名选择器 多类名选择器 id选择器 id选择器的使用 id选择器和类选择器的区别 通配符选择器 基础选择器总结 CSS简介 CSS 是层…

虚拟化与Docker基本概念与Docker的安装

Docker Docker 是一个开源的应用容器引擎,它最初是用 Go 语言开发的。Docker 允许开发者将应用程序及其依赖、库和环境打包到一个可移植的容器中,这个容器可以在任何支持 Docker 的 Linux 或 Windows 机器上运行,保证了应用在不同环境之间的…

简洁易懂递归 | 力扣124.二叉树中的最大路径和

Problem: 124. 二叉树中的最大路径和 文章目录 解题方法复杂度Code 解题方法 递归实现 最大路径和只会出现在以下3种情况: 只取当前节点取当前节点和最大的一个孩子取两个孩子,并以当前节点为根节点(这种无需return给上一层) 递归…

Oracle中的视图

1- 什么是视图 视图是一个虚拟表 视图是由sql查询语句产生的 视图真实存在 但是不存储数据 视图中的数据 只是对 基表(源数据表) 中的数据的引用 总的来说 视图可以简化数据 用户,订单,物流 三个表进行关联 吧很复杂的sql查询语句存储成一个视图 …

如何看待AIGC技术

目录 1.概述 2.技术应用 2.1.媒体与内容创作 2.2.教育与学习 ​​​​​​​2.3.艺术创作 ​​​​​​​2.4.游戏产业 ​​​​​​​2.5.工业设计 ​​​​​​​2.6.对未来社会的影响 2.7.可能的发展方向 ​​​​​​​2.8.小结 3.伦理与风险 3.1.AIGC技术面临…