SuperAPI AI 工具集

CareGPT

CareGPT(关怀GPT)是一个开源医疗大语言模型项目,原名CareLlama,由澳门理工大学应用科学学院硕士研究生王荣胜、周瑞哲、陈浩铭完成,指导老师为檀韬副教授和王亚鹏副教授。该项目整合了数十个公开可用的医疗微调数据集与开放医疗大语言模型,覆盖LLM训练、测评、部署全流程。项目支持LLaMA、LLaMA-2全系列模型训练,支持LoRA、QLoRA及后续PPO、DPO强化学习训练,并支持ChatGPT fine-tuning、ChatGPT-Next-Web和Gradio部署。项目开源了超过60个医院科室的导诊材料信息,并开发了支持GPT-4/ChatGPT模型蒸馏医学数据的工具。在CMB榜单评测中,其IvyGPT领先ChatGPT及一众开源医学LLM。基于自有数据集训练并开源了多个医疗LLM供直接下载体验。项目遵循MIT License,相关资源仅供学术研究使用。

访问官网

工具介绍

CareGPT(关怀GPT):医疗LLM,开源驱动,共创健康未来。该项目是一个医疗大语言模型,同时集合了数十个公开可用的医疗微调数据集和开放可用的医疗大语言模型,包含LLM的训练、测评、部署等,以促进医疗LLM快速发展。项目原名CareLlama,是MPU医疗大语言模型IvyGPT的分支,存在意义是探索医疗数据、医疗LLM训练与部署相关的工作研究。

用途 本工作由澳门理工大学应用科学学院硕士研究生王荣胜、周瑞哲、陈浩铭完成,指导老师为檀韬副教授和王亚鹏副教授。工作(IvyGPT)已被CMB论文引用,相关论文已提交至NAACL。项目参与医学LLM的CMB榜单评测-IvyGPT,在测试中领先ChatGPT及一众开源医学LLM。项目已被收录到机器之心SOTA库,获得周热榜,并参与Backdrop Build V2活动;参与百川智能携手亚马逊云科技黑客松竞赛,获得全国总决赛季军。

主要能力

  1. 训练支持:支持LLaMA、LLaMA-2全系列模型训练;支持LoRA、QLoRA,包括后续PPO、DPO强化学习训练;添加ChatGPT fine-tuning实现,推荐有额度的朋友在ChatGPT上进行微调实验。
  2. 部署支持:支持ChatGPT-Next-Web部署微调的模型;支持Gradio部署微调的模型。
  3. 数据集与资源:聚合了丰富的开源医学LLM、LLM训练的医学数据、LLM部署资料、LLM测评以及相关LLM的资源整理。开源了超过60个医院科室的导诊材料信息;开发了支持GPT-4/ChatGPT模型蒸馏医学数据的工具,能够批量生成各种用于构建知识库和微调的数据。
  4. 开源模型:基于自有数据集在不同基座LLM上训练开源了多个医疗LLM,可直接下载体验。

数据集 项目列出了大量医学训练数据集,包括:LLM-Pretrain-FineTune/data_pretrain、MedicalGPT/pretrain、TCM-Ancient-Books(近700项中医药古籍文本)、epfl-llm/guidelines、icliniq-10k(en)、HealthCareMagic-100k(en)、ShenNong_TCM_Dataset、ChatMed_Consult_Dataset、Chinese-medical-dialogue-data、LLM-Pretrain-FineTune/data_sft、Medical-Dialogue-System、HuatuoGPT-sft-data-v1、MedicalGPT/finetune、shibing624/medical、Zhongjing/sft、huatuo_encyclopedia_qa、Med-ChatGLM/data、GenMedGPT-5k(en)、Alpaca-CoT(general)、HuatuoGPT2_sft_instruct、FreedomIntelligence/Medbase_data、openmedlab/Awesome-Medical-Dataset、MedicalGPT/reward、comparison_gpt4_data等。

使用方式 如需使用自定义数据集,须在dataset_info.json文件中以指定格式提供数据集定义,其中prompt和response列应当是非空的字符串,query列的内容将会和prompt列拼接作为模型输入,history列应当是一个列表,其中每个元素是一个字符串二元组,分别代表用户请求和模型答复。项目给出了PT example data(.txt格式,一行一个无监督数据)、SFT example data 1、SFT example data 2、RW example data等示例格式。ChatGPT-Next-Web部署方式:安装并打开Next,然后打开设置,修改接口地址为http://127.0.0.1:8000/(即API接口地址),然后即可使用。LLaMA模型需转为HF格式,LLaMA-2若下载为HF格式则不需要转化。需查看显卡是否为NVLINK连接,NVLINK连接才能有效使用accelerate进行并行加速训练。实验评估使用BLEU和ROUGE_CHINESE;在4/8-bit评估时,推荐使用--per_device_eval_batch_size=1和--max_target_length 128。

适用场景 项目相关资源仅供学术研究之用,严禁用于商业用途。使用涉及第三方代码的部分时,请严格遵循相应的开源协议。

限制与注意事项 项目明确指出:在CareGPT中并未对分词模型进行中文分词的添加和重新训练,但效果依旧表现可喜;全流程的LLM训练包括预训练、监督微调、奖励模型、强化学习,多数情况下监督微调即可满足自身需求;在算力充足情况下推荐使用医疗数据和通用语料数据进行训练;不要指望一个医疗LLM就可以满足所有需求,合理做法可能是实时更新的知识库+微调的医疗LLM(如ChatLaw)。模型生成的内容受模型计算、随机性和量化精度损失等因素影响,本项目无法对其准确性作出保证。即使本项目模型输出符合医学事实,也不能被用作实际医学诊断的依据。对于模型输出的任何内容,本项目不承担任何法律责任,亦不对因使用相关资源和输出结果而可能产生的任何损失承担责任。此存储库遵循MIT License。

项目还整理了关于预训练、监督微调、数据质量等方面的经验方法论,例如:数据质量 > 数量;大规模预训练+小规模监督微调=超强的LLM模型;通常lora与full-tuning有不可忽略的性能差异(如LoRA results in 4-6% lower performance compared to full fine-tuning);7B系列模型请优先采用全参数微调方式,13B及以上参数模型可使用LoRA、QLoRA等方法;QLoRA以运行时间增长39%的代价,节省了33%的内存等。根据NeurIPS workshop的建议,截止2023年12月18日,微调模型建议选型为英文10B以下选择Mistral-7B,中文10B以下选择Yi-6B,10B以上选择Qwen-14B和Yi-34B。