12. BianQue —— 中文医疗对话模型扁鹊(BianQue)

    项目简介

    基于主动健康的主动性、预防性、精确性、个性化、共建共享、自律性六大特征,华南理工大学未来技术学院-广东省数字孪生人重点实验室开源了中文领域生活空间主动健康大模型基座ProactiveHealthGPT,包括:

    项目的目标是,生活空间主动健康大模型基座ProactiveHealthGPT可以帮助学术界加速大模型在慢性病、心理咨询等主动健康领域的研究与应用。

    项目生活空间健康大模型扁鹊(BianQue)是其中专注于中文医疗健康对话的大模型。

    项目于2023年4月发布,发布了1.0版本及2.0版本。

    论文及源码

    尚未看到相关论文。

    源码:

    https://github.com/scutcyr/BianQue

    https://huggingface.co/scutcyr/BianQue-2

    https://huggingface.co/scutcyr/BianQue-1.0

    数据集构建

    项目组研究发现,在健康领域,用户通常不会在一轮交互当中清晰地描述自己的问题,而当前常见的开源医疗问答模型(例如:ChatDoctor、本草(HuaTuo,原名华驼 )、DoctorGLM、MedicalGPT-zh)侧重于解决单轮用户描述的问题,而忽略了“用户描述可能存在不足”的情况。哪怕是当前大火的ChatGPT也会存在类似的问题:如果用户不强制通过文本描述让ChatGPT采用一问一答的形式,ChatGPT也偏向于针对用户的描述,迅速给出它认为合适的建议和方案。

    然而,实际的医生与用户交谈往往会存在“医生根据用户当前的描述进行持续多轮的询问”。并且医生在最后根据用户提供的信息综合给出建议,如下图所示。可以把医生不断问询的过程定义为询问链(CoQ, Chain of Questioning),当模型处于询问链阶段,其下一个问题通常由对话上下文历史决定。

    项目组结合当前开源的中文医疗问答数据集(MedDialog-CNIMCS-V2CHIP-MDCFNPCMedDGcMedQA2Chinese-medical-dialogue-data),分析其中的单轮/多轮特性以及医生问询特性,结合实验室长期自建的生活空间健康对话大数据,构建了千万级别规模的扁鹊健康大数据BianQueCorpus。对话数据通过“病人:xxx\n医生:xxx\n病人:xxx\n医生:”的形式统一为一种指令格式,如下图所示。

    input: “病人:六岁宝宝拉大便都是一个礼拜或者10天才一次正常吗,要去医院检查什么项目\n医生:您好\n病人:六岁宝宝拉大便都是一个礼拜或者10天才一次正常吗,要去医院检查什么项目\n医生:宝宝之前大便什么样呢?多久一次呢\n病人:一般都是一个礼拜,最近这几个月都是10多天\n医生:大便干吗?\n病人:每次10多天拉的很多\n医生:”

    target: “成形还是不成形呢?孩子吃饭怎么样呢?”

    训练数据当中混合了大量target文本为医生问询的内容而非直接的建议,这将有助于提升AI模型的问询能力。

    模型训练

    扁鹊2.0是基于扁鹊健康大数据BianQueCorpus, 在ChatGLM-6B基础上,经过全量参数的指令微调训练得到了新一代BianQue【BianQue-2.0】( 扁鹊1.0采用了ClueAI/ChatYuan-large-v2作为基准模型)。扁鹊-2.0扩充了药品说明书指令、医学百科知识指令以及ChatGPT蒸馏指令等数据,强化了模型的建议与知识查询能力。以下为两个测试样例。

    项目中并没有给出模型训练的训练脚本,但给出了已训练好的模型,并且给出了如何运用已训练好的模型进行推理infer测试的程序及依赖环境。

    与其它项目相比,项目给出了如何在Windows环境下,进行模型推理应用的配置说明。

    开放程度

    项目仅给出了已微调的扁鹊模型及如何使用的代码,对于所使用的BianQueCorpus数据集及如何进行模型微调训练,并没有给出具体的代码,是一种应用层面的开放。

    与其它医疗大模型一样,相关资料仅用于非商业研究使用。