17. PULSE中文医疗大模型 —— Pretrained and Unified Language Service Engine
项目简介
- 大规模训练:PULSE模型在OpenChineseLLaMA 13B模型的基础上, 使用约4,000,000个医学领域和通用领域的SFT数据进行进一步微调。
- 全面的医学自然语言处理任务:PULSE支持医学领域的各种自然语 言处理任务,包括健康教育、医师考试问题、报告解读、医疗记录结构化 以及模拟诊断和治疗。
已发布模型基于bloomz-7b1-mt进行微调。
模型于2023年6月发布,项目关联方包括上海人工智能实验室、上海交通大学-清源研究院及华东理工大学-自然语言处理与大数据挖掘实验室。
论文与源码
无相关论文。
相关代码及模型:
https://github.com/openmedlab/PULSE
https://huggingface.co/OpenMEDLab/PULSE-7bv5
数据集构建
项目仅仅提到使用约4,000,000个中文医学领域和通用领域的指令微调数据,并没有给出进一步的信息。
模型训练与评估
项目并没有提供模型训练细节,仅仅提及基于QLora进行微调。
项目在模型的效果评估方面,项目采用了QLoRA (https://arxiv.org/abs/2305.14314)推荐的比较普遍采用的Elo Rating tournament评测方法,基于ChatGPT4完成。
评估数据集包括(项目以json文件格式给出):
- MMedQA_Mainland: 从MedQA的Mainland/test子集中抽150条
- PromptCBLUE: 从PromptCBLUE的test子集中抽150条
- webMedQA: 从webMedQA的test子集中抽150条
在评估超参选择上,出于成本考虑,项目选择每个数据集进行360轮随机评估,随机选择模型PK的先后顺序以抵消先后顺序的影响,随机种子为:42。Elo rating的实现代码和其他超参参照Vicuna的Elo代码: K=8, init rating=1000。
项目给出了进行模型推理验证的脚本。
以下是项目模型的部分用例效果:
开放程度
项目在模型调优训练及所用数据集信息比较有限,提供了微调后的模型下载,对于有进一步使用及定制化的需要,项目组持开放态度。
与其它医疗大模型类似,强调了项目仅用于医疗领域研究目的。
项目在效果评价时,采用了Elo等级分评价方法,与其它通用大模型及中文医疗大模型进行对比实验,并且给出了评价的实现。
衍生生态应用
项目组同时也发布了一系列相关的项目,打造自己的生态应用体系。
- XrayPULSE
一款将医疗大语言模型PULSE与X-ray图像模型结合的应用,实现了多模态会话功能(在XRayGLM基础上)。
https://github.com/openmedlab/XrayPULSE - 知识库问答Medical_kb_Chatbot
一款基于PULSE开发的聊天机器人,用户可以自己添加相关知识库,以开发更丰富的应用场景。
https://github.com/JuneYaooo/medical_kb_chatbot - PULSE-COVID-19
一个基于PULSE微调且结合了广州实验室内部COVID-19知识数据库语料库的模型
https://github.com/openmedlab/PULSE-COVID-19 - 病历结构化llm_structure_tool
一个基于PULSE模型的结构化工具,旨在帮助用户处理和分析文本数据。它提供了单选、多选、信息提取等功能
https://github.com/JuneYaooo/llm_structure_tool - 术语归一化NormPULSE
一个基于PULSE模型的医疗术语归一化的应用,归一化的任务是将临床上同一种诊断、手术、药品、检查、症状等各种不同的说法对应到标准用词上。