评测一: CHIP-PromptCBLUE医疗大模型评测任务

1. 任务描述/任务详情
  • 任务描述
  •   以ChatGPT、GPT-4等为代表的大语言模型(Large Language Model, LLM)掀起了新一轮自然语言处理领域的研究浪潮,展现出了类通用人工智能(AGI)的能力,受到业界广泛关注。在LLM大行其道的背景下,几乎所有的NLP任务都转化为了基于提示的语言生成任务。然而,在中文医学NLP社区中,尚未有一个统一任务形式的评测基准。
      为推动LLM在医疗领域的发展和落地,华东师范大学王晓玲教授团队联合阿里云天池,哈尔滨工业大学(深圳) 鹏城实验室汤步洲老师等专家学者,推出 PromptCBLUE-v2 评测基准。 PromptCBLUE-v2 是对CBLUE基准进行二次开发,将18种不同的医疗场景NLP任务全部转化为基于提示的语言生成任务,形成首个中文医疗场景的LLM评测基准,有利于帮助开源社区和业界快速评测公开的或者自有的LLM模型。 PromptCBLUE-v2 将作为CHIP-2023的评测任务之一,依托于天池大赛平台进行评测。
      为了考察大模型领域的不同技术,我们将对PromptCBLUE评测开放两个榜单:(1)不微调赛道,参赛选手使用组织方指定的开源的大模型主干直接进行预测,选手可以通过修改prompt或者从训练集中增加demonstrations来增强模型表现,在此过程中选手可以微调一个参数不超过1.5亿的句子表征模型作为辅助。(2) 参数高效微调赛道,参赛选手可以在开源的大模型主干之上添加参数高效微调模块(添加的额外参数量不得高于大模型主干参数量的1%), 且只能微调参数高效微调模块,不得微调大模型主干,且只能使用一组参数高效微调模块完成所有的任务。选手参与任一赛道时,都必须从组织方指定的开源大模型中选择一个进行参赛。
      本次CHIP-PromptCBLUE-v2评测任务是CCKS-PromptCBLUE评测任务的全面升级:
      (1) 任务更多: 本次PromptCBLUE新增了CBLUE中的两个具有挑战性的任务,Text2DT和CMedCausal,这两个任务需要对医学文本进行深入理解,且输出形式复杂,对LLM具有挑战性。且本次PromptCBLUE将CCKS-PromptCBLUE评测任务中未计分的IMCS-V2-DAC任务补充进来。
      (2) Prompt更丰富: CCKS-PromptCBLUE测试集所涉及的prompt模板只有94个。本次CHIP-PromptCBLUE的模板数量将会达到450多个,对LLM的鲁棒性要求更高。
      (3) 赛道设置: 本次CHIP-PromptCBLUE-v2分为不微调赛道和参数高效微调赛道,考察in-context learning, prompt优化,参数高效微调等不同的大模型技术。评测完全依托于开源大模型社区,考察选手对大模型推理和微调技术的创新探索和应用能力。

  • 任务详情
  • 任务一:CMeEE任务
  • 本任务原本是标准的医学文本NER任务,选手需要给出医学实体mention在待抽取文本中的具体span位置。在PromptCBLUE中,本任务被改造为:根据指定的实体类型, 生成实体mention。 在评分时,我们只考虑实体mention及其类型标签,不再考虑span位置信息。

  • 任务二:CHIP-CDN任务
  • 该任务原型是给定一诊断原词,要求给出其对应的诊断标准词,而诊断标准词是从ICD-10这一个4w+的标准词库中选择。由于我们不可能一次性将四万个词输入到LLM中, 所以我们将CDN任务改造为:给定原词,从候选的若干个ICD-10诊断标准词中选择出匹配的词(可能有多个, 可能一个都没有)。

    2. 数据说明

  • 数据形式
  • 在PromptCBLUE任务下,我们采用450多个个指令微调模板,对CBLUE基准中的各个任务进行改造,统一转化为基于prompt进行回复生成的形式。经过改造后, 医疗文本NLP数据集都将转化为如下格式。input字段是模型的输入,target字段是模型的输出,type是原任务类型(不作为模型输入), answer_choices字段是选项,只有分类、术语标准化、推理类任务上该字段才会有意义。
      {
       "input":str,
       "target":str,
       "type":str,
       "answer_choices":Union[NoneType, List],
       "sample_id":str,
      }
      为了将CBLUE中的各种不同任务适配为符合LLM的输入输出格式,我们对CBLUE各个数据集进行了相应的改造。以下两个例子是PromptCBLUE中CMeEE任务和CHIP-CDN任务的输入输出形式举例。(更多说明请参考 PromptCBLUE的github库

  • 数据样例
  • 任务一:

    {
       "input": "医学实体识别:\n外周血白细胞计数常明显升高,伴核左移。\n实体选项:疾病,医学检验项目,医院科室,身体部位,微生物类,临床表现,药物\n格式规定:按照实体类型输出实体,每类实体的抽取结果输出形式为\”实体类型A:实体1,实体2\n\”\n答:",
       "target": "上述句子中的实体包含:\n医学检验项目实体:外周血白细胞计数\n疾病实体:\n医院科室实体:\n药物实体:\n微生物类实体:",
       "answer_choices": ["疾病", "医学检验项目", "医院科室", "身体部位", "微生物类", "临床表现", "药物"],
       "task_type": "ner",
       "task_dataset": "CMeEE-V2",
       "sample_id": "train-134372"
      }

    任务二:

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

    3. 评测细则

  • 评测数据发布
  • 本次评测数据分为两次发布:

  • 8月10日:
  • 发布训练集和验证集,A榜测试集(即测试集A)。同时发布baseline代码和模型,供选手快速上手。测试集A不包含答案,选手需要在测试集A上进行预测,提交至评测平台上获得得分, 即A榜得分。

  • 10月12日:
  • 发布B榜测试集,即测试集B。最终评测排名将仅依据B榜结果。B榜评测的开放时间为: 10月12日开始,到10月12日17: 59: 59截止。

  • 提交文件
  • PromptCBLUE中将各个任务都已经转化为了根据prompt生成回复的统一格式,测试样本在test.json文件中,这个文件采用json line格式,每行是一个可json化的字符串,json化后"input"字段作为LLM输入,"target"字段为空字符串,待选手们填入模型回复。
      为完成测试集提交和获得评测得分,参与者需要提供三个文件:

  • 评测参与者需要提交自己训练的LLM在测试集上的生成结果,命名为test_predictions.json文件,保持json-line格式。样本数量,样本顺序要与官方提供的test.json文件一致。
  • 参赛者需要提供解析test_predictions.json文件转化为results.json文件的代码,命名为post_generate_process.py 。本代码只限于使用python标准库,并可采用如下命令运行:
       python post_generate_process.py test_predictions.json test_structured.json
  • results.json文件整体可以采用json.load()方法加载。其内部结构如下:
       {
        "task_name": [
          {
           "sample_id": str,
           "answer": Union[str, dict],
          }
        ]
       }
       results.json文件的更具体的格式说明见 PromptCBLUE的github库
  • 在参赛过程中,选手需要将test_predictions.json文件与post_generate_process.py文件打包为test_predictions.zip文件,提交到天池平台的镜像中进行运行,得到results.json文件。注意在zip文件中不要添加文件夹,即两个被打包的文件必须置于zip文件的顶层。比赛组织方将会根据天池镜像中的results.json文件打分。选手手动上传的results.json文件不作为评分依据。
      更多对于提交文件格式的要求,以及示例,详见 PromptCBLUE的github库

  • 评价指标
  • 本评测任务只有一个测试集,但是其包含多个任务的测试样本,我们采用在各个任务上分别计分的方式进行评测。各个任务上的评测指标如下:

  • 对于CMeEE-V2和IMCS-V2-NER任务,采用基于实体实例层面的严格的(strict),micro的Precision, Recall, F1分数。这里的实体实例包含mention(即实体名称的所有组成字符)和类型这两个组成字段。这里"严格的"指模型必须在指定的样本sample_id上,完全正确预测出ground truth中的实体实例的mention和类型,才能算是成功预测出这个实体实例,则true positive (TP) 加1。而如果模型预测的实体实例不在ground truth中,则false positive (FP)加1。如果ground truth中的实体实例未被模型预测到,则false negative(FN)加1。最终根据整个测试集上的TP,FP,FN计算Precision, Recall, F1分数。
  • 对于CMeIE任务和CMedCausal任务,采用基于三元组实例层面的严格的(strict),micro的precision, recall, F1分数。这里的三元组实例包含头实体mention, 尾实体mention,和关系类型字段。
  • 对于CHIP-CDEE任务,采用基于临床事件实例层面的严格的(strict),micro的precision, recall, F1分数。这里的临床事件实例包含主体词,发生状态,描述词和解剖部位字段。
  • 对于IMCS-V2-SR和CHIP-MDCFNPC任务,采用基于临床发现或者症状实例层面的严格的(strict),micro的precision, recall, F1分数。这里的临床发现或者症状实例包含mention和阴阳性判断标签字段。
  • 对CHIP-CDN任务,采用基于ICD-10标准词实例层面的严格的(strict),micro的precision, recall, F1分数。这里的ICD-10标准词实例包含mention和阴阳性判断标签字段。
  • 对Text2DT任务,采用决策树的编辑比率Tree_Edit_Ratio(具体定义见参考文献:李文锋,朱威,王晓玲,等.Text2DT:面向临床针对文本的决策规则抽取技术[J].医学信息学杂志,2022,43(12):16-22.)
  • 对CHIP-STS, KUAKE-QQR, KUAKE-IR,KUAKE-QTR任务,我们采用Micro的precision, recall, F1分数作为评估指标。对CHIP-CTC,IMCS-V2-DAC,KUAKE-QIC, 采用Macro的precision, recall, F1分数作为评估指标。
  • 对于MedDG和IMCS-V2-MRG数据集,我们采用Rouge-1,Rouge-2,Rouge-L分数作为评估指标。为避免分词影响,计算rouge分数前,会将句子中的汉字拆开,用空格分隔。IMCS-V2-MRG任务中,需要将模型生成的诊断报告拆分为主诉, 现病史, 辅助检查, 既往史, 诊断, 建议这六个章节,分别计算rouge得分后取平均分。
  • 上述任务中,F1(micro/macro)或者Rouge-L将作为每个任务的主要指标。

    总体打分:

    我们将对每个任务上的F1(micro/macro)或者Rouge-L分数,或者Tree_Edit_Ratio分数进行平均,得到总体分数,作为榜单排名的及评奖的依据。

    4. 时间安排
    赛程 时间
    评测任务发布 2023/08/01
    报名时间 2023/08/01 - 2023/9/24 17:59:59
    训练集,验证集发布;baseline模型代码发布 2023/08/10
    测试A榜数据(测试集A)发布 2023/08/10
    测试A榜评测截止 2023/10/12 17:59:59
    测试B榜数据(测试集B)发布 2023/10/12
    测试B榜最终测试结果提交截止 2023/10/16 17:59:59
    参与评奖队伍审核材料提交 2023/10/18 17:59:59
    公布测试结果 2023/10/20
    CHIP-2023会议 (评测报告及颁奖) 2023/10/27-2023/10/29
    评测论文提交 会后一月内(会议前需要确定论文标题,作者和机构信息)

    5. 任务提交

    评测任务网页链接:

    不微调赛道: https://tianchi.aliyun.com/competition/entrance/532131/introduction

    参数高效微调赛道: https://tianchi.aliyun.com/competition/entrance/532132/introduction

  • 所有队伍任务提交
  •   本次任务的两个赛道,“微调赛道”和“参数高效微调赛道”,都将采取排行榜的方式。
  • A榜阶段
  •   A榜测试数据发布后,参赛队伍报名成功后即可通过天池平台下载数据,本地调试LLM,在线提交结果。A榜提供训练数据集和验证数据集,供参赛选手微调LLM模型。同时提供测试数据集A,供参赛选手提交评测结果,参与排名。A榜阶段提交格式在“赛题与数据”页面有详细介绍。
      A榜阶段允许参赛队伍每天至多向天池平台提交3次结果,排名实时更新。参赛队伍可在测试A榜截止之前,随时上传测试集A榜的计算结果,管理系统会及时更新各队伍的最新排名情况。测试集A榜不计入比赛最终成绩(即B榜成绩)。
  • B榜阶段
  •   B榜阶段会提供B榜测试数据集下载,供参赛选手提交评测结果,参与最终排名与评奖。B榜阶段提交规范和A榜阶段保持一致。同样请注意,验证集和测试集A不可用于模型训练阶段。
      B榜阶段允许参赛队伍每天至多向天池平台提交5次实时结果评测,每小时更新排行榜,按照评测指标从高到低排序。排行榜将选择参赛队伍在本阶段的历史最优成绩进行排名展示。
  • 获奖队伍材料提交(供资格审查,符合要求后颁发奖项和奖金)
  •   对PromptCBLUE的两个赛道的前五名获奖参赛选手需额外提交相关材料以供资格审查:
       1. 测试集结果文件,包含test_predictions.json文件,post_generate_process.py文件的test_predictions.zip文件。
       2. 由于本次评测允许参赛选手在测试集预测时对prompt进行扩充,获奖队伍需要提交每个测试集样本预测时的完整prompt,供组织方审核验证。
       3. 对“参数高效微调赛道”的参赛选手,需要提交:模型实现代码, 所使用的开源模型名称。参数高效微调模块的完整文件或者下载地址。对“不微调赛道”的参赛选手,需要提交:模型实现代码, 所使用的开源模型名称。若使用了辅助句子表征模型,则需要提供完整模型文件。
       4. 模型实现的方法描述文档。
       5. 每个赛道的前三名获奖队伍撰写的评测论文将会由CHIP-2023会议统一安排发表。
  • 获奖队伍材料提交方式
  •   将提交材料文件在任务提交截止日期前发送至邮箱 wzhu@stu.ecnu.edu.cn 。邮件的标题为:“CHIP2023-参赛队名称”,例如“CHIP2023-PromptCBLUE小分队”。代码及其文档需打包成一个文件(tar,zip,gzip,rar等均可),作为邮件附件传送,要求提交所有的程序代码及相关的配置说明,程序应当可以运行,可以供组织者验证。对于大型模型文件或者数据文件,可以在邮件中注明下载链接。

    6. 赛事交流与通知
                      钉钉群二维码       微信群二维码
    sponsors sponsors

    7. 评测规则
    1.PromptCBLUE-v2评测完全依托于开源大模型社区,参赛选手必须从以下开源大模型中选择一个进行参赛
       (1) [ChatGLM-6B-2]( https://huggingface.co/THUDM/chatglm2-6b );
       (2) [Baichuan-13B-Chat]( https://huggingface.co/baichuan-inc/Baichuan-13B-Chat );
       (3) [Chinese-LlaMA2-7B-chat]( https://huggingface.co/michaelwzhu/Chinese-LlaMA2-chat-7B-sft-v0.3 );
       (4) [Chinese-LlaMA2-13B-chat]( https://huggingface.co/michaelwzhu/Chinese-LlaMA2-13B-chat ).
    2.针对"不微调赛道"的规则:
      (1) 在不微调赛道,参赛选手需要保持模型在huggingface网站上下载得到的参数,不能对开源大模型进行任何形式的微调,也不能在大模型上添加任何参数。
      (2) 选手可以通过扩展提示内容或者从训练集中选择示例等方式来增强模型表现,但不能更改或者删减指令的内容。允许的指令扩充包括:示例(demonstrations),也可以是选手书写的对任务/标注规范的额外说明,也可以是对输出格式的说明或规定。demonstrations中的样例必须来源于PromptCBLUE官方提供的训练集。 例如:测试样本指令为`血片吉姆萨或瑞氏染色后直接镜检可对疟疾、 梨浆虫病或回归热做出诊断。\n这个句子里面实体有哪些?\n实体选项:疾病,药物,医疗程序\n答:`, 选手可以根据训练集样本扩充指令为`实体意义解释:\n医疗程序实体:xxx\n疾病: xxx\n药物实体:xxx\n\n示例1:\n 问:下面对话中的医学检查检验,症状实体有哪些?\n这孩子应该到医院进行血常规的检查,明确一下病毒感染还是细菌感染\n答:上述句子中的实体包含:\n医学检查检验实体:血常规\n症状实体:病毒感染,细菌感染\n\n问:血片吉姆萨或瑞氏染色后直接镜检可对疟疾、梨浆虫病或回归热做出诊断。\n这个句子里面实体有哪些?\n实体选项:疾病,药物,医疗程序\n答:`;
      (3) 选手可以微调一个参数不超过1.5亿的句子表征模型作为辅助,帮助其针对每个不同的测试样本,在训练集中进行demonstrations选择;
      (4) 在A榜,B榜测试集预测时,选手不能将LLM多次生成的结果进行集成(类似于self-consistency的方法),提交的每个测试样本预测结果必须是LLM单次回复生成的。
    3.针对"参数高效微调赛道"的规则:
      (1) 在参数高效微调赛道,参赛选手需要保持大模型主干模型在huggingface网站上下载得到的参数不变;
      (2) 选手可以在开源的大模型主干之上添加参数高效微调模块(添加的额外参数量不得高于大模型主干参数量的1%), 且只能微调参数高效微调模块,不得微调大模型主干,且只能使用一组参数高效微调模块完成所有的任务;
      (3) 选手可以通过扩展提示内容或者从训练集中选择示例等方式来增强模型表现,但不能更改或者删减指令的内容。允许的指令扩充包括:示例(demonstrations),也可以是选手书写的对任务/标注规范的额外说明,也可以是对输出格式的说明或规定。demonstrations中的样例必须来源于PromptCBLUE官方提供的训练集。 例如:测试样本指令为`血片吉姆萨或瑞氏染色后直接镜检可对疟疾、 梨浆虫病或回归热做出诊断。\n这个句子里面实体有哪些?\n实体选项:疾病,药物,医疗程序\n答:`, 选手可以根据训练集样本扩充指令为`实体意义解释:\n医疗程序实体:xxx\n疾病: xxx\n药物实体:xxx\n\n示例1:\n 问:下面对话中的医学检查检验,症状实体有哪些?\n这孩子应该到医院进行血常规的检查,明确一下病毒感染还是细菌感染\n答:上述句子中的实体包含:\n医学检查检验实体:血常规\n症状实体:病毒感染,细菌感染\n\n问:血片吉姆萨或瑞氏染色后直接镜检可对疟疾、梨浆虫病或回归热做出诊断。\n这个句子里面实体有哪些?\n实体选项:疾病,药物,医疗程序\n答:`;
      (4) 本赛道选手不得借助额外的模型帮助其在训练集中进行demonstrations选择;
      (5) 在A榜,B榜测试集预测时,选手不能将LLM多次生成的结果进行集成(类似于self-consistency的方法),提交的每个测试样本预测结果必须是LLM单次回复生成的;
      (6) 评测参与者可以使用任何开源资源进行模型参数高效微调,但需要在材料提交时注明其训练数据来源。
    4.天池平台参赛规则:
      (1) 参赛选手需在注册时进行实名认证,且需要确保提交信息准确有效,所有的比赛资格及奖金支付均以提交信息为准;
      (2) 参赛选手报名后可在“我的团队”页面组队。每支队伍需指定一名队长,队伍成员总数最多不超过4人;报名截止日期之后不允许更改队伍成员名单,请谨慎选择队员组队。每名参赛选手只能参加一支队伍,一支队伍可以既参加PromptCBLUE-v2评测的“不微调赛道”也可以参加“参数高效微调赛道”。 但是在评选奖励时,一只队伍只能选择一个赛道参与评奖;
      (3) 队伍名的设定不得违反中国法律法规或社会公序良俗,且参赛队伍命名中不可出现“官方”,“天池”等字样。若命名违规的队伍在收到比赛主办方警告后仍未修改队伍名称,比赛主办方有权解散该队伍;
      (4) 每名参赛选手只能参加一支队伍,一旦发现某选手以注册多个账号的方式参加多支队伍,将取消相关队伍的参赛资格;
      (5) 参赛队伍可在参赛期间随时上传测试集的预测结果,阿里天池平台A榜阶段每天可提交3次、B榜阶段每天可提交5次,系统会实时更新当前最新榜单排名情况,严禁参赛团队注册其它账号多次提交;
      (6) 验证集(包括采用验证集进行各种数据扩充操作后得到的数据)不可以用作模型训练。测试集A(包括采用测试集A进行各种数据扩充操作后得到的数据)也不可以参与模型训练。违反此规定将会直接导致参赛团队失去参赛资格和评奖资格;
      (7) 要求最终结果排名前3的队伍按照”获奖队伍材料提交”部分的要求进行材料提交,供比赛组织方进行审核验证。参与评奖时,一只队伍只能选择PromptCBLUE-v2的其中一个赛道参与评奖。参赛团队需保证提交作品的合规性,若出现下列或其他重大违规的情况,将取消参赛团队的参赛资格和成绩,获奖团队名单依次递补。重大违规情况如下:
       1)使用小号、串通、剽窃他人未公开的代码等涉嫌违规、作弊行为;
       2)团队提交的材料内容不完整,或提交任何虚假信息,或者是无法复现预测结果;
       3)参赛团队无法就提交材料的疑义进行足够信服的解释说明。

    8. 任务组织者和联系人
  • 任务组织
  •   朱威, 华东师范大学, wzhu@stu.ecnu.edu.cn
      陈漠沙,中国中文信息学会生物与医疗信息处理专业委员(本工作在阿里巴巴工作期间完成), cms914@gmail.com
      王晓玲, 华东师范大学, xlwang@cs.ecnu.edu.cn
  • 任务组织
  •   陈亮, 复旦大学附属华山医院
      黄萱菁,复旦大学
      贺樑,华东师范大学
      杨晓春,东北大学
      汤步洲, 哈尔滨工业大学(深圳)&鹏城实验室
      王昊奋,同济大学