评测一: CHIP-PromptCBLUE医疗大模型评测任务
1. 任务描述/任务详情
为推动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优化,参数高效微调等不同的大模型技术。评测完全依托于开源大模型社区,考察选手对大模型推理和微调技术的创新探索和应用能力。
本任务原本是标准的医学文本NER任务,选手需要给出医学实体mention在待抽取文本中的具体span位置。在PromptCBLUE中,本任务被改造为:根据指定的实体类型,
生成实体mention。 在评分时,我们只考虑实体mention及其类型标签,不再考虑span位置信息。
该任务原型是给定一诊断原词,要求给出其对应的诊断标准词,而诊断标准词是从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. 评测细则
本次评测数据分为两次发布:
发布训练集和验证集,A榜测试集(即测试集A)。同时发布baseline代码和模型,供选手快速上手。测试集A不包含答案,选手需要在测试集A上进行预测,提交至评测平台上获得得分, 即A榜得分。
发布B榜测试集,即测试集B。最终评测排名将仅依据B榜结果。B榜评测的开放时间为: 10月12日开始,到10月12日17: 59: 59截止。
PromptCBLUE中将各个任务都已经转化为了根据prompt生成回复的统一格式,测试样本在test.json文件中,这个文件采用json line格式,每行是一个可json化的字符串,json化后"input"字段作为LLM输入,"target"字段为空字符串,待选手们填入模型回复。
为完成测试集提交和获得评测得分,参与者需要提供三个文件:
python post_generate_process.py test_predictions.json test_structured.json
{
"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库
。
本评测任务只有一个测试集,但是其包含多个任务的测试样本,我们采用在各个任务上分别计分的方式进行评测。各个任务上的评测指标如下:
上述任务中,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榜阶段允许参赛队伍每天至多向天池平台提交3次结果,排名实时更新。参赛队伍可在测试A榜截止之前,随时上传测试集A榜的计算结果,管理系统会及时更新各队伍的最新排名情况。测试集A榜不计入比赛最终成绩(即B榜成绩)。
B榜阶段允许参赛队伍每天至多向天池平台提交5次实时结果评测,每小时更新排行榜,按照评测指标从高到低排序。排行榜将选择参赛队伍在本阶段的历史最优成绩进行排名展示。
1. 测试集结果文件,包含test_predictions.json文件,post_generate_process.py文件的test_predictions.zip文件。
2. 由于本次评测允许参赛选手在测试集预测时对prompt进行扩充,获奖队伍需要提交每个测试集样本预测时的完整prompt,供组织方审核验证。
3. 对“参数高效微调赛道”的参赛选手,需要提交:模型实现代码, 所使用的开源模型名称。参数高效微调模块的完整文件或者下载地址。对“不微调赛道”的参赛选手,需要提交:模型实现代码, 所使用的开源模型名称。若使用了辅助句子表征模型,则需要提供完整模型文件。
4. 模型实现的方法描述文档。
5. 每个赛道的前三名获奖队伍撰写的评测论文将会由CHIP-2023会议统一安排发表。
6. 赛事交流与通知
钉钉群二维码 微信群二维码
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. 任务组织者和联系人
陈漠沙,中国中文信息学会生物与医疗信息处理专业委员(本工作在阿里巴巴工作期间完成), cms914@gmail.com
王晓玲, 华东师范大学, xlwang@cs.ecnu.edu.cn
黄萱菁,复旦大学
贺樑,华东师范大学
杨晓春,东北大学
汤步洲, 哈尔滨工业大学(深圳)&鹏城实验室
王昊奋,同济大学