基于主动健康的主动性、预防性、精确性、个性化、共建共享、自律性六大特征, 华工未来技术学院-广东省数字孪生人重点实验室开源了中文领域生活空间主动健康大模型基座ProactiveHealthGPT, 包括:
我们期望, 生活空间主动健康大模型基座ProactiveHealthGPT 可以帮助学术界加速大模型在慢性病、心理咨询等主动健康领域的研究与应用. 本项目为 生活空间健康大模型扁鹊(BianQue) .
我们经过调研发现, 在健康领域, 用户通常不会在一轮交互当中清晰地描述自己的问题, 而当前常见的开源医疗问答模型(例如: ChatDoctor、本草(HuaTuo, 原名华驼 )、DoctorGLM、MedicalGPT-zh)侧重于解决单轮用户描述的问题, 而忽略了"用户描述可能存在不足"的情况. 哪怕是当前大火的ChatGPT也会存在类似的问题: 如果用户不强制通过文本描述让ChatGPT采用一问一答的形式, ChatGPT也偏向于针对用户的描述, 迅速给出它认为合适的建议和方案. 然而, 实际的医生与用户交谈往往会存在"医生根据用户当前的描述进行持续多轮的询问". 并且医生在最后根据用户提供的信息综合给出建议. 我们把医生不断问询的过程定义为 询问链(CoQ, Chain of Questioning) , 当模型处于询问链阶段, 其下一个问题通常由对话上下文历史决定.
我们结合当前开源的中文医疗问答数据集(MedDialog-CN、IMCS-V2、CHIP-MDCFNPC、MedDG、cMedQA2、Chinese-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模型的问询能力.
from modelscope.utils.constant import Tasks
from modelscope.pipelines import pipeline
pipe = pipeline(task=Tasks.chat, model='AI-ModelScope/BianQue-2', model_revision='v1.0.0')
# 单轮对话调用模型的chat函数
user_input = "我的宝宝发烧了,怎么办?"
input_text = "病人:" + user_input + "\n医生:"
result = pipe(input_text)
print(result)
# 多轮对话调用模型的chat函数
# 注意:本项目使用"\n病人:"和"\n医生:"划分不同轮次的对话历史
# 注意:user_history比bot_history的长度多1
user_history = ['你好', '我最近失眠了']
bot_history = ['我是利用人工智能技术,结合大数据训练得到的智能医疗问答模型扁鹊,你可以向我提问。']
# 拼接对话历史
context = "\n".join([f"病人:{user_history[i]}\n医生:{bot_history[i]}" for i in range(len(bot_history))])
input_text = context + "\n病人:" + user_history[-1] + "\n医生:"
result = pipe(input_text)
print(result)
本项目由华南理工大学未来技术学院 广东省数字孪生人重点实验室发起, 得到了华南理工大学信息网络工程研究中心支撑, 同时致谢合作单位广东省妇幼保健院、广州市妇女儿童医疗中心、中山大学附属第三医院等.
@article{chen2023bianque1,
title={BianQue-1.0: Improving the "Question" Ability of Medical Chat Model through finetuning with Hybrid Instructions and Multi-turn Doctor QA Datasets},
author={Yirong Chen and Zhenyu Wang and Xiaofen Xing and Zhipei Xu and Kai Fang and Sihang Li and Junhong Wang and Xiangmin Xu},
year={2023},
url={https://github.com/scutcyr/BianQue}
}