HuatuoGPT
HuatuoGPT(华佗 GPT)是一款专为中文医疗咨询场景打造的大语言模型,旨在成为专业且亲切的"AI 医生”。它主要解决了当前线上及医院中大量基础医疗咨询需求与医生精力有限之间的矛盾,通过提供快速、准确的初步建议,帮助释放医护人员时间以专注于复杂病例,同时降低了患者获取健康信息的门槛。
该项目非常适合医疗 AI 研究人员、开发者以及需要构建垂直领域应用的技术团队使用。普通用户也可通过其在线演示体验智能问诊服务,或参考其公开数据了解医疗大模型的能力边界。
HuatuoGPT 的核心亮点在于其独特的混合训练数据策略:它不仅利用了从 ChatGPT 蒸馏出的 6 万余条自指令数据,还融合了近 7 万条来自真实医生的临床问答记录。这种“虚实结合”的方式,既赋予了模型专业的医学逻辑,又保留了贴近患者语言的沟通风格。此外,项目开源了包括 7B 和 13B 参数版本的模型权重、完整的微调数据集以及专门的医疗评估基准,为社区构建更安全、可靠的医疗大模型提供了坚实基础。需要注意的是,尽管模型表现优异,但在实际诊疗中仍需谨慎评估,确保患者安全。
使用场景
某三甲医院互联网诊疗中心正面临大量重复性轻症咨询,导致资深医生难以集中精力处理复杂病例。
没有 HuatuoGPT 时
- 响应延迟严重:患者询问“糖尿病合并高血压该吃什么药”等常见问题时,需排队等待人工回复,平均耗时超过 30 分钟,易引发焦虑。
- 医生精力分散:资深医师被迫花费大量时间回答基础科普和常规用药指导,无法专注于疑难杂症的诊断与治疗方案制定。
- 回答标准不一:不同医生对同一症状的解释口径存在差异,且繁忙时容易遗漏关键的病史询问(如过敏史、家族史),存在医疗安全隐患。
- 夜间服务空白:非工作时段缺乏专业医疗人员值守,患者突发轻微不适时只能盲目搜索网络信息,极易被错误指南误导。
使用 HuatuoGPT 后
- 秒级精准响应:HuatuoGPT 基于真实医生语料训练,能立即针对“血糖 8.0、血压 160/90"的具体数值,给出包含病史评估、体格检查建议及用药方向的标准化回复。
- 释放核心人力:系统自动拦截并妥善处理 70% 以上的常见咨询,让医生仅复核高风险案例,显著提升了团队处理重症的效率。
- 诊疗逻辑严谨:模型内置了类似真人的问诊思维链,主动引导患者补充既往手术史、药物过敏史等关键信息,确保建议的专业性与安全性。
- 全天候专业值守:依托 HuatuoGPT-13B 的强大能力,医院实现了 24 小时不间断的高质量医疗咨询服务,填补了夜间专业指导的空白。
HuatuoGPT 通过将通用大语言模型驯化为具备医生思维的专业助手,在保障患者安全的前提下,有效缓解了医疗资源供需矛盾。
运行环境要求
- 未说明
- 必需
- 基于 LLaMA (13B) 和 Baichuan (7B) 架构,运行 HuatuoGPT-13B 建议显存 24GB+ (如 A10/A100/RTX 3090),运行 HuatuoGPT-7B 建议显存 16GB+
- 需支持 CUDA 的 NVIDIA GPU
未说明 (建议系统内存大于模型显存需求,通常 32GB+)

快速开始
华佗GPT,迈向驯服语言模型成为医生
✨ 最新消息
- [2023年12月11日]: 🎉🎉🎉 我们的论文已被EMNLP 2023接收!请在此查看链接。
⚡ 简介
欢迎来到HuatuoGPT仓库,这是一个基于海量中文医学语料训练的大规模语言模型(LLM)。我们开发HuatuoGPT的目标是构建一个更专业的“ChatGPT”,用于医疗咨询场景。
以下是已发布的资源列表:
- HuatuoGPT-SFT-data:一种混合式监督微调数据集,结合了两种优势,使模型兼具医生的专业性和对患者的友好性。
- HuatuoGPT模型:包括HuatuoGPT-7B和HuatuoGPT-13B的模型权重,以及在线演示。HuatuoGPT-7B基于Baichuan-7B训练,而HuatuoGPT-13B则基于Ziya-LLaMA-13B-Pretrain-v1训练。
- 医疗评估基准:一种用于评估LLM在医疗场景中表现的评测方法。
💭 动机
- 为了解决线上和医院中日益增长的快速医疗咨询需求——这些需求并不一定需要深厚的医学知识。我们相信,像HuatuoGPT这样的LLM可以有效地满足这些需求,从而让医生有更多时间和精力处理更复杂的病例。
- 为了提供开放的医疗LLM训练数据。构建高质量的指令型训练数据对于LLM至关重要,但同时也颇具挑战性。我们通过多种方法构建了医疗指令数据,并将其公开共享。该数据集可与其他数据集结合使用,以训练属于自己的医疗版“ChatGPT”。
- 强调在将医疗LLM用于患者医疗服务之前,必须谨慎评估其能力的重要性。我们认识到LLM在医疗领域的潜在益处,但也意识到需要进行彻底的评估和测试,以确保患者安全和诊断准确性。
📚 数据
概述
为了充分利用来自ChatGPT的提炼数据和来自医生的真实世界数据的优势,我们首先使用四种类型的数据对HuatuoGPT进行了微调:
| 类型 | 规模 | 描述 | 示例 |
|---|---|---|---|
| 来自ChatGPT的提炼指令 | 61,400 | 通过自我指令生成的医疗指令。种子指令由我们手动编写。 | 💬:现在该做什么准备手术前的身体检查? 👨⚕️:在准备手术前的身体检查中,需要进行以下几个步骤: 1. 了解病人的病史:了解病人的病史,包括既往病史、手术史、药物过敏史、家族病史等,以便评估手术风险和制定手术方案。 2. 进行体格检查:进行全面的体格检查,包括测量身高、体重、血压、心率、呼吸… |
| 来自医生的真实指令 | 69,768 | 真实场景中的单轮医疗咨询,其中医生的回答更加具体,能够直接回应用户的医疗问题。 | 💬:我有糖尿病血压160-90.该吃什么降压药?空腹血糖8左右。餐后11左右。我有糖尿病血压160-90.该吃什么降压药? 👨⚕️:阅读你的提问描述,综合分析症状,体征,糖尿病,血压160-90.血压略高,空腹血糖8左右。餐后11左右。血糖略高。口服依那普利,二甲双胍片治疗,新近研究,二甲双胍片,可以抑制食欲,促进肠道蠕动,预防癌症,预防心脑血管病,延长寿命作用。 |
| 来自ChatGPT的提炼对话 | 68,888 | 使用两个ChatGPT模拟患者和医生角色创建的多轮医疗对话。这些对话基于真实的患者病例及其对应的治疗方案。 | 💬:User: 我想问一下大夫,我发烧三天后,第四天全身起了疹子,是怎么回事呢? 👨⚕️:~您好!感谢您的提问。您的症状可能与幼儿急疹相关。幼儿急疹是一种常见的儿童病,病因为人类疱疹病毒6型或7型感染引起。它的症状包括: 1. 发热 n2. 全身起红色疹子 3. 口腔内及咽喉部有小水泡 4. 病程一般为3-5天左右... 💬:谢谢大夫!除了幼儿急疹还有其他可能吗?我之前有感冒,这和疹子有关系吗? 👨⚕️:除了幼儿急疹,病毒性感冒和其他病毒感染也有可能引起疹子,但这种情况相对较少见。在您的情况下,感冒可能是一种诱发因素,但主要还是由病毒感染引起的疹子... |
| 来自医生的真实对话 | 25,986 | 真实场景中的多轮医疗对话。这些对话包含医生的多轮提问以及患者的持续追问。 | 💬:额头下巴下长满痘痘。就是不知道. 👨⚕️:你好,有什么困扰吗?我可以为你提供帮助。请问您平时的饮食习惯、睡眠和护肤习惯怎样?化妆品和防晒霜的使用频率如何?还有洁面的频次是怎样的呢? 💬:平时我基本上只是用水乳霜,然后洗面奶只用一种。日常防晒只有在夏天时会使用,我一般用悦诗风吟的洗面奶以及AHC的护肤产品,这些都比较温和。 👨⚕️:谢谢您的描述。首先,建议您停用化妆品和普通护肤品,使用特定的药妆品牌,如雅漾和理肤泉的洁面泡沫或洁面乳,并避免使用热水或肥皂清洗面部。建议您外用阿达帕林凝胶涂于面部痤疮,一般夜间使用,涂抹十五分钟之后外用医学护肤品比如雅漾、薇资、理肤泉清爽型的舒缓面霜,或者是维生素e乳膏… |
下载
- HuatuoGPT-sft-data-v1: 用于HuatuoGPT监督微调阶段的数据。
👨⚕️ 模型
模型访问
| 模型 | 后端 | 链接 |
|---|---|---|
| HuatuoGPT-13B | Ziya-LLaMA-13B-Pretrain-v1 | Delta |
| HuatuoGPT-7B | Baichuan-7B | 模型权重 |
请注意,由于HuatuoGPT-13B-delta是基于LLaMA的模型,我们仅发布了权重的增量部分。您可以下载LLaMA-13B的权重,并使用apply_delta.py脚本来进行转换:
python apply_delta.py \
--base-model-path $LLaMA_Base_Path \
--target-model-path $Save_Path \
--delta-path $Delta_Path
部署
首先,您需要安装所有必要的软件包:
pip install -r requirements.txt
请确保您已下载我们的模型权重,然后运行:
python huatuo_cli_demo_stream.py --model-name $model_dir
🚀 演示
您可以在https://www.huatuogpt.cn/体验我们的模型。请注意,目前仍在开发中。
🧐 评估
GPT-4与医生的评估
我们邀请GPT-4和医生对华佗GPT(13B版本)及其他大语言模型的回答进行比较。评估数据可在eval/文件夹中找到。结果如下:
- 单轮评估
- 多轮评估
基准评估
| 数据集 | 模型 | BLEU-1 | BLEU-2 | BLEU-3 | BLEU-4 | GLEU | ROUGE-1 | ROUGE-2 | ROUGE | Distinct-1 | Distinct-2 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| cMedQA2 | T5微调版 | 20.88 | 11.87 | 7.69 | 5.09 | 7.62 | 27.16 | 9.30 | 20.11 | 0.41 | 0.52 |
| 华佗GPT | 27.39 | 14.38 | 8.06 | 4.55 | 8.52 | 29.26 | 8.02 | 15.46 | 0.74 | 0.93 | |
| WebMedQA | T5微调版 | 21.42 | 13.79 | 10.06 | 7.38 | 8.94 | 31.00 | 13.85 | 25.78 | 0.37 | 0.46 |
| 华佗GPT | 24.85 | 13.42 | 7.72 | 4.51 | 7.50 | 28.30 | 7.72 | 14.50 | 0.73 | 0.93 | |
| 华佗-26M | T5微调版 | 26.63 | 16.74 | 11.77 | 8.46 | 11.38 | 33.21 | 13.26 | 24.85 | 0.51 | 0.68 |
| 华佗GPT | 27.42 | 14.84 | 8.54 | 4.96 | 8.01 | 29.16 | 8.29 | 15.84 | 0.74 | 0.93 |
⚒️ 训练
准备数据
您可以从HuatuoGPT-sft-data-v1下载SFT数据,或按照相同的数据格式构建您自己的SFT数据。
训练
您可以通过以下命令训练模型:
accelerate launch \
--config_file scripts/sft.yaml \
--num_processes 8 \
--num_machines 1 \
--machine_rank 0 \
--deepspeed_multinode_launcher standard scripts/finetune.py \
--experiment_name HuatuoGPT \
--model_path /path/to/your/model \
--gradient_accumulation_steps 8 \
--max_ckpts 3 \
--max_seq_len 2048 \
--data_dir /path/to/your/data \
--output_dir ./ckpts \
--log_dir ./train_logs \
--n_epochs 3 \
--train_bsz_per_gpu 2 \
--eval_bsz_per_gpu 2 \
--learning_rate 5e-5 \
--eval_step -1 \
--save_step -1 \
--gradient_checkpointing
🤖 局限性
我们开发华佗GPT的目标是满足快速医疗咨询的需求,而非取代医生或为患者提供全面的医疗服务。然而,我们的模型仍存在一些局限性,需要予以重视:
- 理解偏差:与所有语言模型一样,尤其是在处理医学术语或复杂病情时,存在理解偏差或误读的风险。在这种情况下,我们的模型可能会给出错误的答案。
- 幻觉现象:大型语言模型有时会生成不合逻辑或与输入完全无关的回答。这种“幻觉”现象在用户不熟悉讨论内容时尤为棘手,因为他们可能难以识别模型输出中的错误。这些“幻觉”往往难以被发现和避免。
- 偏见问题:大语言模型基于大规模数据集进行训练,这可能导致模型响应中无意间引入偏见。此外,还需注意避免利用该模型延续医疗领域的偏见。
致谢
我们深知,我们的工作受到以下研究的启发,包括但不限于:
- IDEA-CCNL/Ziya-LLaMA-13B-Pretrain-v1: https://huggingface.co/IDEA-CCNL/Ziya-LLaMA-13B-Pretrain-v1
- 百川-7B: https://huggingface.co/baichuan-inc/baichuan-7B
- LLaMA: https://arxiv.org/abs/2302.13971
- Self-instruct: https://github.com/yizhongw/self-instruct
若没有这些工作,本仓库中的任何成果都不可能实现。
引用
@article{huatuogpt-2023,
title={HuatuoGPT, Towards Taming Language Models To Be a Doctor},
author={Hongbo Zhang and Junying Chen and Feng Jiang and Fei Yu and Zhihong Chen and Jianquan Li and Guiming Chen and Xiangbo Wu and Zhiyi Zhang and Qingying Xiao and Xiang Wan and Benyou Wang and Haizhou Li},
journal={arXiv preprint arXiv:2305.15075},
year={2023}
}
我们来自香港中文大学深圳分校数据科学学院及深圳市大数据研究院。
星标历史
常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
awesome-machine-learning
awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。