当前位置:   article > 正文

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

大模型 doccano

背景

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

故笔者提供了将 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,"重要项目"]]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

点击查看 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": {"重要项目": ["国家重大科技项目"], "功能定位": [], "主要任务": [], "基本遵循": [], "关键数据": [], "数值": []}
}
  • 1
  • 2
  • 3
  • 4
  • 5

转换代码

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

import json

instruction_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 = ent
                    if 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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
convert_coccano2LLM(
    'data/guihua_10.jsonl', 
    'data/llm_10.jsonl', 
    schema=['重要项目', '功能定位', '主要任务','基本遵循','关键数据','数值']
)
  • 1
  • 2
  • 3
  • 4
  • 5

convert_coccano2LLM(input_file, output_file, schema):

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

代码公开

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

进一步阅读

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/725597
推荐阅读
相关标签
  

闽ICP备14008679号