MedicalGPT[1] 是一个开源项目,旨在辅助医疗领域大模型的训练。它具备以下功能:
增量预训练:通过持续学习,提升模型对医疗数据的理解。
有监督微调:利用标注数据对模型进行精确调整,以适应特定医疗任务。
RLHF:结合奖励建模和强化学习训练,优化模型的决策过程。
DPO:直接偏好优化,确保模型的输出更符合用户期望。
近期热文
当 AI 遇上爬虫:让数据提取变得前所未有的简单!
超强 OCR 神器:支持批量 OCR、文档识别、公式识别,离线可用、完全免费!
2024 年最完整的 AI Agents 清单来了,涉及 13 个领域,上百个 Agents!
MedicalGPT 已发布的模型
shibing624/vicuna-baichuan-13b-chat 推理示例
MedicalGPT 特点
MedicalGPT 基于 ChatGPT 训练流程,实现了医疗行业语言大模型的训练:
阶段一(可选):增量预训练(Continue PreTraining),在海量领域文档数据上二次预训练 GPT 模型,以增强模型对特定领域数据的理解。
阶段二:有监督微调(Supervised Fine-tuning),构造指令微调数据集,在预训练模型基础上做指令精调,以对齐指令意图。在微调过程中,将特定领域的知识融入模型,使模型能够更好地适应特定行业的应用需求,增强其在该领域的专业性和实用性。
阶段三:
基于人类反馈对语言模型进行强化学习(Reinforcement Learning from Human Feedback):
奖励模型建模(Reward Model),构造人类偏好排序数据集,训练奖励模型,用来建模人类偏好。
强化学习(Reinforcement Learning),用奖励模型来训练 SFT 模型,SFT 模型在训练过程中,根据奖励或惩罚信号来调整其生成策略。通过不断学习和适应奖励反馈,模型学习生成更高质量的文本。最终目标是使模型生成的文本不仅质量高,而且更贴近人类的表达习惯和偏好。
直接偏好优化方法(Direct Preference Optimization),DPO 通过直接优化语言模型来实现对其行为的精确控制,而无需使用复杂的强化学习,也可以有效学习到人类偏好,DPO 相较于 RLHF 更容易实现且易于训练,效果更好。
不需要参考模型的优化方法,通过 ORPO,LLM 可以同时学习指令遵循和满足人类偏好。
MedicalGPT 快速上手
1.克隆项目
git clone https://github.com/shibing624/MedicalGPT
2.安装依赖
cd MedicalGPTpip install -r requirements.txt --upgrade
3.启动服务
MedicalGPT 提供了一个简洁的基于 gradio 的 Web 界面,启动服务后,可通过浏览器访问,输入问题,模型会返回答案。
CUDA_VISIBLE_DEVICES=0 python gradio_demo.py --model_type base_model_type --base_model path_to_llama_hf_dir --lora_model path_to_lora_dir
--model_type {base_model_type}:预训练模型类型,如llama、bloom、chatglm 等。
--base_model {base_model}:存放 HF 格式的 LLaMA 模型权重和配置文件的目录。
--lora_model {lora_model}:LoRA 文件所在目录,也可使用 HF Model Hub 模型调用名称。若 lora权重已经合并到预训练模型,则删除 --lora_model 参数。
--tokenizer_path {tokenizer_path}:存放对应 tokenizer 的目录。若不提供此参数,则其默认值与 --base_model 相同。
--template_name:模板名称,如 vicuna、alpaca 等。若不提供此参数,则其默认值是 vicuna。
--only_cpu: 仅使用 CPU 进行推理。
--resize_emb:是否调整 embedding 大小,若不调整,则使用预训练模型的 embedding 大小,默认不调整。
MedicalGPT 训练 Pipeline
chatpdf.py[2]:基于知识库文件的LLM问答功能(RAG)。
run_training_dpo_pipeline.ipynb[3]:完整 PT+SFT+DPO 全阶段串起来训练的 pipeline。
run_training_ppo_pipeline.ipynb[4]:完整 PT+SFT+RLHF 全阶段串起来训练的 pipeline。
支持的模型列表:
MedicalGPT 模型推理
训练完成后,运行以下脚本,即可加载训练好的模型,来验证模型生成文本的效果。
CUDA_VISIBLE_DEVICES=0 python inference.py \ --model_type base_model_type \ --base_model path_to_model_hf_dir \ --tokenizer_path path_to_model_hf_dir \ --lora_model path_to_lora \ --interactive
此外,也支持多卡推理:
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node 2 inference_multigpu_demo.py --model_type baichuan --base_model shibing624/vicuna-baichuan-13b-chat
MedicalGPT 更新记录
[2024/06/11] v2.1版本:支持了 Qwen-2 系列模型。
[2024/04/24] v2.0版本:支持了 Llama-3 系列模型。
[2024/04/17] v1.9版本:支持了 ORPO,详细用法请参照 run_orpo.sh。
[2024/01/26] v1.8版本:支持微调 Mixtral 混合专家 MoE 模型 Mixtral 8x7B。
[2024/01/14] v1.7 版本:新增检索增强生成(RAG)的基于文件问答 ChatPDF 功能,可以基于微调后的 LLM 结合知识库文件问答提升行业问答准确率。
https://github.com/shibing624/MedicalGPT
往期文章
开源流式数字人来了:实现音视频同步对话,基本可达商用效果!
PDF 转 Markdown 神器,精准且快速:支持 90 多种语言 OCR,还支持提取表格、图片和公式!
自动化爬虫神器:把网页转成大模型所需数据,助力 AI 应用与大模型训练全面优化!
Text2SQL 效果不好?不要错过这个神器!自带 RAG、复杂数据集准确度高,还能自训练模型
3 款强大的开源低代码 LLM 编排工具,可视化定制专属 AI Agent 和 AI 工作流!
25.4K Star 低代码LLM编排工具:终于支持 Multi Agent,内置 5 大 Multi Agent 开箱即用!
欢迎您与我交流 AI 技术/工具
关注 AI 真好玩,带你玩转各类 AI 工具,掌控数字未来!
如果这篇文章对您有所帮助,请点赞、关注,并分享给您的朋友。感谢您的支持!
参考资料
[1]
MedicalGPT: https://github.com/shibing624/MedicalGPT[2]
chatpdf.py: https://github.com/shibing624/MedicalGPT/blob/main/chatpdf.py[3]
run_training_dpo_pipeline.ipynb: https://github.com/shibing624/MedicalGPT/blob/main/run_training_dpo_pipeline.ipynb[4]
run_training_ppo_pipeline.ipynb: https://github.com/shibing624/MedicalGPT/blob/main/run_training_ppo_pipeline.ipynb