Skip to content

Latest commit

 

History

History
325 lines (221 loc) · 22.1 KB

CBLUE任务改造说明与举例.md

File metadata and controls

325 lines (221 loc) · 22.1 KB

CBLUE任务改造

我们采用94个指令微调模板,对CBLUE基准中的各个任务进行。经过改造后,医疗文本NLP数据集都将转化为如下格式。input字段是模型的输入,target字段是模型的输出,type是原任务类型(不作为模型输入),answer_choices字段是选项,只有分类、术语标准化、推理类任务上该字段才会有意义。

{
  "input": str,
  "target": str,
  "type": str,
  "answer_choices": str,
  "sample_id": str,
}

为了将CBLUE中的各种不同任务适配为符合LLM的输入输出格式,我们对CBLUE各个数据集进行了相应的改造。

CMeEE任务

本任务原本是标准的医学文本NER任务,选手需要给出医学实体mention在待抽取文本中的具体span位置。在PromptCBLUE中,本任务被改造为:根据指定的实体类型,生成实体mention。在评分时,我们只考虑实体mention及其类型标签,不再考虑span位置信息。而且,特别注意的是,为了考察模型的指令理解与服从能力(instruction following),模型只能生成指令中指定的实体类型,而不能生成其他类型的实体。样例如下:

{
  "input": "医学实体识别:\n外周血白细胞计数常明显升高,伴核左移。\n实体选项:疾病,医学检验项目,医院科室,身体部位,微生物类,临床表现,药物\n答:", 
  "target": "上述句子中的实体包含:\n医学检验项目实体:外周血白细胞计数\n疾病实体:\n医院科室实体:\n药物实体:\n微生物类实体:", 
  "answer_choices": ["疾病", "医学检验项目", "医院科室", "身体部位", "微生物类", "临床表现", "药物"], 
  "task_type": "ner", 
  "task_dataset": "CMeEE-V2", 
  "sample_id": "train-134372"
}

上述样例中的target即为模型输出,而评测参与者需要根据自己的LLM输出进行解析,得到抽取结果。LLM输出的格式可以自己定义,也可以根据我们的样例来进行。

CMeIE任务

本任务是三元组联合抽取任务。在PromptCBLUE中,我们将其定义为:在指定的关系类型下,抽取形成该关系的头尾实体mention。参赛者可以根据需要对本任务的指令/提示进行进一步拆解,以更好的完成任务。示例如下:

{
  "input": "找出句子中的具有临床表现,同义词关系类型的头尾实体对:\n妊娠期高血压@健康孕妇可以通过全身血管阻力 (systemic vascular resistance,SVR) 和心输出量下降得以平衡,而妊娠期高血压妇女SVR较低,心输出量往往会增加。", 
  "target": "上述句子中临床表现关系的实体对如下:\n头实体:妊娠期高血压,尾实体:SVR较低;头实体:妊娠期高血压,尾实体:心输出量往往会增加;\n上述句子中同义词关系的实体对如下:", 
  "answer_choices": ["临床表现", "同义词"], 
  "task_type": "spo_generation", 
  "task_dataset": "CMeIE", 
  "sample_id": "train-67405"
}

CHIP-CDEE任务

本任务是医学事件抽取,即给定一段现病史或者医学影像所见报告,要求从中抽取临床发现事件的四个属性: 解剖部位、主体词、描述词,以及发生状态。在PromptCBLUE下,该任务表现为根据给定文本,生成相应的事件信息描述。注意原任务的标注中,部分主体词是做了ICD10标准化的,我们将这一部分样本过滤掉了,也就是说我们目前主要是评估LLM的医学事件抽取能力。

{
  "input": "7月前患者给予亚砷酸氯化钠(伊泰达)注射液 10mg 静滴14天,6月前予以口服维甲酸 20mg bid*14天维持治疗,5月前行亚砷酸氯化钠(伊泰达)注射液 10mg 静滴14天维持化疗,3月余前复查骨髓检查示增生性骨髓象;fish:pml/rara(双色双融合)(15/17):未见异常;腰穿脑脊液未见异常细胞。现为维持化疗入院。\n问题:句子中的临床发现事件及其属性是什么?\n说明:临床发现事件由主体词,发生状态,描述词和解剖部位组成", 
  "target": "上述句子中的临床发现事件如下:\n主体词:fish:pml/rara(双色双融合)(15/17)异常;发生状态:否定;描述词:;解剖部位:\n主体词:骨髓象;发生状态:;描述词:增生性;解剖部位:骨髓", 
  "answer_choices": null, 
  "task_type": "event_extraction", 
  "task_dataset": "CHIP-CDEE", 
  "sample_id": "train-17503"
}

CHIP-CDN任务

CHIP-CDN任务在CBLUE中的原型是:给定一诊断原词,要求给出其对应的诊断标准词,而诊断标准词是从ICD-10这一个4w+的标准词库中选择。由于我们不可能一次性将四万个词输入到LLM中(即使是GPT-4服务,最多只能输入32000个token),所以我们将CDN任务改造为:给定原词,从候选的若干个ICD-10诊断标准词中选择出匹配的词(可能有多个, 可能一个都没有)。而在实际业务中,我们可以结合对本地知识库的检索+LLM判断的方式,完整的预测诊断原词对应的诊断标准词。

{
  "input": "主动脉弓缩窄心功能低下\n归一化后的标准词是?\n实体选项:胫前动脉假性动脉瘤,主动脉缩窄,男性性腺功能低下,男性性腺功能低下,垂体功能低下,心功能不全\n说明:从候选的若干个ICD-10诊断标准词中选择出与原诊断描述匹配的词\n答:", 
  "target": "主动脉缩窄,心功能不全", 
  "answer_choices": ["胫前动脉假性动脉瘤", "主动脉缩窄", "男性性腺功能低下", "男性性腺功能低下", "垂体功能低下", "心功能不全"], 
  "task_type": "normalization", 
  "task_dataset": "CHIP-CDN", 
  "sample_id": "train-17932"
}


CHIP-CTC任务

本次评测任务的主要目标是针对临床试验筛选标准进行分类。注意到原数据集中一个占比较高的类型为"other"类,在PromptCBLUE下,我们将此类型名称取消。本任务转化为:根据给定的临床试验筛选标准类型,生成出给定句子的类型,或者回答"非上述类型"表明指令中给出的类型与句子不符合。

{
  "input": "8.过去3个月内有过眼内手术的患者;\n这句话是什么临床试验筛选标准类型?\n类型选项:成瘾行为,吸烟状况,性取向,残疾群体,读写能力,肿瘤进展,参与其它试验,疾病分期,能力,疾病,药物,诊断,教育情况,口腔相关,受体状态,健康群体,数据可及性,设备,献血,过敏耐受,特殊病人特征,睡眠,怀孕相关,研究者决定,器官组织状态,症状(患者感受),治疗或手术,护理,性别,种族,实验室检查,知情同意,饮食,年龄,居住情况,病例来源,酒精使用,体征(医生检测),锻炼,风险评估,预期寿命,伦理审查,依存性", 
  "target": "治疗或手术", 
  "answer_choices": ["成瘾行为", "吸烟状况", "性取向", "残疾群体", "读写能力", "肿瘤进展", "参与其它试验", "疾病分期", "能力", "疾病", "药物", "诊断", "教育情况", "口腔相关", "受体状态", "健康群体", "数据可及性", "设备", "献血", "过敏耐受", "特殊病人特征", "睡眠", "怀孕相关", "研究者决定", "器官组织状态", "症状(患者感受)", "治疗或手术", "护理", "性别", "种族", "实验室检查", "知情同意", "饮食", "年龄", "居住情况", "病例来源", "酒精使用", "体征(医生检测)", "锻炼", "风险评估", "预期寿命", "伦理审查", "依存性"], 
  "task_type": "cls", 
  "task_dataset": "CHIP-CTC", 
  "sample_id": "train-19957"
},
{
  "input": "判断临床试验筛选标准的类型:\n精神分裂症患者组(Schizophrenia,Sch):符合 DSM-IV偏执型分裂症诊断标准,年龄、性别、精神病病程与MAP组匹配,听力及视力正常、或矫正后处于正常范围。\n选项:残疾群体,口腔相关,诊断,能力,年龄,饮食,研究者决定,献血,参与其它试验,设备,护理,性别,症状(患者感受),依存性,睡眠", 
  "target": "非上述类型", 
  "answer_choices": ["残疾群体", "口腔相关", "诊断", "能力", "年龄", "饮食", "研究者决定", "献血", "参与其它试验", "设备", "护理", "性别", "症状(患者感受)", "依存性", "睡眠"], 
  "task_type": "cls", 
  "task_dataset": "CHIP-CTC", 
  "sample_id": "train-63105"
}

KUAKE-QIC任务

本任务是对医学场景的搜索问题的意图分类。注意到原数据集中一个占比较高的类型为"其他"类,在PromptCBLUE下,我们将此类型名称取消,并将本任务转化为:根据给定的医学搜索意图分类标签,生成出给定句子的类型,或者回答"非上述类型"表明prompt中指定的类型与句子不符合。

{
  "input": "确定检索词的类型:\n怎样备孕\n类型选项:病情诊断,功效作用,注意事项,治疗方案,后果表述,就医建议,医疗费用\n答:", 
  "target": "非上述类型", 
  "answer_choices": ["病情诊断", "功效作用", "注意事项", "治疗方案", "后果表述", "就医建议", "医疗费用"], 
  "task_type": "cls", 
  "task_dataset": "KUAKE-QIC", 
  "sample_id": "train-29316"
}
{
  "input": "判断下面搜索词的意图:\n武汉传染性尖锐湿疣的治疗方法\n选项:指标解读,治疗方案,功效作用,注意事项,病情诊断,就医建议,疾病描述\n答:", 
  "target": "治疗方案", 
  "answer_choices": ["指标解读", "治疗方案", "功效作用", "注意事项", "病情诊断", "就医建议", "疾病描述"], 
  "task_type": "cls", 
  "task_dataset": "KUAKE-QIC", 
  "sample_id": "train-17235"
}

CHIP-STS任务

本任务旨在判断两个与疾病相关的问句是否表达相同语义。在PromptCBLUE下,本任务即为:根据输入的两个问句,输出模型对其语义是否相同的判断("是的", "不是")。示例如下:

{
  "input": "下面两个句子语义是“相同”或“不同”?\n“糖尿病的三多一少是什么”,“无限极的“灵芝皇”和“桑唐饮”能治好糖尿病吗?”。\n选项:相同,不同\n答:", 
  "target": "不同", 
  "answer_choices": ["相同", "不同"], 
  "task_type": "cls", 
  "task_dataset": "CHIP-STS", 
  "sample_id": "train-54981"
}

KUAKE-QTR任务

本任务旨在判断医疗搜索场景下搜索词Query主题和落地页标题(Title)主题是否一致及达到多大程度上的一致,输出匹配分数(0分, 1分, 2分, 3分)。在PromptCBLUE下,我们将任务转化为:要求LLM评估匹配程度,即输出描述匹配程度的标签词语。

{
  "input": "下面的搜索词和页面标签的意思有多相同?\n搜索词:宝宝三周了发烧不玩睡觉\n页面标签:孩子三周了手足口发烧一天就不烧了就是睡觉打搀\n选项:完全不匹配或者没有参考价值,很少匹配有一些参考价值,部分匹配,完全匹配\n答:", 
  "target": "部分匹配", 
  "answer_choices": ["完全不匹配或者没有参考价值", "很少匹配有一些参考价值", "部分匹配", "完全匹配"], 
  "task_type": "matching", 
  "task_dataset": "KUAKE-QTR", 
  "sample_id": "train-67418"
}

KUAKE-QQR任务

本任务旨在判断两个医疗方面得查询(query)的语义关系。在本任务下,LLM需要判断两个查询语句的语义是否完全相等,前者语义覆盖后者,或者后者语义包含前者,或者是毫无关系。示例如下:

{
  "input": "下面两个句子的语义关系是?\n“伤口涂什么药好得快”,“有伤口涂什么药”。\n选项: 完全一致,后者是前者的语义子集,后者是前者的语义父集,语义毫无关联", 
  "target": "完全一致", 
  "answer_choices": ["完全一致", "后者是前者的语义子集", "后者是前者的语义父集", "语义毫无关联"], 
  "task_type": "matching", 
  "task_dataset": "KUAKE-QQR", 
  "sample_id": "train-88139"
}

KUAKE-IR任务

本任务原本的设置为在100w规模的语料库中检索出与医疗query相关的文档(doc)。为使本任务符合LLM特点的任务,我们将其改造为:将一个query和一个doc输入句子中,判断内容是否匹配。举例如下:

{
  "input": "医疗搜索:鼻梁被撞鼻梁矫正手术\n以下回答内容是否能够回答搜索问题?\n回答内容:你好,你这中情况一般需要行鼻骨截骨整形及鼻中隔联合矫正,手术需要住院,大概需要10天左右的时间,费用在12000左右,我们医院不对医保,如果是要医保报销需要办转诊手续之后再凭相关单据回所在地报销。\n选项: 相关,不相关\n答:", 
  "target": "相关", 
  "answer_choices": ["相关", "不相关"], 
  "task_type": "matching", 
  "task_dataset": "KUAKE-IR", 
  "sample_id": "train-801751"
}

CHIP-MDCFNPC任务

本任务是根据一段患者与医生的对话交互,抽取对话中出现的临床发现实体,并最终判断患者在这个临床发现实体上的阴阳性。阴阳性定义为是患者主诉病情描述和医生诊断判别中的阴性和阳性,包括阴性、阳性、其他、不标注这四种。在PromptCBLUE下,我们采用阴阳性标签的描述语句作为模型的输出目标。示例如下:

{
  "input": "患者:月经来了还可吃乌鸡白凤丸和丹栀逍遥丸吗\n医生:请问类似症状出现多长时间?\n医生:你吃这药是治疗什么的\n患者:我前几个月去检查是游离子腺素增高,月经没来\n医生:什么高\n患者:甲状游离子腺素增高\n医生:把化验单给我看一下。\n患者:现在去检查正常值了\n医生:那你如果月经量多这些药就不吃了,如果月经量少就可以吃。\n患者:就是月经不调\n患者:甲状腺素药还有吃\n医生:是甲状腺功能低下吗?甲减吗?\n患者:我在马来西亚看不懂报告单\n医生:嗯嗯,只有甲状腺功能低下才需要吃甲状腺素。\n问题:上述问诊对话中临床发现有哪些?这些实体的阴阳性是?\n阴阳性选项:已有症状疾病或者假设未来可能发生的疾病等,未患有症状疾病,没有回答、不知道、回答不明确或者模棱两可不好推断,无实际意义的不标注或者和病人当前的状态独立不标注\n说明:临床发现是临床医学下,病人状态描述的概念集合", 
  "target": "上述对话中临床发现实体以及其阴阳性判别如下:\n月经没来:已有症状疾病或者假设未来可能发生的疾病等\n游离子腺素增高:已有症状疾病或者假设未来可能发生的疾病等\n甲状游离子腺素增高:已有症状疾病或者假设未来可能发生的疾病等\n月经量少:无实际意义的不标注或者和病人当前的状态独立不标注\n月经量多:无实际意义的不标注或者和病人当前的状态独立不标注\n月经不调:已有症状疾病或者假设未来可能发生的疾病等\n甲减:没有回答、不知道、回答不明确或者模棱两可不好推断\n甲状腺功能低下:无实际意义的不标注或者和病人当前的状态独立不标注", 
  "answer_choices": ["已有症状疾病或者假设未来可能发生的疾病等", "未患有症状疾病", "没有回答、不知道、回答不明确或者模棱两可不好推断", "无实际意义的不标注或者和病人当前的状态独立不标注"], 
  "task_type": "attr_cls", 
  "task_dataset": "CHIP-MDCFNPC", 
  "sample_id": "train-982126"
}

IMCS-V2-NER任务

本任务是从医患对话中抽取实体。本任务的指令形式与CMeEE任务相似。示例如下:

{
  "input": "下面对话中的医学检查检验,症状,医疗操作实体有哪些?\n宝贝也呕吐吗?\n答:", 
  "target": "上述句子中的实体包含:\n医学检查检验实体:\n症状实体:呕吐\n医疗操作实体:", 
  "answer_choices": ["医学检查检验", "症状", "医疗操作"], 
  "task_type": "ner", 
  "task_dataset": "IMCS-V2-NER", 
  "sample_id": "train-63083"
}

IMCS-V2-DAC任务

本任务旨在根据部分医患对话历史,识别当前对话文本的意图标签。为了将本任务改造的更适合于LLM,我们对本任务的意图进行了改写,使得意图标签名称更符合自然语言形式。本任务的指令形式与QIC任务基本一致。示例如下:

{
  "input": "确定这句话的意图:\n当时医生说我们单纯支气管炎也不喘就开的药\n类型选项:关于就医建议的解答,给出诊断,关于症状的回答,关于症状的询问,关于就医建议的提问,关于已有检查和治疗的回答,关于注意事项的提问,关于已有检查和治疗的提问,关于个人基本信息的询问,关于个人基本信息的回答,关于用药建议的解答,关于病因的询问,关于用药建议的提问,关于注意事项的解答,关于病因的回答", 
  "target": "关于已有检查和治疗的回答", 
  "answer_choices": ["关于就医建议的解答", "给出诊断", "关于症状的回答", "关于症状的询问", "关于就医建议的提问", "关于已有检查和治疗的回答", "关于注意事项的提问", "关于已有检查和治疗的提问", "关于个人基本信息的询问", "关于个人基本信息的回答", "关于用药建议的解答", "关于病因的询问", "关于用药建议的提问", "关于注意事项的解答", "关于病因的回答"], 
  "task_type": "cls", 
  "task_dataset": "IMCS-V2-DAC", 
  "sample_id": "train-41955"
}

IMCS-V2-SR任务

本任务包含多个子步骤:(1) 需要从一段医生与患者间的对话中抽取症状; (2)需要给出症状的标准词(从任务给定的400+的标准词库中选择); (3)需要根据对话历史,判断症状的阴阳性,即:患者是否患有该症状, 没有患有该症状, 或者无法根据上下文确定病人是否患有该症状。本任务的指令与CHIP-MDCFNPC任务类似。举例如下:

{
  "input": "找出当前对话中的症状,并判断阴阳性:\n对话历史:\n患者:没有怎么听啊\n医生:根据您的描述,宝宝咳嗽,嗓子吼,可能是气喘或喉鸣,考虑支气管炎的可能性较大\n当前对话:\n医生:需要带宝宝去医院儿科就诊,用听诊器听诊肺部,查血常规胸片等相关检查,排除肺炎,根据结果,给于控制感染,止咳化痰等对症治疗。\n症状阴阳性选项:没有患有该症状,患有该症状,无法根据上下文确定病人是否患有该症状\n答:", 
  "target": "当前对话中的症状及其阴阳性判断为:\n肺炎:无法根据上下文确定病人是否患有该症状\n感染:患有该症状\n咳:患有该症状\n痰:患有该症状", 
  "answer_choices": ["没有患有该症状", "患有该症状", "无法根据上下文确定病人是否患有该症状"], 
  "task_type": "attr_cls", 
  "task_dataset": "IMCS-V2-SR", 
  "sample_id": "train-5434"
}

IMCS-V2-MRG任务

本任务要求是从医患对话中自动生成对应的诊疗报告。标注数据中,统一的将诊疗报告分拆为6个章节(主诉, 现病史, 辅助检查, 既往史, 诊断, 建议)。在PromptCBLUE下,我们要求LLM按照这6个章节的顺序进行一次生成。在评测时,我们仍然会将模型输出拆分为这6个章节。样例如下:

{
  "input": "问诊对话历史:\n患者:宝宝刚满月,母乳喂养,最近两天时不时的会咳嗽一声,食欲和精神还行,只不过睡觉不是很安稳。家里面最近两天大人和宝宝的姐姐也有感冒,不知道宝宝是被传染了感冒还是怎么样,请问怎么治疗?\n医生:您好,我是您的辅诊医生,需要询问几个问题,才能更好的评估孩子情况,您还在吗?\n医生:宝宝体温正常吗?\n医生:还在吗?\n患者:在\n医生:您好\n医生:宝宝现在体温正常吗\n患者:体温正常\n医生:口吐泡泡吗\n患者:没有\n医生:嗓子哑吗\n患者:哭起来跟以前一样\n医生:好的\n患者:只不过鼻音重\n医生:还有其他症状吗\n患者:睡不安稳\n医生:出汗多吗?\n患者:不多\n医生:哭闹吗\n患者:比以前爱哭闹\n医生:大便什么样子\n患者:这个没注意,昨天一天没有大便,今天上午大便的,大便以后睡得安稳一些了,不过还是时不时咳嗽一声\n医生:有痰吗?\n患者:没有痰,干咳\n医生:嗯嗯\n医生:流鼻涕吗\n患者:没有\n医生:嗯嗯\n医生:因为宝宝比较小,最好带宝宝去公立医院儿科就诊,听一下肺部没有问题的话可以观察看看\n根据上述对话,给出诊疗报告\n说明:诊疗报告分为主诉, 现病史, 辅助检查, 既往史, 诊断, 建议这六个章节。\n答:", 
  "target": "上述问诊对话的诊疗报告如下:\n主诉:阵发性咳嗽。\n现病史:患儿阵发性干咳两天。\n辅助检查:暂缺。\n既往史:不详。\n诊断:咳嗽待查。\n建议:儿科就诊,听诊肺部。", 
  "answer_choices": null, 
  "task_type": "report_generation", 
  "task_dataset": "IMCS-V2-MRG", 
  "sample_id": "train-7798"
}

MedDG任务

本任务要求:给定医生和患者交流的对话历史,生成医生的下一句回复。MedDG的原始设置强调实体蕴含,即假定医生的下一句回复需要包含一定的实体。在PromptCBLUE下,我们不对实体蕴含进行要求,只评测LLM作为医生角色的回复生成效果。样例如下:

{
  "input": "患者:最近总是到了晚上就胃很难受。这几天吃过饭就有点反胃但是都是头痛头晕恶心。胃还是很难受(女,19岁)\n医生:你好,这种情况有多长时间了?\n患者:半个月了。\n医生:平时吃饭规律吗?\n根据上述对话历史,作为医生应该如何回复?\n答:", 
  "target": "胃部感觉难受是怎么难受?反酸烧心打嗝?还是胃疼胃胀?", 
  "answer_choices": null, 
  "task_type": "response_generation", 
  "task_dataset": "MedDG", 
  "sample_id": "dev-19346"
}