[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-shibing624--MedicalGPT":3,"tool-shibing624--MedicalGPT":62},[4,18,28,37,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},10095,"AutoGPT","Significant-Gravitas\u002FAutoGPT","AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台，核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点，让用户只需设定目标，AI 即可自主规划步骤、调用工具并持续运行直至完成任务。\n\n无论是开发者、研究人员，还是希望提升工作效率的普通用户，都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体；研究人员能基于开源架构探索多智能体协作机制；而非技术背景用户也可直接选用预置的智能体模板，立即投入实际工作场景。\n\nAutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑，每个块负责单一动作，灵活且易于调试。同时，平台支持本地自托管与云端部署两种模式，兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本，即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛，让人人都能成为 AI 的创造者与受益者。",183572,"2026-04-20T04:47:55",[13,36,27,14,15],"语言模型",{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":10,"last_commit_at":43,"category_tags":44,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",161147,"2026-04-19T23:31:47",[14,13,36],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":59,"last_commit_at":60,"category_tags":61,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,27],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":95,"forks":96,"last_commit_at":97,"license":98,"difficulty_score":10,"env_os":99,"env_gpu":100,"env_ram":101,"env_deps":102,"category_tags":114,"github_topics":115,"view_count":24,"oss_zip_url":80,"oss_zip_packed_at":80,"status":17,"created_at":123,"updated_at":124,"faqs":125,"releases":155},9958,"shibing624\u002FMedicalGPT","MedicalGPT","MedicalGPT: Training Your Own Medical GPT Model with ChatGPT Training Pipeline. 训练医疗大模型，实现了包括增量预训练(PT)、有监督微调(SFT)、RLHF、DPO、ORPO、GRPO。","MedicalGPT 是一套专为医疗领域打造的大语言模型训练框架，旨在帮助开发者低成本、高效率地构建专属的医疗 AI 助手。它完整复现了类 ChatGPT 的全流程训练管线，覆盖了从增量预训练、有监督微调，到基于人类反馈的强化学习（RLHF）及直接偏好优化（DPO、ORPO、GRPO）等关键阶段，有效解决了通用大模型在专业医疗场景中知识匮乏、回答不严谨以及难以对齐医生偏好等痛点。\n\n该项目特别适合人工智能研究人员、医疗科技公司的算法工程师以及希望深入探索垂直领域大模型训练的开发者使用。其核心技术亮点在于极高的灵活性与前沿性：不仅支持 Llama 3、Qwen 2.5\u002F3.5 及 Mixtral MoE 等主流开源模型，还率先集成了 GRPO 纯强化学习训练与 Agent 工具调用（Function Call）能力，让模型不仅能“懂”医学知识，还能学会使用外部工具并展现更自然的医患沟通技巧。此外，项目提供了详细的角色扮演的数据生成脚本和多阶段训练示例，大幅降低了医疗大模型的研发门槛，是连接学术研究与产业落地的实用桥梁。","[**🇨🇳中文**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002FREADME.md) | [**🌐English**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002FREADME_EN.md) | [**📖文档\u002FDocs**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki) | [**🤖模型\u002FModels**](https:\u002F\u002Fhuggingface.co\u002Fshibing624)\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_7b48e0e7aa9a.png\" height=\"100\" alt=\"Logo\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n-----------------\n\n# MedicalGPT: Training Medical GPT Model\n[![HF Models](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHugging%20Face-shibing624-green)](https:\u002F\u002Fhuggingface.co\u002Fshibing624)\n[![Github Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fshibing624\u002FMedicalGPT?color=yellow)](https:\u002F\u002Fstar-history.com\u002F#shibing624\u002FMedicalGPT&Timeline)\n[![Contributions welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontributions-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![License Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg)](LICENSE)\n[![python_version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.8%2B-green.svg)](requirements.txt)\n[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002FMedicalGPT.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues)\n[![Wechat Group](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwechat-group-green.svg?logo=wechat)](#Contact)\n\n## 📖 Introduction\n\n**MedicalGPT** training medical GPT model with ChatGPT training pipeline, implemantation of Pretraining,\nSupervised Finetuning, RLHF(Reward Modeling and Reinforcement Learning) and DPO(Direct Preference Optimization).\n\n**MedicalGPT** 训练医疗大模型，实现了包括增量预训练、有监督微调、RLHF(奖励建模、强化学习训练)和DPO(直接偏好优化)。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_c479b622848b.jpg\" width=\"860\" \u002F>\n\n- RLHF training pipeline来自Andrej Karpathy的演讲PDF [State of GPT](https:\u002F\u002Fkarpathy.ai\u002Fstateofgpt.pdf)，视频 [Video](https:\u002F\u002Fbuild.microsoft.com\u002Fen-US\u002Fsessions\u002Fdb3f4859-cd30-4445-a0cd-553c3304f8e2)\n- DPO方法来自论文[Direct Preference Optimization:Your Language Model is Secretly a Reward Model](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)\n- ORPO方法来自论文[ORPO: Monolithic Preference Optimization without Reference Model](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.07691)\n\n## 🔥 News\n[2026\u002F04\u002F09] v2.6版本：支持了 **[Agent工具调用\u002FFunction Call]** 模型微调训练，新增了支持不同模型的工具数据格式转换和解析代码。并在 `data` 目录下补充了 `toolcall` 数据样例。详见[Release-v2.6](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.6.0)\n\n[2026\u002F04\u002F07] v2.5版本：支持了 **[Qwen3.5](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002FQwen\u002Fqwen35)** 系列模型（包括Base、Instruct和MoE变体），PT\u002FSFT\u002FDPO\u002FORPO\u002FGRPO全流程适配，新增`qwen3`、`qwen3_5`、`qwen3_nothink`、`qwen3_5_nothink`对话模板，支持DeepSpeed ZeRO-3 MoE训练，详见[Release-v2.5](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.5.0)\n\n[2025\u002F04\u002F18] v2.4版本：支持了LoRA和全参的 **[GRPO](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2402.03300)** 训练方法，GRPO通过纯RL方法可以体验`aha moment`，详见[Release-v2.4](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.4.0)\n\n[2024\u002F09\u002F21] v2.3版本：支持了 **[Qwen-2.5](https:\u002F\u002Fqwenlm.github.io\u002Fzh\u002Fblog\u002Fqwen2.5\u002F)** 系列模型，详见[Release-v2.3](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.3.0)\n\n[2024\u002F08\u002F02] v2.2版本：支持了角色扮演模型训练，新增了医患对话SFT数据生成脚本[role_play_data](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Frole_play_data\u002FREADME.md)，支持OpenAI、豆包、[MiniMax](https:\u002F\u002Fplatform.minimaxi.com\u002F)等多种LLM Provider，详见[Release-v2.2](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.2.0)\n\n\u003Cdetails>\u003Csummary>展开日志\u003C\u002Fsummary>\n\n[2024\u002F06\u002F11] v2.1版本：支持了 **[Qwen-2](https:\u002F\u002Fqwenlm.github.io\u002Fblog\u002Fqwen2\u002F)** 系列模型，详见[Release-v2.1](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.1.0)\n\n[2024\u002F04\u002F24] v2.0版本：支持了 **[Llama-3](https:\u002F\u002Fhuggingface.co\u002Fmeta-llama)** 系列模型，详见[Release-v2.0](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.0.0)\n\n[2024\u002F04\u002F17] v1.9版本：支持了 **[ORPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.07691)**，详细用法请参照 `scripts\u002Frun_orpo.sh`。详见[Release-v1.9](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.9.0)\n\n[2024\u002F01\u002F26] v1.8版本：支持微调Mixtral混合专家MoE模型 **[Mixtral 8x7B](https:\u002F\u002Fhuggingface.co\u002Fmistralai\u002FMixtral-8x7B-v0.1)**。详见[Release-v1.8](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.8.0)\n\n[2024\u002F01\u002F14] v1.7版本：新增检索增强生成(RAG)的基于文件问答[ChatPDF](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FChatPDF)功能，代码`demo\u002Fchatpdf.py`，可以基于微调后的LLM结合知识库文件问答提升行业问答准确率。详见[Release-v1.7](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.7.0)\n\n[2023\u002F10\u002F23] v1.6版本：新增RoPE插值来扩展GPT模型的上下文长度；针对LLaMA模型支持了[FlashAttention-2](https:\u002F\u002Fgithub.com\u002FDao-AILab\u002Fflash-attention)和[LongLoRA](https:\u002F\u002Fgithub.com\u002Fdvlab-research\u002FLongLoRA) 提出的 **$S^2$-Attn**；支持了[NEFTune](https:\u002F\u002Fgithub.com\u002Fneelsjain\u002FNEFTune)给embedding加噪训练方法。详见[Release-v1.6](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.6.0)\n\n[2023\u002F08\u002F28] v1.5版本: 新增[DPO(直接偏好优化)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)方法，DPO通过直接优化语言模型来实现对其行为的精确控制，可以有效学习到人类偏好。详见[Release-v1.5](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.5.0)\n\n[2023\u002F08\u002F08] v1.4版本: 发布基于ShareGPT4数据集微调的中英文Vicuna-13B模型[shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat)，和对应的LoRA模型[shibing624\u002Fvicuna-baichuan-13b-chat-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat-lora)，详见[Release-v1.4](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.4.0)\n\n[2023\u002F08\u002F02] v1.3版本: 新增LLaMA, LLaMA2, Bloom, ChatGLM, ChatGLM2, Baichuan模型的多轮对话微调训练；新增领域词表扩充功能；新增中文预训练数据集和中文ShareGPT微调训练集，详见[Release-v1.3](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.3.0)\n\n[2023\u002F07\u002F13] v1.1版本: 发布中文医疗LLaMA-13B模型[shibing624\u002Fziya-llama-13b-medical-merged](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-merged)，基于Ziya-LLaMA-13B-v1模型，SFT微调了一版医疗模型，医疗问答效果有提升，发布微调后的完整模型权重，详见[Release-v1.1](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.1)\n\n[2023\u002F06\u002F15] v1.0版本: 发布中文医疗LoRA模型[shibing624\u002Fziya-llama-13b-medical-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-lora)，基于Ziya-LLaMA-13B-v1模型，SFT微调了一版医疗模型，医疗问答效果有提升，发布微调后的LoRA权重，详见[Release-v1.0](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.0.0)\n\n[2023\u002F06\u002F05] v0.2版本: 以医疗为例，训练领域大模型，实现了四阶段训练：包括二次预训练、有监督微调、奖励建模、强化学习训练。详见[Release-v0.2](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F0.2.0)\n\n\u003C\u002Fdetails>\n\n\n## 😊 Features\n\n\n基于ChatGPT Training Pipeline，本项目实现了领域模型--医疗行业语言大模型的训练：\n\n\n- 第一阶段：PT(Continue PreTraining)增量预训练，在海量领域文档数据上二次预训练GPT模型，以适应领域数据分布（可选）\n- 第二阶段：SFT(Supervised Fine-tuning)有监督微调，构造指令微调数据集，在预训练模型基础上做指令精调，以对齐指令意图，并注入领域知识\n- 第三阶段\n  - RLHF(Reinforcement Learning from Human Feedback)基于人类反馈对语言模型进行强化学习，分为两步：\n    - RM(Reward Model)奖励模型建模，构造人类偏好排序数据集，训练奖励模型，用来建模人类偏好，主要是\"HHH\"原则，具体是\"helpful, honest, harmless\"\n    - RL(Reinforcement Learning)强化学习，用奖励模型来训练SFT模型，生成模型使用奖励或惩罚来更新其策略，以便生成更高质量、更符合人类偏好的文本\n  - [DPO(Direct Preference Optimization)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)直接偏好优化方法，DPO通过直接优化语言模型来实现对其行为的精确控制，而无需使用复杂的强化学习，也可以有效学习到人类偏好，DPO相较于RLHF更容易实现且易于训练，效果更好\n  - [ORPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.07691)比值比偏好优化，不需要参考模型（ref_model）的优化方法，通过ORPO，LLM可以同时学习SFT和对齐，将两个过程整合为单一步骤，缓解模型灾难性遗忘问题\n\n\n### Release Models\n\n\n| Model                                                                                                             | Base Model                                                                              | Introduction                                                                                                                                                                 |\n|:------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [shibing624\u002Fziya-llama-13b-medical-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-lora)           | [IDEA-CCNL\u002FZiya-LLaMA-13B-v1](https:\u002F\u002Fhuggingface.co\u002FIDEA-CCNL\u002FZiya-LLaMA-13B-v1)       | 在240万条中英文医疗数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical)上SFT微调了一版Ziya-LLaMA-13B模型，医疗问答效果有提升，发布微调后的LoRA权重(单轮对话)                                 |\n| [shibing624\u002Fziya-llama-13b-medical-merged](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-merged)       | [IDEA-CCNL\u002FZiya-LLaMA-13B-v1](https:\u002F\u002Fhuggingface.co\u002FIDEA-CCNL\u002FZiya-LLaMA-13B-v1)       | 在240万条中英文医疗数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical)上SFT微调了一版Ziya-LLaMA-13B模型，医疗问答效果有提升，发布微调后的完整模型权重(单轮对话)                                 |\n| [shibing624\u002Fvicuna-baichuan-13b-chat-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat-lora)       | [baichuan-inc\u002FBaichuan-13B-Chat](https:\u002F\u002Fhuggingface.co\u002Fbaichuan-inc\u002FBaichuan-13B-Chat) | 在10万条多语言ShareGPT GPT4多轮对话数据集[shibing624\u002Fsharegpt_gpt4](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fsharegpt_gpt4) 和 医疗数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical) 上SFT微调了一版baichuan-13b-chat多轮问答模型，日常问答和医疗问答效果有提升，发布微调后的LoRA权重 |\n| [shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat)                 | [baichuan-inc\u002FBaichuan-13B-Chat](https:\u002F\u002Fhuggingface.co\u002Fbaichuan-inc\u002FBaichuan-13B-Chat) | 在10万条多语言ShareGPT GPT4多轮对话数据集[shibing624\u002Fsharegpt_gpt4](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fsharegpt_gpt4) 和 医疗数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical) 上SFT微调了一版baichuan-13b-chat多轮问答模型，日常问答和医疗问答效果有提升，发布微调后的完整模型权重 |\n| [shibing624\u002Fllama-3-8b-instruct-262k-chinese](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fllama-3-8b-instruct-262k-chinese) | [Llama-3-8B-Instruct-262k](https:\u002F\u002Fhuggingface.co\u002Fgradientai\u002FLlama-3-8B-Instruct-262k)  | 在2万条中英文偏好数据集[shibing624\u002FDPO-En-Zh-20k-Preference](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002FDPO-En-Zh-20k-Preference)上使用ORPO方法微调得到的超长文本多轮对话模型，适用于RAG、多轮对话                   |\n\n演示[shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat)模型效果：\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_b0ea6e88b399.gif\" width=\"860\" \u002F>\n具体case见[Inference Examples](#inference-examples)\n\n## ▶️ Demo\n\n\n我们提供了一个简洁的基于gradio的交互式web界面，启动服务后，可通过浏览器访问，输入问题，模型会返回答案。\n\n启动服务，命令如下：\n```shell\nCUDA_VISIBLE_DEVICES=0 python demo\u002Fgradio_demo.py --base_model path_to_llama_hf_dir --lora_model path_to_lora_dir\n```\n\n参数说明：\n\n- `--base_model {base_model}`：存放HF格式的LLaMA模型权重和配置文件的目录，也可使用HF Model Hub模型调用名称\n- `--lora_model {lora_model}`：LoRA文件所在目录，也可使用HF Model Hub模型调用名称。若lora权重已经合并到预训练模型，则删除--lora_model参数\n- `--tokenizer_path {tokenizer_path}`：存放对应tokenizer的目录。若不提供此参数，则其默认值与--base_model相同\n- `--template_name`：模板名称，如`vicuna`、`alpaca`等。若不提供此参数，则其默认值是vicuna\n- `--only_cpu`: 仅使用CPU进行推理\n- `--resize_emb`：是否调整embedding大小，若不调整，则使用预训练模型的embedding大小，默认不调整\n\n\n## 💾 Install\n#### Updating the requirements\n`requirements.txt`会不时更新以适配最新功能，使用以下命令更新依赖:\n\n```markdown\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\ncd MedicalGPT\npip install -r requirements.txt --upgrade\n```\n\n#### Hardware Requirement (显存\u002FVRAM)\n\n\n\\* *估算值*\n\n| 训练方法  | 精度          |   7B  |  13B  |  30B  |   70B  |  110B  |  8x7B |  8x22B |\n|-------|-------------| ----- | ----- | ----- | ------ | ------ | ----- | ------ |\n| 全参数   | AMP(自动混合精度) | 120GB | 240GB | 600GB | 1200GB | 2000GB | 900GB | 2400GB |\n| 全参数   | 16          |  60GB | 120GB | 300GB |  600GB |  900GB | 400GB | 1200GB |\n| LoRA  | 16          |  16GB |  32GB |  64GB |  160GB |  240GB | 120GB |  320GB |\n| QLoRA | 8           |  10GB |  20GB |  40GB |   80GB |  140GB |  60GB |  160GB |\n| QLoRA | 4           |   6GB |  12GB |  24GB |   48GB |   72GB |  30GB |   96GB |\n| QLoRA | 2           |   4GB |   8GB |  16GB |   24GB |   48GB |  18GB |   48GB |\n\n## 📁 Project Structure\n\n```\nMedicalGPT\u002F\n├── training\u002F                # 核心训练脚本（教学主线）\n│   ├── template.py                         # 对话模板定义\n│   ├── tool_utils.py                       # Agent工具调用格式化工具\n│   ├── pretraining.py                      # Stage 1: 增量预训练(PT)\n│   ├── supervised_finetuning.py            # Stage 2: 有监督微调(SFT, 支持Agent)\n│   ├── reward_modeling.py                  # Stage 3: 奖励模型(RM)\n│   ├── ppo_training.py                     # Stage 3: 强化学习(PPO\u002FRLOO)\n│   ├── dpo_training.py                     # Stage 3: 直接偏好优化(DPO, 支持Agent)\n│   ├── orpo_training.py                    # Stage 3: ORPO\n│   └── grpo_training.py                    # Stage 3: GRPO\n│\n├── scripts\u002F                 # 一键运行脚本 + DeepSpeed配置\n│   ├── run_pt.sh \u002F run_sft.sh \u002F run_dpo.sh \u002F ...\n│   └── zero1.json \u002F zero2.json \u002F zero3.json\n│\n├── demo\u002F                    # 推理、部署、应用示例\n│   ├── inference.py \u002F gradio_demo.py \u002F fastapi_server_demo.py\n│   ├── openai_api.py \u002F chatpdf.py\n│   └── inference_multigpu_demo.py\n│\n├── tools\u002F                   # 模型合并、量化、数据处理工具\n│   ├── merge_peft_adapter.py \u002F merge_tokenizers.py\n│   ├── model_quant.py \u002F eval_quantize.py\n│   └── convert_dataset.py \u002F validate_jsonl.py\n│\n├── notebooks\u002F               # Colab 教程 Notebook\n│   ├── run_training_dpo_pipeline.ipynb\n│   └── run_training_ppo_pipeline.ipynb\n│\n├── data\u002F                    # 训练数据\n│   ├── sft\u002F                               # SFT数据（含普通问答和Tool Call）\n│   └── reward\u002F                            # DPO\u002FRM偏好数据（含普通偏好和Tool Call偏好）\n├── docs\u002F                    # 文档\n└── tests\u002F                   # 测试\n```\n\n| 目录 | 说明 | 适合谁看 |\n|------|------|---------|\n| `training\u002F` | 核心训练代码，覆盖PT→SFT→RM→PPO\u002FDPO\u002FORPO\u002FGRPO全流程 | 想了解训练原理的开发者 |\n| `scripts\u002F` | 一键运行脚本和DeepSpeed配置，复制即用 | 快速上手训练的用户 |\n| `demo\u002F` | 推理、Gradio UI、FastAPI服务、RAG问答等示例 | 想部署和体验模型的用户 |\n| `tools\u002F` | LoRA合并、量化、词表扩充、数据格式转换等工具 | 需要模型后处理的用户 |\n| `notebooks\u002F` | Colab一键运行的端到端教程 | 零基础快速体验的用户 |\n\n> 所有脚本均从**项目根目录**运行，例如：`bash scripts\u002Frun_sft.sh`\n\n## 🚀 Training Pipeline\n\nTraining Stage:\n\n| Stage                          | Introduction | Python script                                                                                                    | Shell script                                                                           |\n|:-------------------------------|:-------------|:-----------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------|\n| Continue Pretraining           | 增量预训练        | [pretraining.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Fpretraining.py)                     | [run_pt.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_pt.sh)     |\n| Supervised Fine-tuning         | 有监督微调        | [supervised_finetuning.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Fsupervised_finetuning.py) | [run_sft.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_sft.sh)   |\n| Direct Preference Optimization | 直接偏好优化       | [dpo_training.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Fdpo_training.py)                   | [run_dpo.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_dpo.sh)   |\n| Reward Modeling                | 奖励模型建模       | [reward_modeling.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Freward_modeling.py)             | [run_rm.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_rm.sh)     |\n| Reinforcement Learning         | 强化学习         | [ppo_training.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Fppo_training.py)                   | [run_ppo.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_ppo.sh)   |\n| ORPO                           | 概率偏好优化       | [orpo_training.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Forpo_training.py)                  | [run_orpo.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_orpo.sh) |\n\n- 提供完整PT+SFT+DPO全阶段串起来训练的pipeline：[run_training_dpo_pipeline.ipynb](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fnotebooks\u002Frun_training_dpo_pipeline.ipynb) ，其对应的colab： [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fnotebooks\u002Frun_training_dpo_pipeline.ipynb)，运行完大概需要15分钟\n- 提供完整PT+SFT+RLHF全阶段串起来训练的pipeline：[run_training_ppo_pipeline.ipynb](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fnotebooks\u002Frun_training_ppo_pipeline.ipynb) ，其对应的colab： [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fnotebooks\u002Frun_training_ppo_pipeline.ipynb) ，运行完大概需要20分钟\n- 支持Agent工具调用微调训练（Agent Finetuning），SFT和DPO阶段均支持。详见下方 [Agent 训练](#agent-训练agent-finetuning) 章节\n- 提供基于知识库文件的LLM问答功能（RAG）：[chatpdf.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdemo\u002Fchatpdf.py)\n- [训练参数说明](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002Ftraining_params.md) | [训练参数说明wiki](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002F%E8%AE%AD%E7%BB%83%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E)\n- [数据集](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002Fdatasets.md) | [数据集wiki](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002F%E6%95%B0%E6%8D%AE%E9%9B%86)\n- [扩充词表](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002Fextend_vocab.md) | [扩充词表wiki](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002F%E6%89%A9%E5%85%85%E4%B8%AD%E6%96%87%E8%AF%8D%E8%A1%A8)\n- [FAQ](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002FFAQ.md) | [FAQ_wiki](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002FFAQ)\n\n#### Agent 训练（Agent Finetuning）\n\n本项目支持通过 SFT 和 DPO 两种方式训练具有工具调用（Function Call \u002F Tool Use）能力的 Agent 模型。\n\n**核心原理：** Tool Call 本质上是特殊的多轮对话，在标准的 `human`\u002F`gpt` 角色之外新增了 `function_call`（模型决定调用工具）和 `observation`（工具返回结果）两种角色。Template 系统统一处理所有角色，有工具描述就拼接到 system message，没有就跳过，对 loss 计算和训练过程完全透明。\n\n**数据格式：** 统一使用 jsonl（一行一条），ShareGPT 格式。\n\nSFT 数据（`data\u002Fsft\u002Fglaive_toolcall_zh_demo.jsonl`）：\n```\n{\"conversations\": [{\"from\": \"human\", \"value\": \"帮我查一下北京天气\"}, {\"from\": \"function_call\", \"value\": \"{\\\"name\\\": \\\"get_weather\\\", \\\"arguments\\\": {\\\"city\\\": \\\"北京\\\"}}\"}, {\"from\": \"observation\", \"value\": \"{\\\"temperature\\\": \\\"28°C\\\", \\\"weather\\\": \\\"晴\\\"}\"}, {\"from\": \"gpt\", \"value\": \"北京今天天气晴朗，气温28°C。\"}], \"tools\": \"[...]\"}\n```\n\nDPO 数据（`data\u002Freward\u002Ftoolcall_dpo_zh_demo.jsonl`）：\n```\n{\"conversations\": [{\"from\": \"human\", \"value\": \"帮我查一下北京天气\"}], \"tools\": \"[...]\", \"chosen\": \"Action: get_weather\\nAction Input: {\\\"city\\\": \\\"北京\\\"}\", \"rejected\": \"北京今天天气晴朗，气温25度。\"}\n```\n\n> **注意：** 所有训练数据统一为 `.jsonl` 格式。`chosen`\u002F`rejected` 为纯字符串。如有 `.json` 文件（JSON 数组），可用 `python tools\u002Fconvert_dataset.py --in_file data.json --out_file data.jsonl --data_type json2jsonl` 转换。\n\n**支持的 tool_format：**\n\n| tool_format | 适用模型 | 说明 |\n|-------------|---------|------|\n| `default`   | 通用 | Action\u002FAction Input 格式 |\n| `qwen`      | Qwen2.5\u002FQwen3\u002FQwen3.5 | `\u003Ctool_call>` XML格式 |\n| `qwen3`     | Qwen3 | 同 `qwen`，别名 |\n| `qwen3.5`   | Qwen3.5 | 同 `qwen`，别名 |\n| `glm4`      | GLM-4 | ChatGLM 工具格式 |\n| `llama3`    | LLaMA-3.x | JSON function call 格式 |\n| `mistral`   | Mistral | `[AVAILABLE_TOOLS]` 格式 |\n\n**混合训练：** 普通问答SFT数据和Tool Call数据可以一起训练，只需将两类数据文件放在同一个 `--train_file_dir` 目录下即可。没有 `tools` 字段的数据会按照普通SFT\u002FDPO流程处理。\n\n**训练命令：** Tool Call 数据与普通数据混合在同一目录下，直接使用标准训练脚本，加 `--tool_format` 参数即可：\n\n```shell\n# SFT（data\u002Fsft\u002F 目录下同时包含普通问答和 tool call 数据）\nbash scripts\u002Frun_sft.sh\n\n# DPO（data\u002Freward\u002F 目录下同时包含普通偏好和 tool call 偏好数据）\nbash scripts\u002Frun_dpo.sh\n```\n\n关键参数说明：\n- `--tool_format default`：指定工具调用的文本格式（可选 `default, glm4, llama3, mistral, qwen`）\n- 无需单独的 agent 训练脚本，普通数据和 tool call 数据自动混合训练\n\n#### Supported Models\n\n| Model Name                                                           | Model Size                    | Target Modules  | Template  |\n|----------------------------------------------------------------------|-------------------------------|-----------------|-----------|\n| [Baichuan](https:\u002F\u002Fgithub.com\u002Fbaichuan-inc\u002Fbaichuan-13B)             | 7B\u002F13B                        | W_pack          | baichuan  |\n| [Baichuan2](https:\u002F\u002Fgithub.com\u002Fbaichuan-inc\u002FBaichuan2)               | 7B\u002F13B                        | W_pack          | baichuan2 |\n| [BLOOMZ](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz)                   | 560M\u002F1.1B\u002F1.7B\u002F3B\u002F7.1B\u002F176B   | query_key_value | vicuna    |\n| [ChatGLM](https:\u002F\u002Fgithub.com\u002FTHUDM\u002FChatGLM-6B)                       | 6B                            | query_key_value | chatglm   |\n| [ChatGLM2](https:\u002F\u002Fgithub.com\u002FTHUDM\u002FChatGLM2-6B)                     | 6B                            | query_key_value | chatglm2  |\n| [ChatGLM3](https:\u002F\u002Fgithub.com\u002FTHUDM\u002FChatGLM3)                        | 6B                            | query_key_value | chatglm3  |\n| [Cohere](https:\u002F\u002Fhuggingface.co\u002FCohereForAI\u002Fc4ai-command-r-plus)     | 104B                          | q_proj,v_proj   | cohere    |\n| [DeepSeek](https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepSeek-LLM)              | 7B\u002F16B\u002F67B                    | q_proj,v_proj   | deepseek  |\n| [DeepSeek3](https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepSeek-V3)              | 671B                         | q_proj,v_proj   | deepseek3 |\n| [InternLM2](https:\u002F\u002Fgithub.com\u002FInternLM\u002FInternLM)                    | 7B\u002F20B                        | wqkv            | intern2   |\n| [LLaMA](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fllama)                   | 7B\u002F13B\u002F33B\u002F65B                | q_proj,v_proj   | alpaca    |\n| [LLaMA2](https:\u002F\u002Fhuggingface.co\u002Fmeta-llama)                          | 7B\u002F13B\u002F70B                    | q_proj,v_proj   | llama2    |\n| [LLaMA3](https:\u002F\u002Fhuggingface.co\u002Fmeta-llama)                          | 8B\u002F70B                        | q_proj,v_proj   | llama3    |\n| [Mistral](https:\u002F\u002Fhuggingface.co\u002Fmistralai\u002FMistral-7B-Instruct-v0.1) | 7B\u002F8x7B                       | q_proj,v_proj   | mistral   |\n| [Orion](https:\u002F\u002Fgithub.com\u002FOrionStarAI\u002FOrion)                        | 14B                           | q_proj,v_proj   | orion     |\n| [Qwen](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen)                               | 1.8B\u002F7B\u002F14B\u002F72B               | c_attn          | qwen      |\n| [Qwen1.5](https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen1.5-72B)                   | 0.5B\u002F1.8B\u002F4B\u002F14B\u002F32B\u002F72B\u002F110B | q_proj,v_proj   | qwen      |\n| [Qwen2](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2)                             | 0.5B\u002F1.5B\u002F7B\u002F72B              | q_proj,v_proj   | qwen      |\n| [Qwen2.5](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5)                         | 0.5B\u002F1.8B\u002F4B\u002F14B\u002F72B        | q_proj,v_proj   | qwen      |\n| [Qwen3](https:\u002F\u002Fhuggingface.co\u002FQwen)                                  | 0.6B\u002F1.7B\u002F4B\u002F8B\u002F14B\u002F32B\u002F235B | q_proj,v_proj   | qwen3     |\n| [Qwen3.5](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002FQwen\u002Fqwen35) | 0.8B\u002F2B\u002F4B\u002F9B\u002F27B\u002F35B\u002F122B | q_proj,v_proj   | qwen3_5   |\n| [XVERSE](https:\u002F\u002Fgithub.com\u002Fxverse-ai\u002FXVERSE-13B)                    | 13B                           | query_key_value | xverse    |\n| [Yi](https:\u002F\u002Fgithub.com\u002F01-ai\u002FYi)                                    | 6B\u002F34B                        | q_proj,v_proj   | yi        |\n\n\n\n\n## 💻 Inference\n训练完成后，现在我们加载训练好的模型，验证模型生成文本的效果。\n\n```shell\nCUDA_VISIBLE_DEVICES=0 python demo\u002Finference.py \\\n    --base_model path_to_model_hf_dir \\\n    --lora_model path_to_lora \\\n    --interactive\n```\n\n参数说明：\n\n- `--base_model {base_model}`：存放HF格式的LLaMA模型权重和配置文件的目录\n- `--tokenizer_path {base_model}`：存放HF格式的LLaMA模型权重和配置文件的目录\n- `--lora_model {lora_model}`：LoRA解压后文件所在目录，也可使用HF Model Hub模型调用名称。如果已经合并了LoRA权重到预训练模型，则可以不提供此参数\n- `--tokenizer_path {tokenizer_path}`：存放对应tokenizer的目录。若不提供此参数，则其默认值与--base_model相同\n- `--template_name`：模板名称，如`vicuna`、`alpaca`等。若不提供此参数，则其默认值是vicuna\n- `--interactive`：以交互方式启动多轮问答，使用流式推理\n- `--data_file {file_name}`：非交互方式启动下，读取file_name中的的内容进行batch预测\n- `--output_file {file_name}`：非交互式方式下，将预测的结果以jsonl格式写入file_name\n- `--resize_emb`：是否调整embedding大小，若不调整，则使用预训练模型的embedding大小，默认不调整\n- `--only_cpu`：仅使用CPU进行推理\n- `--gpus {gpu_ids}`：指定使用的GPU设备编号，默认为0。如使用多张GPU，以逗号分隔，如0,1,2\n\n#### 多卡推理\n多卡数据并行，batch推理\n```shell\nCUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node 2 demo\u002Finference_multigpu_demo.py --base_model shibing624\u002Fvicuna-baichuan-13b-chat\n```\n#### vllm多卡部署\n```shell\nbash scripts\u002Fvllm_deployment.sh\n```\n\n\n#### Inference Examples\n[shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat) inference examples:\n\n\u003Cdetails>\u003Csummary>Model output case\u003C\u002Fsummary>\n\n| Human                                                                              | Assitant                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |\n|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 小孩发烧怎么办                                                                            | 发烧是身体对感染或其他疾病的自然反应。以下是一些可以帮助缓解发烧症状的建议：\u003Cbr\u002F>1. 保持身体水分充足：发烧时，身体会失去水分，因此需要保持水分充足。\u003Cbr\u002F>2. 使用冰袋：将冰袋放在额头或颈部可以帮助降低体温。\u003Cbr\u002F>3. 使用退烧药：退烧药可以帮助降低体温。\u003Cbr\u002F>4. 保持身体温度：保持身体温度可以帮助降低体温。\u003Cbr\u002F>5. 使用冷水或温水擦拭身体：使用冷水或温水擦拭身体可以帮助降低体温。\u003Cbr\u002F>6. 使用退烧药：退烧药可以帮助降低体温。\u003Cbr\u002F>7. 保持身体温度：保持身体温度可以帮助降低体温。\u003Cbr\u002F>8. 使用冷水或温水擦拭身体：使用冷水或温水擦拭身体可以帮助降低体温。\u003Cbr\u002F>9. 使用退烧药：退烧药可以帮助降低体温。\u003Cbr\u002F>10. 保持身体温度：保持身体温度可以帮助降低体温。                                                                                                                                                                                                                                                         |\n| 一岁宝宝发烧能吃啥药？                                                                        | 1岁宝宝发烧时，可以考虑以下几种药物：\u003Cbr\u002F>1. 退烧药：如布洛芬(Ibuprofen)或对乙酰氨基酚(Paracetamol)。这些药物可以帮助降低体温，缓解发烧症状。\u003Cbr\u002F>2. 抗生素：如果发烧是由细菌感染引起的，可以考虑使用抗生素。但请务必在医生的建议下使用。\u003Cbr\u002F>3. 抗病毒药物：如果发烧是由病毒感染引起的，可以考虑使用抗病毒药物。但请务必在医生的建议下使用。\u003Cbr\u002F>4. 解热镇痛药：如阿司匹林(Aspirin)或对乙酰氨基酚(Paracetamol)。这些药物可以帮助缓解发烧症状。\u003Cbr\u002F>5. 抗组胺药：如苯海拉明(Diphenhydramine)或非索非那定(Naproxen)。这些药物可以帮助缓解发烧症状。\u003Cbr\u002F>请务必在医生的建议下使用这些药物，并遵循药物说明书上的用量和用法。同时，保持宝宝充足的水分摄入，并确保宝宝有足够的休息。                                                                                                                                                                                                                             |\n| 肛门病变可能是什么疾病的症状                                                                     | 肛门病变可能由多种原因引起，包括感染、炎症、肿瘤或其他疾病。一些常见的肛门病变包括：\u003Cbr\u002F>1. 肛裂：这是一种肛门皮肤撕裂，通常由便秘或其他压力因素引起。\u003Cbr\u002F>2. 肛瘘：这是一种肛门感染，导致肛门皮肤和直肠之间形成瘘管。\u003Cbr\u002F>3. 肛门疣：这是一种肛门皮肤上形成的疣状病变，通常由人类乳头状瘤病毒(HPV)引起。\u003Cbr\u002F>4. 肛门脓肿：这是一种肛门感染，导致肛门皮肤下形成脓肿。\u003Cbr\u002F>5. 肛门肿瘤：这是一种肛门皮肤或直肠内形成的肿瘤。\u003Cbr\u002F>6. 肛门溃疡：这是一种肛门皮肤上形成的溃疡，通常由感染或炎症引起。\u003Cbr\u002F>7. 肛门瘙痒：这是一种肛门皮肤瘙痒的症状，可能由感染、炎症或其他疾病引起。\u003Cbr\u002F>如果您有肛门病变的症状，请咨询医疗保健专业人员以获得适当的诊断和治疗。                                                                                                                                                                                                                                                                  |\n| 医生，您好白带增多泛黄怎么回事？                                                                   | 您好，白带增多和发黄可能是由多种原因引起的，包括感染、荷尔蒙变化、阴道干燥或其他妇科问题。以下是一些可能的原因：\u003Cbr\u002F>1. 感染：白带增多和发黄可能是由阴道或尿道感染引起的。感染可能由细菌、病毒或真菌引起。\u003Cbr\u002F>2. 荷尔蒙变化：荷尔蒙变化，如月经周期或更年期，可能会导致白带增多和发黄。\u003Cbr\u002F>3. 阴道干燥：阴道干燥可能会导致白带增多和发黄。\u003Cbr\u002F>4. 其他妇科问题：其他妇科问题，如子宫颈炎、子宫内膜炎或子宫内膜异位症，也可能导致白带增多和发黄。\u003Cbr\u002F>如果您担心自己的白带，建议您咨询妇科医生进行检查和诊断。医生可以根据您的症状和检查结果确定原因并提供适当的治疗。                                                                                                                                                                                                                                                                                                                          |\n| 药流后有巧克力白带是没流干净吗                                                                    | 药流后出现巧克力白带并不一定意味着没有流干净。巧克力白带是由于子宫内膜脱落和出血引起的，通常在药流后的一段时间内会出现。\u003Cbr\u002F>\u003Cbr\u002F>药流后出现巧克力白带的原因可能包括：\u003Cbr\u002F>\u003Cbr\u002F>1. 子宫内膜脱落：药流后，子宫内膜会脱落，导致出血。这种出血可能表现为巧克力白带。\u003Cbr\u002F>2. 感染：药流后，子宫内膜和宫颈口可能存在创伤，容易受到细菌感染。感染可能导致巧克力白带。\u003Cbr\u002F>3. 激素水平变化：药流后，激素水平可能发生变化，导致巧克力白带。\u003Cbr\u002F>\u003Cbr\u002F>如果巧克力白带持续时间较长，或者伴有其他症状，如腹痛、发热、分泌物异味等，建议及时就诊，进行相关检查，如妇科检查、B超等，以确定是否存在感染或其他问题。在医生的指导下进行相应的治疗。                                                                                                                                                                                                                                                                                      |\n| 维胺酯维E乳膏能治理什么疾病                                                                     | 维胺酯维E乳膏是一种外用药物，主要用于治疗痤疮、脂溢性皮炎等皮肤病。它可以帮助减少皮肤油脂分泌，减轻炎症，促进皮肤修复。\u003Cbr\u002F>\u003Cbr\u002F>需要注意的是，维胺酯维E乳膏并非万能药，对于某些皮肤病可能并不适用。在使用前，建议咨询医生或药师，了解药物的适应症、禁忌症、用法用量等信息。同时，使用药物时应遵循医嘱，避免自行滥用。                                                                                                                                                                                                                                                                                                                                                                                                                                                               |\n| 痤疮是什么原因导致的?                                                                        | 痤疮，也称为粉刺，是由皮肤毛孔堵塞引起的。堵塞毛孔的原因有很多，包括：\u003Cbr\u002F>1. 皮脂腺过度活跃：皮脂腺产生过多油脂，导致毛孔堵塞。\u003Cbr\u002F>2. 毛孔堵塞：皮肤表面的死皮细胞、油脂和细菌堵塞毛孔。\u003Cbr\u002F>3. 炎症：痤疮通常伴随着炎症，这可能是由于皮肤感染或免疫系统对痤疮的反应引起的。\u003Cbr\u002F>4. 遗传因素：某些人可能更容易患痤疮，这可能是由于遗传因素引起的。\u003Cbr\u002F>5. 荷尔蒙变化：痤疮在青春期和月经期间更为常见，这可能是由于荷尔蒙变化引起的。\u003Cbr\u002F>6. 生活方式因素：某些生活方式因素，如压力、不良饮食和缺乏运动，也可能导致痤疮。\u003Cbr\u002F>7. 化妆品和护肤品：某些化妆品和护肤品可能导致痤疮，特别是那些含有刺激性成分的产品。\u003Cbr\u002F>8. 药物：某些药物，如口服避孕药，也可能导致痤疮。\u003Cbr\u002F>要预防痤疮，可以采取一些措施，如保持皮肤清洁、使用温和的护肤品、避免过度使用化妆品和护肤品、保持健康的生活方式和饮食习惯、避免压力和荷尔蒙变化。如果痤疮严重，可能需要寻求皮肤科医生的帮助。                                                                                                                                                         |\n| 脸上长青春痘怎么办,能吃啥药,需要注意啥                                                               | 青春痘，又称痤疮，是一种常见的皮肤病。青春痘的治疗需要综合考虑饮食、生活习惯、药物等多个方面。以下是一些建议：\u003Cbr\u002F>\u003Cbr\u002F>1. 饮食：\u003Cbr\u002F>* 避免高糖、高脂、高油的食物，如快餐、甜点、油炸食品等。\u003Cbr\u002F>* 多吃新鲜蔬菜、水果、全谷类食物，以增加纤维摄入，促进肠道蠕动。\u003Cbr\u002F>* 避免摄入过多的咖啡因、酒精、辛辣食物等刺激性食物。\u003Cbr\u002F>\u003Cbr\u002F>2. 生活习惯：\u003Cbr\u002F>* 保持良好的作息时间，保证充足的睡眠。\u003Cbr\u002F>* 避免长时间使用电脑、手机等电子产品，以免辐射对皮肤造成刺激。\u003Cbr\u002F>* 保持皮肤清洁，每天早晚使用温和的洁面产品清洁皮肤。\u003Cbr\u002F>* 避免挤压青春痘，以免感染和留下疤痕。\u003Cbr\u002F>\u003Cbr\u002F>3. 药物：\u003Cbr\u002F>* 外用药物：可以使用含有水杨酸、苯甲酸、壬二酸等成分的护肤品，帮助去除皮肤表面的角质，减少痘痘的形成。\u003Cbr\u002F>* 口服药物：如果青春痘严重，可以考虑口服抗生素、维生素B族、锌等药物，但需在医生指导下使用。\u003Cbr\u002F>\u003Cbr\u002F>4. 注意：\u003Cbr\u002F>* 不要随意使用化妆品、护肤品，以免刺激皮肤。\u003Cbr\u002F>* 不要过度清洁皮肤，以免破坏皮肤屏障。\u003Cbr\u002F>* 保持心情舒畅，避免焦虑、抑郁等负面情绪。\u003Cbr\u002F>\u003Cbr\u002F>总之，青春痘的治疗需要综合考虑饮食、生活习惯、药物等多个方面。在治疗过程中，要保持耐心和信心，遵循医生的建议，逐步改善皮肤状况。 |\n| 由于输精管堵塞会不会导致男性不育？，医生您好，我同事这几天不开心，我问她怎么了，她说她老公输精管堵塞，所以一直没孩子，不是不想要，请问输精管堵塞会不会导致男性不育？ | 输精管堵塞可能会导致男性不育。输精管是连接睾丸和尿道的一条管道，负责将精子从睾丸输送到尿道。如果输精管堵塞，精子就无法通过输精管到达尿道，从而导致不育。\u003Cbr\u002F>\u003Cbr\u002F>输精管堵塞的原因有很多，包括先天性发育异常、炎症、肿瘤、外伤等。输精管堵塞的治疗方法包括手术疏通、药物治疗等。如果输精管堵塞严重，可能需要进行手术疏通。\u003Cbr\u002F>\u003Cbr\u002F>需要注意的是，输精管堵塞并不一定导致不育，因为还有其他途径可以将精子输送到女性体内。例如，精子可以通过附睾、前列腺等组织到达女性体内。因此，如果输精管堵塞，建议及时就医，寻求专业医生的帮助。                                                                                                                                                                                                                                                                                                                                                     |\n| 心肌梗塞能治疗吗？                                                                          | 心肌梗死是一种严重的疾病，如果及时治疗，可以挽救生命并防止长期残疾。治疗心肌梗死的关键是尽早识别和治疗。\u003Cbr\u002F>\u003Cbr\u002F>心肌梗死的治疗通常包括以下步骤：\u003Cbr\u002F>\u003Cbr\u002F>1. 立即就医：如果出现胸痛、呼吸急促或晕厥等症状，立即就医。\u003Cbr\u002F>\u003Cbr\u002F>2. 药物治疗：医生可能会开处方药物，如硝酸甘油或阿司匹林，以帮助缓解症状并防止进一步的损伤。\u003Cbr\u002F>\u003Cbr\u002F>3. 溶栓治疗：如果患者在到达医院前出现心肌梗死，医生可能会进行溶栓治疗，通过注射溶解血栓的药物来帮助恢复血流。\u003Cbr\u002F>\u003Cbr\u002F>4. 手术治疗：如果药物治疗或溶栓治疗无效，医生可能会建议进行手术，如冠状动脉搭桥手术或心脏支架植入术。\u003Cbr\u002F>\u003Cbr\u002F>5. 康复和预防：心肌梗死的治疗通常包括康复计划，以帮助患者恢复身体功能并预防未来的心脏事件。此外，患者还应遵循医生的建议，以降低患心脏病的风险。\u003Cbr\u002F>\u003Cbr\u002F>需要注意的是，心肌梗死的治疗取决于患者的具体情况和症状。因此，如果您或您认识的人出现心肌梗死症状，请立即就医。                                                                                                                                                            |\n| 怎么让自己精力充沛，列5点建议                                                                    | 1. 保持充足的睡眠：睡眠对于保持精力充沛至关重要。确保每晚获得7-9小时的高质量睡眠。\u003Cbr\u002F>2. 均衡饮食：均衡饮食对于保持能量水平至关重要。确保摄入足够的蛋白质、碳水化合物和健康脂肪。\u003Cbr\u002F>3. 定期锻炼：定期锻炼可以帮助提高能量水平。尝试每天进行至少30分钟的有氧运动，如散步、跑步或骑自行车。\u003Cbr\u002F>4. 管理压力：压力会消耗能量，因此管理压力对于保持精力充沛至关重要。尝试找到放松和减压的方法，如冥想、瑜伽或深呼吸练习。\u003Cbr\u002F>5. 保持水分：脱水会降低能量水平。确保每天喝足够的水，并根据需要补充水分。                                                                                                                                                                                                                                                                                                                                                         |\n| 写个春天的诗                                                                             | 春天，\u003Cbr\u002F>是大地苏醒的季节，\u003Cbr\u002F>是万物复苏的季节，\u003Cbr\u002F>是生命绽放的季节。\u003Cbr\u002F>春天，\u003Cbr\u002F>是阳光明媚的季节，\u003Cbr\u002F>是鸟语花香的季节，\u003Cbr\u002F>是绿意盎然的季节，\u003Cbr\u002F>是希望无限的季节。\u003Cbr\u002F>春天，\u003Cbr\u002F>是人们欢笑的季节，\u003Cbr\u002F>是孩子们嬉戏的季节，\u003Cbr\u002F>是恋人们相拥的季节，\u003Cbr\u002F>是人们追求梦想的季节。                                                                                                                                                                                                                                                                                                                                                                                                                                               |\n| 南极洲为啥没有北极熊?                                                                        | 南极洲没有北极熊，因为北极熊生活在北极地区，而南极洲位于南半球，气候和环境与北极地区有很大不同。南极洲的气候非常寒冷，常年被冰雪覆盖，而北极熊则生活在北极地区，那里有丰富的海洋生物和陆地哺乳动物。此外，南极洲的生态系统也与北极地区不同，没有北极熊所需的生存条件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |\n\n\u003C\u002Fdetails>\n\n\n## 📚 Dataset\n### 医疗数据集\n\n- 240万条中文医疗数据集(包括预训练、指令微调和奖励数据集)：[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical)\n- 22万条中文医疗对话数据集(华佗项目)：[shibing624\u002Fhuatuo_medical_qa_sharegpt](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fhuatuo_medical_qa_sharegpt) 【本项目支持格式】\n\n### 通用数据集\n\n#### Pretraining datasets(预训练数据集)\n- 16GB中英文无监督、平行语料[Linly-AI\u002FChinese-pretraining-dataset](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FLinly-AI\u002FChinese-pretraining-dataset)\n- 524MB中文维基百科语料[wikipedia-cn-20230720-filtered](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fpleisto\u002Fwikipedia-cn-20230720-filtered)\n#### Supervised fine-tuning datasets(指令微调数据集)\n- 10万条多语言ShareGPT GPT4多轮对话数据集：[shibing624\u002Fsharegpt_gpt4](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fsharegpt_gpt4) 【本项目支持格式】\n- 9万条英文ShareGPT多轮对话数集：[anon8231489123\u002FShareGPT_Vicuna_unfiltered](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fanon8231489123\u002FShareGPT_Vicuna_unfiltered) 【本项目支持格式】\n- 50万条中文ChatGPT指令Belle数据集：[BelleGroup\u002Ftrain_0.5M_CN](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FBelleGroup\u002Ftrain_0.5M_CN)\n- 100万条中文ChatGPT指令Belle数据集：[BelleGroup\u002Ftrain_1M_CN](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FBelleGroup\u002Ftrain_1M_CN)\n- 5万条英文ChatGPT指令Alpaca数据集：[50k English Stanford Alpaca dataset](https:\u002F\u002Fgithub.com\u002Ftatsu-lab\u002Fstanford_alpaca#data-release)\n- 2万条中文ChatGPT指令Alpaca数据集：[shibing624\u002Falpaca-zh](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Falpaca-zh)\n- 69万条中文指令Guanaco数据集(Belle50万条+Guanaco19万条)：[Chinese-Vicuna\u002Fguanaco_belle_merge_v1.0](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FChinese-Vicuna\u002Fguanaco_belle_merge_v1.0)\n- 5万条英文ChatGPT多轮对话数据集：[RyokoAI\u002FShareGPT52K](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FRyokoAI\u002FShareGPT52K)\n- 80万条中文ChatGPT多轮对话数据集：[BelleGroup\u002Fmultiturn_chat_0.8M](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FBelleGroup\u002Fmultiturn_chat_0.8M)\n- 116万条中文ChatGPT多轮对话数据集：[fnlp\u002Fmoss-002-sft-data](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Ffnlp\u002Fmoss-002-sft-data)\n- 3.8万条中文ShareGPT多轮对话数据集：[FreedomIntelligence\u002FShareGPT-CN](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FFreedomIntelligence\u002FShareGPT-CN)\n- 130万条中文微调数据集（汇总）：[zhuangxialie\u002FLlama3-Chinese-Dataset](https:\u002F\u002Fmodelscope.cn\u002Fdatasets\u002Fzhuangxialie\u002FLlama3-Chinese-Dataset\u002FdataPeview) 【本项目支持格式】\n- 7千条中文角色扮演多轮对话数据集：[shibing624\u002Froleplay-zh-sharegpt-gpt4-data](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Froleplay-zh-sharegpt-gpt4-data) 【本项目支持格式】\n\n#### Preference datasets(偏好数据集)\n- 2万条中英文偏好数据集：[shibing624\u002FDPO-En-Zh-20k-Preference](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002FDPO-En-Zh-20k-Preference) 【本项目支持格式】\n- 原版的oasst1数据集：[OpenAssistant\u002Foasst1](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FOpenAssistant\u002Foasst1)\n- 2万条多语言oasst1的reward数据集：[tasksource\u002Foasst1_pairwise_rlhf_reward](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Ftasksource\u002Foasst1_pairwise_rlhf_reward)\n- 11万条英文hh-rlhf的reward数据集：[Dahoas\u002Ffull-hh-rlhf](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDahoas\u002Ffull-hh-rlhf)\n- 9万条英文reward数据集(来自Anthropic's Helpful Harmless dataset)：[Dahoas\u002Fstatic-hh](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDahoas\u002Fstatic-hh)\n- 7万条英文reward数据集（来源同上）：[Dahoas\u002Frm-static](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDahoas\u002Frm-static)\n- 7万条繁体中文的reward数据集（翻译自rm-static）[liswei\u002Frm-static-m2m100-zh](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fliswei\u002Frm-static-m2m100-zh)\n- 7万条英文Reward数据集：[yitingxie\u002Frlhf-reward-datasets](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fyitingxie\u002Frlhf-reward-datasets)\n- 3千条中文知乎问答偏好数据集：[liyucheng\u002Fzhihu_rlhf_3k](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fliyucheng\u002Fzhihu_rlhf_3k)\n\n\n## ☎️ Contact\n\n- Issue(建议)\n  ：[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002FMedicalGPT.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues)\n- 邮件我：xuming: xuming624@qq.com\n- 微信我： 加我*微信号：xuming624, 备注：姓名-公司名-NLP* 进NLP交流群（加我拉你进群）。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_3dce032d5680.jpeg\" width=\"200\" \u002F>\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_53c1e43075e2.jpg\" width=\"200\" \u002F>\n\n## ⚠️ LICENSE\n\n本项目仅可应用于研究目的，项目开发者不承担任何因使用本项目（包含但不限于数据、模型、代码等）导致的危害或损失。详细请参考[免责声明](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002FDISCLAIMER)。\n\nMedicalGPT项目代码的授权协议为 [The Apache License 2.0](\u002FLICENSE)，代码可免费用做商业用途，模型权重和数据只能用于研究目的。请在产品说明中附加MedicalGPT的链接和授权协议。\n\n\n## 😇 Citation\n\n如果你在研究中使用了MedicalGPT，请按如下格式引用：\n\n```latex\n@misc{MedicalGPT,\n  title={MedicalGPT: Training Medical GPT Model},\n  author={Ming Xu},\n  year={2023},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT}},\n}\n```\n\n## 😍 Contribute\n\n项目代码还很粗糙，如果大家对代码有所改进，欢迎提交回本项目，在提交之前，注意以下两点：\n\n- 在`tests`添加相应的单元测试\n- 使用`python -m pytest`来运行所有单元测试，确保所有单测都是通过的\n\n之后即可提交PR。\n\n## 💕 Acknowledgements\n\n- [Direct Preference Optimization:Your Language Model is Secretly a Reward Model](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)\n- [tloen\u002Falpaca-lora](https:\u002F\u002Fgithub.com\u002Ftloen\u002Falpaca-lora\u002Fblob\u002Fmain\u002Ffinetune.py)\n- [ymcui\u002FChinese-LLaMA-Alpaca](https:\u002F\u002Fgithub.com\u002Fymcui\u002FChinese-LLaMA-Alpaca)\n\nThanks for their great work!\n\n#### 关联项目推荐\n- [shibing624\u002Fagentica](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fagentica)：基于 LLM 构建 Agent 框架，支持多种 Agent 类型，包括 RAG、在线搜索、Code interpreter、Vibe Coding、Claude Code、Copilot Agent 等\n\n","[**🇨🇳中文**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002FREADME.md) | [**🌐English**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002FREADME_EN.md) | [**📖文档\u002FDocs**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki) | [**🤖模型\u002FModels**](https:\u002F\u002Fhuggingface.co\u002Fshibing624)\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_7b48e0e7aa9a.png\" height=\"100\" alt=\"Logo\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n-----------------\n\n# MedicalGPT: 训练医疗GPT模型\n[![HF Models](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHugging%20Face-shibing624-green)](https:\u002F\u002Fhuggingface.co\u002Fshibing624)\n[![Github Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fshibing624\u002FMedicalGPT?color=yellow)](https:\u002F\u002Fstar-history.com\u002F#shibing624\u002FMedicalGPT&Timeline)\n[![Contributions welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontributions-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![License Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg)](LICENSE)\n[![python_version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.8%2B-green.svg)](requirements.txt)\n[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002FMedicalGPT.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues)\n[![Wechat Group](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwechat-group-green.svg?logo=wechat)](#Contact)\n\n## 📖 简介\n\n**MedicalGPT** 使用ChatGPT训练流程来训练医疗GPT模型，实现了预训练、有监督微调、RLHF（奖励建模与强化学习）以及DPO（直接偏好优化）。\n\n**MedicalGPT** 训练医疗大模型，实现了包括增量预训练、有监督微调、RLHF(奖励建模、强化学习训练)和DPO(直接偏好优化)。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_c479b622848b.jpg\" width=\"860\" \u002F>\n\n- RLHF训练流程源自Andrej Karpathy的演讲PDF《GPT现状》[State of GPT](https:\u002F\u002Fkarpathy.ai\u002Fstateofgpt.pdf)，视频链接为[Video](https:\u002F\u002Fbuild.microsoft.com\u002Fen-US\u002Fsessions\u002Fdb3f4859-cd30-4445-a0cd-553c3304f8e2)。\n- DPO方法来自论文《直接偏好优化：你的语言模型其实是个奖励模型》[Direct Preference Optimization:Your Language Model is Secretly a Reward Model](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)。\n- ORPO方法来自论文《ORPO：无需参考模型的一体化偏好优化》[ORPO: Monolithic Preference Optimization without Reference Model](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.07691)。\n\n## 🔥 新闻\n[2026\u002F04\u002F09] v2.6版本：支持了 **[Agent工具调用\u002FFunction Call]** 模型微调训练，新增了支持不同模型的工具数据格式转换和解析代码。并在 `data` 目录下补充了 `toolcall` 数据样例。详见[Release-v2.6](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.6.0)\n\n[2026\u002F04\u002F07] v2.5版本：支持了 **[Qwen3.5](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002FQwen\u002Fqwen35)** 系列模型（包括Base、Instruct和MoE变体），PT\u002FSFT\u002FDPO\u002FORPO\u002FGRPO全流程适配，新增`qwen3`、`qwen3_5`、`qwen3_nothink`、`qwen3_5_nothink`对话模板，支持DeepSpeed ZeRO-3 MoE训练，详见[Release-v2.5](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.5.0)\n\n[2025\u002F04\u002F18] v2.4版本：支持了LoRA和全参的 **[GRPO](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2402.03300)** 训练方法，GRPO通过纯RL方法可以体验`aha moment`，详见[Release-v2.4](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.4.0)\n\n[2024\u002F09\u002F21] v2.3版本：支持了 **[Qwen-2.5](https:\u002F\u002Fqwenlm.github.io\u002Fzh\u002Fblog\u002Fqwen2.5\u002F)** 系列模型，详见[Release-v2.3](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.3.0)\n\n[2024\u002F08\u002F02] v2.2版本：支持了角色扮演模型训练，新增了医患对话SFT数据生成脚本[role_play_data](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Frole_play_data\u002FREADME.md)，支持OpenAI、豆包、[MiniMax](https:\u002F\u002Fplatform.minimaxi.com\u002F)等多种LLM Provider，详见[Release-v2.2](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.2.0)\n\n\u003Cdetails>\u003Csummary>展开日志\u003C\u002Fsummary>\n\n[2024\u002F06\u002F11] v2.1版本：支持了 **[Qwen-2](https:\u002F\u002Fqwenlm.github.io\u002Fblog\u002Fqwen2\u002F)** 系列模型，详见[Release-v2.1](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.1.0)\n\n[2024\u002F04\u002F24] v2.0版本：支持了 **[Llama-3](https:\u002F\u002Fhuggingface.co\u002Fmeta-llama)** 系列模型，详见[Release-v2.0](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F2.0.0)\n\n[2024\u002F04\u002F17] v1.9版本：支持了 **[ORPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.07691)**，详细用法请参照 `scripts\u002Frun_orpo.sh`。详见[Release-v1.9](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.9.0)\n\n[2024\u002F01\u002F26] v1.8版本：支持微调Mixtral混合专家MoE模型 **[Mixtral 8x7B](https:\u002F\u002Fhuggingface.co\u002Fmistralai\u002FMixtral-8x7B-v0.1)**。详见[Release-v1.8](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.8.0)\n\n[2024\u002F01\u002F14] v1.7版本：新增检索增强生成(RAG)的基于文件问答[ChatPDF](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FChatPDF)功能，代码`demo\u002Fchatpdf.py`，可以基于微调后的LLM结合知识库文件问答提升行业问答准确率。详见[Release-v1.7](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.7.0)\n\n[2023\u002F10\u002F23] v1.6版本：新增RoPE插值来扩展GPT模型的上下文长度；针对LLaMA模型支持了[FlashAttention-2](https:\u002F\u002Fgithub.com\u002FDao-AILab\u002Fflash-attention)和[LongLoRA](https:\u002F\u002Fgithub.com\u002Fdvlab-research\u002FLongLoRA) 提出的 **$S^2$-Attn**；支持了[NEFTune](https:\u002F\u002Fgithub.com\u002Fneelsjain\u002FNEFTune)给embedding加噪训练方法。详见[Release-v1.6](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.6.0)\n\n[2023\u002F08\u002F28] v1.5版本: 新增[DPO(直接偏好优化)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)方法，DPO通过直接优化语言模型来实现对其行为的精确控制，可以有效学习到人类偏好。详见[Release-v1.5](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.5.0)\n\n[2023\u002F08\u002F08] v1.4版本: 发布基于ShareGPT4数据集微调的中英文Vicuna-13B模型[shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat)，和对应的LoRA模型[shibing624\u002Fvicuna-baichuan-13b-chat-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat-lora)，详见[Release-v1.4](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.4.0)\n\n[2023\u002F08\u002F02] v1.3版本: 新增LLaMA, LLaMA2, Bloom, ChatGLM, ChatGLM2, Baichuan模型的多轮对话微调训练；新增领域词表扩充功能；新增中文预训练数据集和中文ShareGPT微调训练集，详见[Release-v1.3](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.3.0)\n\n[2023\u002F07\u002F13] v1.1版本: 发布中文医疗LLaMA-13B模型[shibing624\u002Fziya-llama-13b-medical-merged](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-merged)，基于Ziya-LLaMA-13B-v1模型，SFT微调了一版医疗模型，医疗问答效果有提升，发布微调后的完整模型权重，详见[Release-v1.1](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.1)\n\n[2023\u002F06\u002F15] v1.0版本: 发布中文医疗LoRA模型[shibing624\u002Fziya-llama-13b-medical-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-lora)，基于Ziya-LLaMA-13B-v1模型，SFT微调了一版医疗模型，医疗问答效果有提升，发布微调后的LoRA权重，详见[Release-v1.0](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F1.0.0)\n\n[2023\u002F06\u002F05] v0.2版本: 以医疗为例，训练领域大模型，实现了四阶段训练：包括二次预训练、有监督微调、奖励建模、强化学习训练。详见[Release-v0.2](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Freleases\u002Ftag\u002F0.2.0)\n\n\u003C\u002Fdetails>\n\n\n## 😊 特性\n\n\n基于ChatGPT Training Pipeline，本项目实现了领域模型--医疗行业语言大模型的训练：\n\n\n- 第一阶段：PT(Continue PreTraining)增量预训练，在海量领域文档数据上二次预训练GPT模型，以适应领域数据分布（可选）\n- 第二阶段：SFT(Supervised Fine-tuning)有监督微调，构造指令微调数据集，在预训练模型基础上做指令精调，以对齐指令意图，并注入领域知识\n- 第三阶段\n  - RLHF(Reinforcement Learning from Human Feedback)基于人类反馈对语言模型进行强化学习，分为两步：\n    - RM(Reward Model)奖励模型建模，构造人类偏好排序数据集，训练奖励模型，用来建模人类偏好，主要是\"HHH\"原则，具体是\"helpful, honest, harmless\"\n    - RL(Reinforcement Learning)强化学习，用奖励模型来训练SFT模型，生成模型使用奖励或惩罚来更新其策略，以便生成更高质量、更符合人类偏好的文本\n  - [DPO(Direct Preference Optimization)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)直接偏好优化方法，DPO通过直接优化语言模型来实现对其行为的精确控制，而无需使用复杂的强化学习，也可以有效学习到人类偏好，DPO相较于RLHF更容易实现且易于训练，效果更好\n  - [ORPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.07691)比值比偏好优化，不需要参考模型（ref_model）的优化方法，通过ORPO，LLM可以同时学习SFT和对齐，将两个过程整合为单一步骤，缓解模型灾难性遗忘问题\n\n### 发布模型\n\n\n| 模型                                                                                                             | 基础模型                                                                              | 介绍                                                                                                                                                                 |\n|:------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [shibing624\u002Fziya-llama-13b-medical-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-lora)           | [IDEA-CCNL\u002FZiya-LLaMA-13B-v1](https:\u002F\u002Fhuggingface.co\u002FIDEA-CCNL\u002FZiya-LLaMA-13B-v1)       | 在240万条中英文医疗数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical)上SFT微调了一版Ziya-LLaMA-13B模型，医疗问答效果有提升，发布微调后的LoRA权重(单轮对话)                                 |\n| [shibing624\u002Fziya-llama-13b-medical-merged](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-merged)       | [IDEA-CCNL\u002FZiya-LLaMA-13B-v1](https:\u002F\u002Fhuggingface.co\u002FIDEA-CCNL\u002FZiya-LLaMA-13B-v1)       | 在240万条中英文医疗数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical)上SFT微调了一版Ziya-LLaMA-13B模型，医疗问答效果有提升，发布微调后的完整模型权重(单轮对话)                                 |\n| [shibing624\u002Fvicuna-baichuan-13b-chat-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat-lora)       | [baichuan-inc\u002FBaichuan-13B-Chat](https:\u002F\u002Fhuggingface.co\u002Fbaichuan-inc\u002FBaichuan-13B-Chat) | 在10万条多语言ShareGPT GPT4多轮对话数据集[shibing624\u002Fsharegpt_gpt4](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fsharegpt_gpt4) 和 医疗数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical) 上SFT微调了一版baichuan-13b-chat多轮问答模型，日常问答和医疗问答效果有提升，发布微调后的LoRA权重 |\n| [shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat)                 | [baichuan-inc\u002FBaichuan-13B-Chat](https:\u002F\u002Fhuggingface.co\u002Fbaichuan-inc\u002FBaichuan-13B-Chat) | 在10万条多语言ShareGPT GPT4多轮对话数据集[shibing624\u002Fsharegpt_gpt4](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fsharegpt_gpt4) 和 医疗数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical) 上SFT微调了一版baichuan-13b-chat多轮问答模型，日常问答和医疗问答效果有提升，发布微调后的完整模型权重 |\n| [shibing624\u002Fllama-3-8b-instruct-262k-chinese](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fllama-3-8b-instruct-262k-chinese) | [Llama-3-8B-Instruct-262k](https:\u002F\u002Fhuggingface.co\u002Fgradientai\u002FLlama-3-8B-Instruct-262k)  | 在2万条中英文偏好数据集[shibing624\u002FDPO-En-Zh-20k-Preference](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002FDPO-En-Zh-20k-Preference)上使用ORPO方法微调得到的超长文本多轮对话模型，适用于RAG、多轮对话                   |\n\n演示[shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat)模型效果：\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_b0ea6e88b399.gif\" width=\"860\" \u002F>\n具体case见[Inference Examples](#inference-examples)\n\n## ▶️ Demo\n\n\n我们提供了一个简洁的基于gradio的交互式web界面，启动服务后，可通过浏览器访问，输入问题，模型会返回答案。\n\n启动服务，命令如下：\n```shell\nCUDA_VISIBLE_DEVICES=0 python demo\u002Fgradio_demo.py --base_model path_to_llama_hf_dir --lora_model path_to_lora_dir\n```\n\n参数说明：\n\n- `--base_model {base_model}`：存放HF格式的LLaMA模型权重和配置文件的目录，也可使用HF Model Hub模型调用名称\n- `--lora_model {lora_model}`：LoRA文件所在目录，也可使用HF Model Hub模型调用名称。若lora权重已经合并到预训练模型，则删除--lora_model参数\n- `--tokenizer_path {tokenizer_path}`：存放对应tokenizer的目录。若不提供此参数，则其默认值与--base_model相同\n- `--template_name`：模板名称，如`vicuna`、`alpaca`等。若不提供此参数，则其默认值是vicuna\n- `--only_cpu`: 仅使用CPU进行推理\n- `--resize_emb`：是否调整embedding大小，若不调整，则使用预训练模型的embedding大小，默认不调整\n\n\n## 💾 Install\n#### Updating the requirements\n`requirements.txt`会不时更新以适配最新功能，使用以下命令更新依赖:\n\n```markdown\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\ncd MedicalGPT\npip install -r requirements.txt --upgrade\n```\n\n#### Hardware Requirement (显存\u002FVRAM)\n\n\n\\* *估算值*\n\n| 训练方法  | 精度          |   7B  |  13B  |  30B  |   70B  |  110B  |  8x7B |  8x22B |\n|-------|-------------| ----- | ----- | ----- | ------ | ------ | ----- | ------ |\n| 全参数   | AMP(自动混合精度) | 120GB | 240GB | 600GB | 1200GB | 2000GB | 900GB | 2400GB |\n| 全参数   | 16          |  60GB | 120GB | 300GB |  600GB |  900GB | 400GB | 1200GB |\n| LoRA  | 16          |  16GB |  32GB |  64GB |  160GB |  240GB | 120GB |  320GB |\n| QLoRA | 8           |  10GB |  20GB |  40GB |   80GB |  140GB |  60GB |  160GB |\n| QLoRA | 4           |   6GB |  12GB |  24GB |   48GB |   72GB |  30GB |   48GB |\n| QLoRA | 2           |   4GB |   8GB |  16GB |   24GB |   48GB |  18GB |   48GB |\n\n## 📁 Project Structure\n\n```\nMedicalGPT\u002F\n├── training\u002F                # 核心训练脚本（教学主线）\n│   ├── template.py                         # 对话模板定义\n│   ├── tool_utils.py                       # Agent工具调用格式化工具\n│   ├── pretraining.py                      # Stage 1: 增量预训练(PT)\n│   ├── supervised_finetuning.py            # Stage 2: 有监督微调(SFT, 支持Agent)\n│   ├── reward_modeling.py                  # Stage 3: 奖励模型(RM)\n│   ├── ppo_training.py                     # Stage 3: 强化学习(PPO\u002FRLOO)\n│   ├── dpo_training.py                     # Stage 3: 直接偏好优化(DPO, 支持Agent)\n│   ├── orpo_training.py                    # Stage 3: ORPO\n│   └── grpo_training.py                    # Stage 3: GRPO\n│\n├── scripts\u002F                 # 一键运行脚本 + DeepSpeed配置\n│   ├── run_pt.sh \u002F run_sft.sh \u002F run_dpo.sh \u002F ...\n│   └── zero1.json \u002F zero2.json \u002F zero3.json\n│\n├── demo\u002F                    # 推理、部署、应用示例\n│   ├── inference.py \u002F gradio_demo.py \u002F fastapi_server_demo.py\n│   ├── openai_api.py \u002F chatpdf.py\n│   └── inference_multigpu_demo.py\n│\n├── tools\u002F                   # 模型合并、量化、数据处理工具\n│   ├── merge_peft_adapter.py \u002F merge_tokenizers.py\n│   ├── model_quant.py \u002F eval_quantize.py\n│   └── convert_dataset.py \u002F validate_jsonl.py\n│\n├── notebooks\u002F               # Colab 教程 Notebook\n│   ├── run_training_dpo_pipeline.ipynb\n│   └── run_training_ppo_pipeline.ipynb\n│\n├── data\u002F                    # 训练数据\n│   ├── sft\u002F                               # SFT数据（含普通问答和Tool Call）\n│   └── reward\u002F                            # DPO\u002FRM偏好数据（含普通偏好和Tool Call偏好）\n├── docs\u002F                    # 文档\n└── tests\u002F                   # 测试\n```\n\n| 目录 | 说明 | 适合谁看 |\n|------|------|---------|\n| `training\u002F` | 核心训练代码，覆盖PT→SFT→RM→PPO\u002FDPO\u002FORPO\u002FGRPO全流程 | 想了解训练原理的开发者 |\n| `scripts\u002F` | 一键运行脚本和DeepSpeed配置，复制即用 | 快速上手训练的用户 |\n| `demo\u002F` | 推理、Gradio UI、FastAPI服务、RAG问答等示例 | 想部署和体验模型的用户 |\n| `tools\u002F` | LoRA合并、量化、词表扩充、数据格式转换等工具 | 需要模型后处理的用户 |\n| `notebooks\u002F` | Colab一键运行的端到端教程 | 零基础快速体验的用户 |\n\n> 所有脚本均从**项目根目录**运行，例如：`bash scripts\u002Frun_sft.sh`\n\n## 🚀 训练流程\n\n训练阶段：\n\n| 阶段                          | 介绍 | Python脚本                                                                                                    | Shell脚本                                                                           |\n|:-------------------------------|:-------------|:-----------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------|\n| 继续预训练           | 增量预训练        | [pretraining.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Fpretraining.py)                     | [run_pt.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_pt.sh)     |\n| 有监督微调         | 有监督微调        | [supervised_finetuning.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Fsupervised_finetuning.py) | [run_sft.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_sft.sh)   |\n| 直接偏好优化 | 直接偏好优化       | [dpo_training.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Fdpo_training.py)                   | [run_dpo.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_dpo.sh)   |\n| 奖励模型建模                | 奖励模型建模       | [reward_modeling.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Freward_modeling.py)             | [run_rm.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_rm.sh)     |\n| 强化学习         | 强化学习         | [ppo_training.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Fppo_training.py)                   | [run_ppo.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_ppo.sh)   |\n| 概率偏好优化                           | 概率偏好优化       | [orpo_training.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Ftraining\u002Forpo_training.py)                  | [run_orpo.sh](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fscripts\u002Frun_orpo.sh) |\n\n- 提供完整PT+SFT+DPO全阶段串起来训练的pipeline：[run_training_dpo_pipeline.ipynb](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fnotebooks\u002Frun_training_dpo_pipeline.ipynb) ，其对应的colab： [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fnotebooks\u002Frun_training_dpo_pipeline.ipynb)，运行完大概需要15分钟\n- 提供完整PT+SFT+RLHF全阶段串起来训练的pipeline：[run_training_ppo_pipeline.ipynb](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fnotebooks\u002Frun_training_ppo_pipeline.ipynb) ，其对应的colab： [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fnotebooks\u002Frun_training_ppo_pipeline.ipynb) ，运行完大概需要20分钟\n- 支持Agent工具调用微调训练（Agent Finetuning），SFT和DPO阶段均支持。详见下方 [Agent 训练](#agent-训练agent-finetuning) 章节\n- 提供基于知识库文件的LLM问答功能（RAG）：[chatpdf.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdemo\u002Fchatpdf.py)\n- [训练参数说明](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002Ftraining_params.md) | [训练参数说明wiki](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002F%E8%AE%AD%E7%BB%83%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E)\n- [数据集](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002Fdatasets.md) | [数据集wiki](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002F%E6%95%B0%E6%8D%AE%E9%9B%86)\n- [扩充词表](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002Fextend_vocab.md) | [扩充词表wiki](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002F%E6%89%A9%E5%85%85%E4%B8%AD%E6%96%87%E8%AF%8D%E8%A1%A8)\n- [FAQ](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002FFAQ.md) | [FAQ_wiki](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002FFAQ)\n\n#### Agent 训练（Agent Finetuning）\n\n本项目支持通过 SFT 和 DPO 两种方式训练具有工具调用（Function Call \u002F Tool Use）能力的 Agent 模型。\n\n**核心原理：** Tool Call 本质上是特殊的多轮对话，在标准的 `human`\u002F`gpt` 角色之外新增了 `function_call`（模型决定调用工具）和 `observation`（工具返回结果）两种角色。Template 系统统一处理所有角色，有工具描述就拼接到 system message，没有就跳过，对 loss 计算和训练过程完全透明。\n\n**数据格式：** 统一使用 jsonl（一行一条），ShareGPT 格式。\n\nSFT 数据（`data\u002Fsft\u002Fglaive_toolcall_zh_demo.jsonl`）：\n```\n{\"conversations\": [{\"from\": \"human\", \"value\": \"帮我查一下北京天气\"}, {\"from\": \"function_call\", \"value\": \"{\\\"name\\\": \\\"get_weather\\\", \\\"arguments\\\": {\\\"city\\\": \\\"北京\\\"}}\"}, {\"from\": \"observation\", \"value\": \"{\\\"temperature\\\": \\\"28°C\\\", \\\"weather\\\": \\\"晴\\\"}\"}, {\"from\": \"gpt\", \"value\": \"北京今天天气晴朗，气温28°C。\"}], \"tools\": \"[...]\"}\n```\n\nDPO 数据（`data\u002Freward\u002Ftoolcall_dpo_zh_demo.jsonl`）：\n```\n{\"conversations\": [{\"from\": \"human\", \"value\": \"帮我查一下北京天气\"}], \"tools\": \"[...]\", \"chosen\": \"Action: get_weather\\nAction Input: {\\\"city\\\": \\\"北京\\\"}\", \"rejected\": \"北京今天天气晴朗，气温25度。\"}\n```\n\n> **注意：** 所有训练数据统一为 `.jsonl` 格式。`chosen`\u002F`rejected` 为纯字符串。如有 `.json` 文件（JSON 数组），可用 `python tools\u002Fconvert_dataset.py --in_file data.json --out_file data.jsonl --data_type json2jsonl` 转换。\n\n**支持的 tool_format：**\n\n| tool_format | 适用模型 | 说明 |\n|-------------|---------|------|\n| `default`   | 通用 | Action\u002FAction Input 格式 |\n| `qwen`      | Qwen2.5\u002FQwen3\u002FQwen3.5 | `\u003Ctool_call>` XML格式 |\n| `qwen3`     | Qwen3 | 同 `qwen`，别名 |\n| `qwen3.5`   | Qwen3.5 | 同 `qwen`，别名 |\n| `glm4`      | GLM-4 | ChatGLM 工具格式 |\n| `llama3`    | LLaMA-3.x | JSON function call 格式 |\n| `mistral`   | Mistral | `[AVAILABLE_TOOLS]` 格式 |\n\n**混合训练：** 普通问答SFT数据和Tool Call数据可以一起训练，只需将两类数据文件放在同一个 `--train_file_dir` 目录下即可。没有 `tools` 字段的数据会按照普通SFT\u002FDPO流程处理。\n\n**训练命令：** Tool Call 数据与普通数据混合在同一目录下，直接使用标准训练脚本，加 `--tool_format` 参数即可：\n\n```shell\n# SFT（data\u002Fsft\u002F 目录下同时包含普通问答和 tool call 数据）\nbash scripts\u002Frun_sft.sh\n\n# DPO（data\u002Freward\u002F 目录下同时包含普通偏好和 tool call 偏好数据）\nbash scripts\u002Frun_dpo.sh\n```\n\n关键参数说明：\n- `--tool_format default`：指定工具调用的文本格式（可选 `default, glm4, llama3, mistral, qwen`）\n- 无需单独的 agent 训练脚本，普通数据和 tool call 数据自动混合训练\n\n#### 支持的模型\n\n| 模型名称                                                           | 模型规模                    | 目标模块  | 模板  |\n|----------------------------------------------------------------------|-------------------------------|-----------------|-----------|\n| [百川](https:\u002F\u002Fgithub.com\u002Fbaichuan-inc\u002Fbaichuan-13B)             | 7B\u002F13B                        | W_pack          | baichuan  |\n| [百川2](https:\u002F\u002Fgithub.com\u002Fbaichuan-inc\u002FBaichuan2)               | 7B\u002F13B                        | W_pack          | baichuan2 |\n| [BLOOMZ](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz)                   | 560M\u002F1.1B\u002F1.7B\u002F3B\u002F7.1B\u002F176B   | query_key_value | vicuna    |\n| [ChatGLM](https:\u002F\u002Fgithub.com\u002FTHUDM\u002FChatGLM-6B)                       | 6B                            | query_key_value | chatglm   |\n| [ChatGLM2](https:\u002F\u002Fgithub.com\u002FTHUDM\u002FChatGLM2-6B)                     | 6B                            | query_key_value | chatglm2  |\n| [ChatGLM3](https:\u002F\u002Fgithub.com\u002FTHUDM\u002FChatGLM3)                        | 6B                            | query_key_value | chatglm3  |\n| [Cohere](https:\u002F\u002Fhuggingface.co\u002FCohereForAI\u002Fc4ai-command-r-plus)     | 104B                          | q_proj,v_proj   | cohere    |\n| [DeepSeek](https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepSeek-LLM)              | 7B\u002F16B\u002F67B                    | q_proj,v_proj   | deepseek  |\n| [DeepSeek3](https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepSeek-V3)              | 671B                         | q_proj,v_proj   | deepseek3 |\n| [InternLM2](https:\u002F\u002Fgithub.com\u002FInternLM\u002FInternLM)                    | 7B\u002F20B                        | wqkv            | intern2   |\n| [LLaMA](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fllama)                   | 7B\u002F13B\u002F33B\u002F65B                | q_proj,v_proj   | alpaca    |\n| [LLaMA2](https:\u002F\u002Fhuggingface.co\u002Fmeta-llama)                          | 7B\u002F13B\u002F70B                    | q_proj,v_proj   | llama2    |\n| [LLaMA3](https:\u002F\u002Fhuggingface.co\u002Fmeta-llama)                          | 8B\u002F70B                        | q_proj,v_proj   | llama3    |\n| [Mistral](https:\u002F\u002Fhuggingface.co\u002Fmistralai\u002FMistral-7B-Instruct-v0.1) | 7B\u002F8x7B                       | q_proj,v_proj   | mistral   |\n| [Orion](https:\u002F\u002Fgithub.com\u002FOrionStarAI\u002FOrion)                        | 14B                           | q_proj,v_proj   | orion     |\n| [通义千问](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen)                               | 1.8B\u002F7B\u002F14B\u002F72B               | c_attn          | qwen      |\n| [Qwen1.5](https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen1.5-72B)                   | 0.5B\u002F1.8B\u002F4B\u002F14B\u002F32B\u002F72B\u002F110B | q_proj,v_proj   | qwen      |\n| [Qwen2](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2)                             | 0.5B\u002F1.5B\u002F7B\u002F72B              | q_proj,v.proj   | qwen      |\n| [Qwen2.5](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5)                         | 0.5B\u002F1.8B\u002F4B\u002F14B\u002F72B        | q_proj,v.proj   | qwen      |\n| [Qwen3](https:\u002F\u002Fhuggingface.co\u002FQwen)                                  | 0.6B\u002F1.7B\u002F4B\u002F8B\u002F14B\u002F32B\u002F235B | q_proj,v.proj   | qwen3     |\n| [Qwen3.5](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002FQwen\u002Fqwen35) | 0.8B\u002F2B\u002F4B\u002F9B\u002F27B\u002F35B\u002F122B | q_proj,v.proj   | qwen3_5   |\n| [XVERSE](https:\u002F\u002Fgithub.com\u002Fxverse-ai\u002FXVERSE-13B)                    | 13B                           | query_key_value | xverse    |\n| [Yi](https:\u002F\u002Fgithub.com\u002F01-ai\u002FYi)                                    | 6B\u002F34B                        | q_proj,v.proj   | yi        |\n\n\n\n\n## 💻 推理\n训练完成后，现在我们加载训练好的模型，验证模型生成文本的效果。\n\n```shell\nCUDA_VISIBLE_DEVICES=0 python demo\u002Finference.py \\\n    --base_model path_to_model_hf_dir \\\n    --lora_model path_to_lora \\\n    --interactive\n```\n\n参数说明：\n\n- `--base_model {base_model}`：存放HF格式的LLaMA模型权重和配置文件的目录\n- `--tokenizer_path {base_model}`：存放HF格式的LLaMA模型权重和配置文件的目录\n- `--lora_model {lora_model}`：LoRA解压后文件所在目录，也可使用HF Model Hub模型调用名称。如果已经合并了LoRA权重到预训练模型，则可以不提供此参数\n- `--tokenizer_path {tokenizer_path}`：存放对应tokenizer的目录。若不提供此参数，则其默认值与--base_model相同\n- `--template_name`：模板名称，如`vicuna`、`alpaca`等。若不提供此参数，则其默认值是vicuna\n- `--interactive`：以交互方式启动多轮问答，使用流式推理\n- `--data_file {file_name}`：非交互方式启动下，读取file_name中的的内容进行batch预测\n- `--output_file {file_name}`：非交互式方式下，将预测的结果以jsonl格式写入file_name\n- `--resize_emb`：是否调整embedding大小，若不调整，则使用预训练模型的embedding大小，默认不调整\n- `--only_cpu`：仅使用CPU进行推理\n- `--gpus {gpu_ids}`：指定使用的GPU设备编号，默认为0。如使用多张GPU，以逗号分隔，如0,1,2\n\n#### 多卡推理\n多卡数据并行，batch推理\n```shell\nCUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node 2 demo\u002Finference_multigpu_demo.py --base_model shibing624\u002Fvicuna-baichuan-13b-chat\n```\n#### vllm多卡部署\n```shell\nbash scripts\u002Fvllm_deployment.sh\n```\n\n\n#### 推理示例\n[shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat) 推理示例：\n\n\u003Cdetails>\u003Csummary>模型输出案例\u003C\u002Fsummary>\n\n| 人类                                                                              | 助手                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |\n|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 小孩发烧怎么办                                                                            | 发烧是身体对感染或其他疾病的自然反应。以下是一些可以帮助缓解发烧症状的建议：\u003Cbr\u002F>1. 保持身体水分充足：发烧时，身体会失去水分，因此需要保持水分充足。\u003Cbr\u002F>2. 使用冰袋：将冰袋放在额头或颈部可以帮助降低体温。\u003Cbr\u002F>3. 使用退烧药：退烧药可以帮助降低体温。\u003Cbr\u002F>4. 保持身体温度：保持身体温度可以帮助降低体温。\u003Cbr\u002F>5. 使用冷水或温水擦拭身体：使用冷水或温水擦拭身体可以帮助降低体温。\u003Cbr\u002F>6. 使用退烧药：退烧药可以帮助降低体温。\u003Cbr\u002F>7. 保持身体温度：保持身体温度可以帮助降低体温。\u003Cbr\u002F>8. 使用冷水或温水擦拭身体：使用冷水或温水擦拭身体可以帮助降低体温。\u003Cbr\u002F>9. 使用退烧药：退烧药可以帮助降低体温。\u003Cbr\u002F>10. 保持身体温度：保持身体温度可以帮助降低体温。                                                                                                                                                                                                                                                         |\n| 一岁宝宝发烧能吃啥药？                                                                        | 1岁宝宝发烧时，可以考虑以下几种药物：\u003Cbr\u002F>1. 退烧药：如布洛芬(Ibuprofen)或对乙酰氨基酚(Paracetamol)。这些药物可以帮助降低体温，缓解发烧症状。\u003Cbr\u002F>2. 抗生素：如果发烧是由细菌感染引起的，可以考虑使用抗生素。但请务必在医生的建议下使用。\u003Cbr\u002F>3. 抗病毒药物：如果发烧是由病毒感染引起的，可以考虑使用抗病毒药物。但请务必在医生的建议下使用。\u003Cbr\u002F>4. 解热镇痛药：如阿司匹林(Aspirin)或对乙酰氨基酚(Paracetamol)。这些药物可以帮助缓解发烧症状。\u003Cbr\u002F>5. 抗组胺药：如苯海拉明(Diphenhydramine)或非索非那定(Naproxen)。这些药物可以帮助缓解发烧症状。\u003Cbr\u002F>请务必在医生的建议下使用这些药物，并遵循药物说明书上的用量和用法。同时，保持宝宝充足的水分摄入，并确保宝宝有足够的休息。                                                                                                                                                                                                                             |\n| 肛门病变可能是什么疾病的症状                                                                     | 肛门病变可能由多种原因引起，包括感染、炎症、肿瘤或其他疾病。一些常见的肛门病变包括：\u003Cbr\u002F>1. 肛裂：这是一种肛门皮肤撕裂，通常由便秘或其他压力因素引起。\u003Cbr\u002F>2. 肛瘘：这是一种肛门感染，导致肛门皮肤和直肠之间形成瘘管。\u003Cbr\u002F>3. 肛门疣：这是一种肛门皮肤上形成的疣状病变，通常由人类乳头状瘤病毒(HPV)引起。\u003Cbr\u002F>4. 肛门脓肿：这是一种肛门感染，导致肛门皮肤下形成脓肿。\u003Cbr\u002F>5. 肛门肿瘤：这是一种肛门皮肤或直肠内形成的肿瘤。\u003Cbr\u002F>6. 肛门溃疡：这是一种肛门皮肤上形成的溃疡，通常由感染或炎症引起。\u003Cbr\u002F>7. 肛门瘙痒：这是一种肛门皮肤瘙痒的症状，可能由感染、炎症或其他疾病引起。\u003Cbr\u002F>如果您有肛门病变的症状，请咨询医疗保健专业人员以获得适当的诊断和治疗。                                                                                                                                                                                                                                                                  |\n| 医生，您好白带增多泛黄怎么回事？                                                                   | 您好，白带增多和发黄可能是由多种原因引起的，包括感染、荷尔蒙变化、阴道干燥或其他妇科问题。以下是一些可能的原因：\u003Cbr\u002F>1. 感染：白带增多和发黄可能是由阴道或尿道感染引起的。感染可能由细菌、病毒或真菌引起。\u003Cbr\u002F>2. 荷尔蒙变化：荷尔蒙变化，如月经周期或更年期，可能会导致白带增多和发黄。\u003Cbr\u002F>3. 阴道干燥：阴道干燥可能会导致白带增多和发黄。\u003Cbr\u002F>4. 其他妇科问题：其他妇科问题，如子宫颈炎、子宫内膜炎或子宫内膜异位症，也可能导致白带增多和发黄。\u003Cbr\u002F>如果您担心自己的白带，建议您咨询妇科医生进行检查和诊断。医生可以根据您的症状和检查结果确定原因并提供适当的治疗。                                                                                                                                                                                                                                                                                                                          |\n| 药流后有巧克力白带是没流干净吗                                                                    | 药流后出现巧克力白带并不一定意味着没有流干净。巧克力白带是由于子宫内膜脱落和出血引起的，通常在药流后的一段时间内会出现。\u003Cbr\u002F>\u003Cbr\u002F>药流后出现巧克力白带的原因可能包括：\u003Cbr\u002F>\u003Cbr\u002F>1. 子宫内膜脱落：药流后，子宫内膜会脱落，导致出血。这种出血可能表现为巧克力白带。\u003Cbr\u002F>2. 感染：药流后，子宫内膜和宫颈口可能存在创伤，容易受到细菌感染。感染可能导致巧克力白带。\u003Cbr\u002F>3. 激素水平变化：药流后，激素水平可能发生变化，导致巧克力白带。\u003Cbr\u002F>\u003Cbr\u002F>如果巧克力白带持续时间较长，或者伴有其他症状，如腹痛、发热、分泌物异味等，建议及时就诊，进行相关检查，如妇科检查、B超等，以确定是否存在感染或其他问题。在医生的指导下进行相应的治疗。                                                                                                                                                                                                                                                                                      |\n| 维胺酯维E乳膏能治理什么疾病                                                                     | 维胺酯维E乳膏是一种外用药物，主要用于治疗痤疮、脂溢性皮炎等皮肤病。它可以帮助减少皮肤油脂分泌，减轻炎症，促进皮肤修复。\u003Cbr\u002F>\u003Cbr\u002F>需要注意的是，维胺酯维E乳膏并非万能药，对于某些皮肤病可能并不适用。在使用前，建议咨询医生或药师，了解药物的适应症、禁忌症、用法用量等信息。同时，使用药物时应遵循医嘱，避免自行滥用。                                                                                                                                                                                                                                                                                                                                                                                                                                                               |\n| 痤疮是什么原因导致的?                                                                        | 痤疮，也称为粉刺，是由皮肤毛孔堵塞引起的。堵塞毛孔的原因有很多，包括：\u003Cbr\u002F>1. 皮脂腺过度活跃：皮脂腺产生过多油脂，导致毛孔堵塞。\u003Cbr\u002F>2. 毛孔堵塞：皮肤表面的死皮细胞、油脂和细菌堵塞毛孔。\u003Cbr\u002F>3. 炎症：痤疮通常伴随着炎症，这可能是由于皮肤感染或免疫系统对痤疮的反应引起的。\u003Cbr\u002F>4. 遗传因素：某些人可能更容易患痤疮，这可能是由于遗传因素引起的。\u003Cbr\u002F>5. 荷尔蒙变化：痤疮在青春期和月经期间更为常见，这可能是由于荷尔蒙变化引起的。\u003Cbr\u002F>6. 生活方式因素：某些生活方式因素，如压力、不良饮食和缺乏运动，也可能导致痤疮。\u003Cbr\u002F>7. 化妆品和护肤品：某些化妆品和护肤品可能导致痤疮，特别是那些含有刺激性成分的产品。\u003Cbr\u002F>8. 药物：某些药物，如口服避孕药，也可能导致痤疮。\u003Cbr\u002F>要预防痤疮，可以采取一些措施，如保持皮肤清洁、使用温和的护肤品、避免过度使用化妆品和护肤品、保持健康的生活方式和饮食习惯、避免压力和荷尔蒙变化。如果痤疮严重，可能需要寻求皮肤科医生的帮助。                                                                                                                                                         |\n| 脸上长青春痘怎么办,能吃啥药,需要注意啥                                                               | 青春痘，又称痤疮，是一种常见的皮肤病。青春痘的治疗需要综合考虑饮食、生活习惯、药物等多个方面。以下是一些建议：\u003Cbr\u002F>\u003Cbr\u002F>1. 饮食：\u003Cbr\u002F>* 避免高糖、高脂、高油的食物，如快餐、甜点、油炸食品等。\u003Cbr\u002F>* 多吃新鲜蔬菜、水果、全谷类食物，以增加纤维摄入，促进肠道蠕动。\u003Cbr\u002F>* 避免摄入过多的咖啡因、酒精、辛辣食物等刺激性食物。\u003Cbr\u002F>\u003Cbr\u002F>2. 生活习惯：\u003Cbr\u002F>* 保持良好的作息时间，保证充足的睡眠。\u003Cbr\u002F>* 避免长时间使用电脑、手机等电子产品，以免辐射对皮肤造成刺激。\u003Cbr\u002F>* 保持皮肤清洁，每天早晚使用温和的洁面产品清洁皮肤。\u003Cbr\u002F>* 避免挤压青春痘，以免感染和留下疤痕。\u003Cbr\u002F>\u003Cbr\u002F>3. 药物：\u003Cbr\u002F>* 外用药物：可以使用含有水杨酸、苯甲酸、壬二酸等成分的护肤品，帮助去除皮肤表面的角质，减少痘痘的形成。\u003Cbr\u002F>* 口服药物：如果青春痘严重，可以考虑口服抗生素、维生素B族、锌等药物，但需在医生指导下使用。\u003Cbr\u002F>\u003Cbr\u002F>4. 注意：\u003Cbr\u002F>* 不要随意使用化妆品、护肤品，以免刺激皮肤。\u003Cbr\u002F>* 不要过度清洁皮肤，以免破坏皮肤屏障。\u003Cbr\u002F>* 保持心情舒畅，避免焦虑、抑郁等负面情绪.\u003Cbr\u002F>\u003Cbr\u002F>总之，青春痘的治疗需要综合考虑饮食、生活习惯、药物等多个方面。在治疗过程中，要保持耐心和信心，遵循医生的建议，逐步改善皮肤状况。 |\n| 由于输精管堵塞会不会导致男性不育？，医生您好，我同事这几天不开心，我问她怎么了，她说她老公输精管堵塞，所以一直没孩子，不是不想要，请问输精管堵塞会不会导致男性不育？ | 输精管堵塞可能会导致男性不育。输精管是连接睾丸和尿道的一条管道，负责将精子从睾丸输送到尿道。如果输精管堵塞，精子就无法通过输精管到达尿道，从而导致不育。\u003Cbr\u002F>\u003Cbr\u002F>输精管堵塞的原因有很多，包括先天性发育异常、炎症、肿瘤、外伤等。输精管堵塞的治疗方法包括手术疏通、药物治疗等。如果输精管堵塞严重，可能需要进行手术疏通。\u003Cbr\u002F>\u003Cbr\u002F>需要注意的是，输精管堵塞并不一定导致不育，因为还有其他途径可以将精子输送到女性体内。例如，精子可以通过附睾、前列腺等组织到达女性体内。因此，如果输精管堵塞，建议及时就医，寻求专业医生的帮助。                                                                                                                                                                                                                                                                                                                                                     |\n| 心肌梗塞能治疗吗？                                                                          | 心肌梗死是一种严重的疾病，如果及时治疗，可以挽救生命并防止长期残疾。治疗心肌梗死的关键是尽早识别和治疗。\u003Cbr\u002F>\u003Cbr\u002F>心肌梗死的治疗通常包括以下步骤：\u003Cbr\u002F>\u003Cbr\u002F>1. 立即就医：如果出现胸痛、呼吸急促或晕厥等症状，立即就医。\u003Cbr\u002F>\u003Cbr\u002F>2. 药物治疗：医生可能会开处方药物，如硝酸甘油或阿司匹林，以帮助缓解症状并防止进一步的损伤。\u003Cbr\u002F>\u003Cbr\u002F>3. 溶栓治疗：如果患者在到达医院前出现心肌梗死，医生可能会进行溶栓治疗，通过注射溶解血栓的药物来帮助恢复血流。\u003Cbr\u002F>\u003Cbr\u002F>4. 手术治疗：如果药物治疗或溶栓治疗无效，医生可能会建议进行手术，如冠状动脉搭桥手术或心脏支架植入术。\u003Cbr\u002F>\u003Cbr\u002F>5. 康复和预防：心肌梗死的治疗通常包括康复计划，以帮助患者恢复身体功能并预防未来的心脏事件。此外，患者还应遵循医生的建议，以降低患心脏病的风险。\u003Cbr\u002F>\u003Cbr\u002F>需要注意的是，心肌梗死的治疗取决于患者的具体情况和症状。因此，如果您或您认识的人出现心肌梗死症状，请立即就医。                                                                                                                                                            |\n| 怎么让自己精力充沛，列5点建议                                                                    | 1. 保持充足的睡眠：睡眠对于保持精力充沛至关重要。确保每晚获得7-9小时的高质量睡眠。\u003Cbr\u002F>2. 均衡饮食：均衡饮食对于保持能量水平至关重要。确保摄入足够的蛋白质、碳水化合物和健康脂肪。\u003Cbr\u002F>3. 定期锻炼：定期锻炼可以帮助提高能量水平。尝试每天进行至少30分钟的有氧运动，如散步、跑步或骑自行车。\u003Cbr\u002F>4. 管理压力：压力会消耗能量，因此管理压力对于保持精力充沛至关重要。尝试找到放松和减压的方法，如冥想、瑜伽或深呼吸练习。\u003Cbr\u002F>5. 保持水分：脱水会降低能量水平。确保每天喝足够的水，并根据需要补充水分。                                                                                                                                                                                                                                                                                                                                                         |\n| 写个春天的诗                                                                             | 春天，\u003Cbr\u002F>是大地苏醒的季节，\u003Cbr\u002F>是万物复苏的季节，\u003Cbr\u002F>是生命绽放的季节。\u003Cbr\u002F>春天，\u003Cbr\u002F>是阳光明媚的季节，\u003Cbr\u002F>是鸟语花香的季节，\u003Cbr\u002F>是绿意盎然的季节，\u003Cbr\u002F>是希望无限的季节。\u003Cbr\u002F>春天，\u003Cbr\u002F>是人们欢笑的季节，\u003Cbr\u002F>是孩子们嬉戏的季节，\u003Cbr\u002F>是恋人们相拥的季节，\u003Cbr\u002F>是人们追求梦想的季节。                                                                                                                                                                                                                                                                                                                                                                                                                                               |\n| 南极洲为啥没有北极熊?                                                                        | 南极洲没有北极熊，因为北极熊生活在北极地区，而南极洲位于南半球，气候和环境与北极地区有很大不同。南极洲的气候非常寒冷，常年被冰雪覆盖，而北极熊则生活在北极地区，那里有丰富的海洋生物和陆地哺乳动物。此外，南极洲的生态系统也与北极地区不同，没有北极熊所需的生存条件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |\n\n\u003C\u002Fdetails>\n\n\n\n\n## 📚 数据集\n### 医疗数据集\n\n- 240万条中文医疗数据集(包括预训练、指令微调和奖励数据集)：[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical)\n- 22万条中文医疗对话数据集(华佗项目)：[shibing624\u002Fhuatuo_medical_qa_sharegpt](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fhuatuo_medical_qa_sharegpt) 【本项目支持格式】\n\n### 通用数据集\n\n#### 预训练数据集\n- 16GB中英文无监督、平行语料[Linly-AI\u002FChinese-pretraining-dataset](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FLinly-AI\u002FChinese-pretraining-dataset)\n- 524MB中文维基百科语料[wikipedia-cn-20230720-filtered](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fpleisto\u002Fwikipedia-cn-20230720-filtered)\n#### 指令微调数据集\n- 10万条多语言ShareGPT GPT4多轮对话数据集：[shibing624\u002Fsharegpt_gpt4](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fsharegpt_gpt4) 【本项目支持格式】\n- 9万条英文ShareGPT多轮对话数集：[anon8231489123\u002FShareGPT_Vicuna_unfiltered](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fanon8231489123\u002FShareGPT_Vicuna_unfiltered) 【本项目支持格式】\n- 50万条中文ChatGPT指令Belle数据集：[BelleGroup\u002Ftrain_0.5M_CN](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FBelleGroup\u002Ftrain_0.5M_CN)\n- 100万条中文ChatGPT指令Belle数据集：[BelleGroup\u002Ftrain_1M_CN](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FBelleGroup\u002Ftrain_1M_CN)\n- 5万条英文ChatGPT指令Alpaca数据集：[50k English Stanford Alpaca dataset](https:\u002F\u002Fgithub.com\u002Ftatsu-lab\u002Fstanford_alpaca#data-release)\n- 2万条中文ChatGPT指令Alpaca数据集：[shibing624\u002Falpaca-zh](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Falpaca-zh)\n- 69万条中文指令Guanaco数据集(Belle50万条+Guanaco19万条)：[Chinese-Vicuna\u002Fguanaco_belle_merge_v1.0](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FChinese-Vicuna\u002Fguanaco_belle_merge_v1.0)\n- 5万条英文ChatGPT多轮对话数据集：[RyokoAI\u002FShareGPT52K](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FRyokoAI\u002FShareGPT52K)\n- 80万条中文ChatGPT多轮对话数据集：[BelleGroup\u002Fmultiturn_chat_0.8M](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FBelleGroup\u002Fmultiturn_chat_0.8M)\n- 116万条中文ChatGPT多轮对话数据集：[fnlp\u002Fmoss-002-sft-data](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Ffnlp\u002Fmoss-002-sft-data)\n- 3.8万条中文ShareGPT多轮对话数据集：[FreedomIntelligence\u002FShareGPT-CN](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FFreedomIntelligence\u002FShareGPT-CN)\n- 130万条中文微调数据集（汇总）：[zhuangxialie\u002FLlama3-Chinese-Dataset](https:\u002F\u002Fmodelscope.cn\u002Fdatasets\u002Fzhuangxialie\u002FLlama3-Chinese-Dataset\u002FdataPeview) 【本项目支持格式】\n- 7千条中文角色扮演多轮对话数据集：[shibing624\u002Froleplay-zh-sharegpt-gpt4-data](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Froleplay-zh-sharegpt-gpt4-data) 【本项目支持格式】\n\n#### 偏好数据集\n- 2万条中英文偏好数据集：[shibing624\u002FDPO-En-Zh-20k-Preference](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002FDPO-En-Zh-20k-Preference) 【本项目支持格式】\n- 原版的oasst1数据集：[OpenAssistant\u002Foasst1](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FOpenAssistant\u002Foasst1)\n- 2万条多语言oasst1的reward数据集：[tasksource\u002Foasst1_pairwise_rlhf_reward](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Ftasksource\u002Foasst1_pairwise_rlhf_reward)\n- 11万条英文hh-rlhf的reward数据集：[Dahoas\u002Ffull-hh-rlhf](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDahoas\u002Ffull-hh-rlhf)\n- 9万条英文reward数据集(来自Anthropic's Helpful Harmless dataset)：[Dahoas\u002Fstatic-hh](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDahoas\u002Fstatic-hh)\n- 7万条英文reward数据集（来源同上）：[Dahoas\u002Frm-static](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDahoas\u002Frm-static)\n- 7万条繁体中文的reward数据集（翻译自rm-static）[liswei\u002Frm-static-m2m100-zh](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fliswei\u002Frm-static-m2m100-zh)\n- 7万条英文Reward数据集：[yitingxie\u002Frlhf-reward-datasets](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fyitingxie\u002Frlhf-reward-datasets)\n- 3千条中文知乎问答偏好数据集：[liyucheng\u002Fzhihu_rlhf_3k](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fliyucheng\u002Fzhihu_rlhf_3k)\n\n\n## ☎️ 联系方式\n\n- 提问与建议：\n  ：[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002FMedicalGPT.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues)\n- 邮件联系：xuming: xuming624@qq.com\n- 微信联系：请添加我的微信号：xuming624，备注：姓名-公司名-NLP，即可加入NLP交流群（我会拉你进群）。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_3dce032d5680.jpeg\" width=\"200\" \u002F>\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_readme_53c1e43075e2.jpg\" width=\"200\" \u002F>\n\n## ⚠️ 许可协议\n\n本项目仅可用于研究目的，项目开发者不承担任何因使用本项目（包含但不限于数据、模型、代码等）导致的危害或损失。详细请参考[免责声明](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002FDISCLAIMER)。\n\nMedicalGPT项目代码的授权协议为 [The Apache License 2.0](\u002FLICENSE)，代码可免费用做商业用途，模型权重和数据只能用于研究目的。请在产品说明中附加MedicalGPT的链接和授权协议。\n\n\n## 😇 引用方式\n\n如果你在研究中使用了MedicalGPT，请按如下格式引用：\n\n```latex\n@misc{MedicalGPT,\n  title={MedicalGPT: Training Medical GPT Model},\n  author={Ming Xu},\n  year={2023},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT}},\n}\n```\n\n## 😍 贡献方式\n\n项目代码目前还比较粗糙，如果大家对代码有所改进，欢迎提交回本项目，在提交之前，注意以下两点：\n\n- 在`tests`添加相应的单元测试\n- 使用`python -m pytest`来运行所有单元测试，确保所有单测都是通过的\n\n之后即可提交PR。\n\n## 💕 致谢\n\n- [Direct Preference Optimization:Your Language Model is Secretly a Reward Model](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)\n- [tloen\u002Falpaca-lora](https:\u002F\u002Fgithub.com\u002Ftloen\u002Falpaca-lora\u002Fblob\u002Fmain\u002Ffinetune.py)\n- [ymcui\u002FChinese-LLaMA-Alpaca](https:\u002F\u002Fgithub.com\u002Fymcui\u002FChinese-LLaMA-Alpaca)\n\n感谢他们的杰出工作！\n\n#### 相关项目推荐\n- [shibing624\u002Fagentica](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fagentica)：基于 LLM 构建 Agent 框架，支持多种 Agent 类型，包括 RAG、在线搜索、Code interpreter、Vibe Coding、Claude Code、Copilot Agent 等","# MedicalGPT 快速上手指南\n\nMedicalGPT 是一个基于 ChatGPT 训练流程的医疗领域大模型训练项目，支持增量预训练（PT）、有监督微调（SFT）、RLHF（奖励建模 + 强化学习）以及 DPO\u002FORPO\u002FGRPO 等偏好优化方法。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐 Ubuntu 20.04+) 或 macOS\n- **Python**: 3.8 及以上版本\n- **GPU**: 支持 CUDA 的 NVIDIA 显卡（显存需求见下文）\n- **CUDA**: 建议安装与 PyTorch 版本匹配的 CUDA 驱动\n\n### 显存需求估算\n| 训练方法 | 精度 | 7B | 13B | 30B | 70B |\n| :--- | :--- | :--- | :--- | :--- | :--- |\n| **全参数** | AMP | 120GB | 240GB | 600GB | 1200GB |\n| **全参数** | 16-bit | 60GB | 120GB | 300GB | 600GB |\n| **LoRA** | 16-bit | 16GB | 32GB | 64GB | 160GB |\n| **QLoRA** | 4-bit | 6GB | 12GB | 24GB | 48GB |\n\n> 注：以上为估算值，实际占用视序列长度和批次大小而定。推荐使用 LoRA 或 QLoRA 进行低成本微调。\n\n## 2. 安装步骤\n\n### 克隆项目\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\ncd MedicalGPT\n```\n\n### 安装依赖\n建议使用国内镜像源加速安装（如清华源）：\n```bash\npip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --upgrade\n```\n\n若需使用 FlashAttention-2 或其他高级特性，请确保已安装对应的 CUDA 扩展库。\n\n## 3. 基本使用\n\n本项目提供了一个基于 Gradio 的简易 Web 界面，用于加载模型并进行对话测试。\n\n### 启动演示服务\n在终端执行以下命令启动服务：\n\n```shell\nCUDA_VISIBLE_DEVICES=0 python demo\u002Fgradio_demo.py --base_model path_to_llama_hf_dir --lora_model path_to_lora_dir\n```\n\n### 参数说明\n- `--base_model`: 基座模型路径（HuggingFace 格式目录或模型 ID），例如 `shibing624\u002Fvicuna-baichuan-13b-chat`。\n- `--lora_model`: LoRA 权重路径（若已合并权重可省略此参数）。\n- `--template_name`: 对话模板名称（如 `vicuna`, `alpaca`, `qwen3_5` 等），默认为 `vicuna`。\n- `--only_cpu`: 强制仅使用 CPU 推理（速度较慢）。\n\n### 访问界面\n启动成功后，终端会显示本地访问地址（通常为 `http:\u002F\u002F127.0.0.1:7860`）。在浏览器打开该地址，即可输入医疗相关问题与模型交互。\n\n### 示例：加载特定模型\n假设你已下载了 Baichuan-13B 的医疗微调模型：\n```shell\nCUDA_VISIBLE_DEVICES=0 python demo\u002Fgradio_demo.py \\\n  --base_model baichuan-inc\u002FBaichuan-13B-Chat \\\n  --lora_model shibing624\u002Fvicuna-baichuan-13b-chat-lora \\\n  --template_name vicuna\n```","某三甲医院信息科联合 AI 实验室，试图基于通用大模型构建一款能辅助年轻医生进行复杂病例分析且符合临床规范的智能助手。\n\n### 没有 MedicalGPT 时\n- **专业术语幻觉严重**：通用模型缺乏医学语料增量预训练，常编造不存在的药物相互作用或诊疗指南，导致输出内容不可信。\n- **医患沟通风格生硬**：模型无法模仿资深专家的口吻，回答机械冰冷，缺乏对患者情绪的共情，难以直接用于临床咨询场景。\n- **对齐优化门槛极高**：团队需从零搭建 RLHF 或 DPO 训练流水线，代码复现难度大，且难以获取高质量的医疗偏好数据来纠正模型错误。\n- **工具调用能力缺失**：模型无法准确解析并调用医院内部的挂号、检验报告查询等 API 接口，只能停留在纯文本问答层面。\n\n### 使用 MedicalGPT 后\n- **领域知识精准内化**：利用 MedicalGPT 的增量预训练（PT）功能注入海量医学文献与病历，显著消除了专业幻觉，确保诊断建议有据可依。\n- **角色扮演自然流畅**：通过内置的医患对话 SFT 数据生成脚本进行微调，模型学会了“温和、严谨”的专家语气，大幅提升了人机交互体验。\n- **偏好对齐一键落地**：直接复用其集成的 DPO、ORPO 及 GRPO 全流程算法，快速将人类医生的反馈转化为模型偏好，使回答更符合临床伦理与规范。\n- **业务系统无缝集成**：借助 v2.6 版本的 Agent 工具调用支持，轻松微调模型识别函数指令，实现了从“问诊”到“自动开具检查单”的闭环操作。\n\nMedicalGPT 将原本需要数月研发的医疗大模型训练工程，简化为可复用的标准化流水线，让医疗机构能以低成本拥有安全、可控且懂业务的专属 AI 医生。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_MedicalGPT_ad971438.png","shibing624","Ming Xu (徐明)","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fshibing624_1945cf94.jpg","Algorithm Researcher, Deep Learning Developer","@tencent","Beijing, China","shibing624@126.com",null,"https:\u002F\u002Fblog.csdn.net\u002Fmingzai624","https:\u002F\u002Fgithub.com\u002Fshibing624",[84,88,92],{"name":85,"color":86,"percentage":87},"Python","#3572A5",82.2,{"name":89,"color":90,"percentage":91},"Jupyter Notebook","#DA5B0B",14.8,{"name":93,"color":94,"percentage":10},"Shell","#89e051",5260,740,"2026-04-19T16:17:46","Apache-2.0","Linux","必需 NVIDIA GPU。显存需求取决于模型大小和训练方法：全参数训练 7B 模型需 60-120GB，LoRA 微调 7B 需 16GB，QLoRA (4-bit) 微调 7B 仅需 6GB。支持 DeepSpeed ZeRO-3 和 FlashAttention-2。","未说明（建议根据模型大小配置，通常需大于显存需求）",{"notes":103,"python":104,"dependencies":105},"项目主要面向医疗大模型的全流程训练（预训练、SFT、RLHF、DPO、ORPO）。支持多种架构（Llama, Qwen, Baichuan, Mixtral 等）。演示代码支持 CPU 推理，但训练强烈建议使用 GPU。具体显存占用可参考 README 中的硬件需求表，量化训练（QLoRA）可显著降低显存门槛。","3.8+",[106,107,108,109,110,111,112,113],"torch","transformers","accelerate","deepspeed","peft","gradio","flash-attn","datasets",[36,14,13],[116,117,118,119,120,121,122],"llama","chatgpt","gpt","llm","medical","dpo","medicalgpt","2026-03-27T02:49:30.150509","2026-04-20T12:54:01.409321",[126,131,136,141,146,151],{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},44717,"DeepSpeed Zero-3 是否支持 low_cpu_mem_usage=True 或 device_map 参数？","不支持。DeepSpeed Zero-3 与 low_cpu_mem_usage=True 或传递 device_map 参数不兼容。如果遇到此类报错，需要移除 device_map 设置，并注意参数初始化可能出现的异常。对于显存不足的情况，可能需要调整 DeepSpeed 配置或减少批次大小。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues\u002F46",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},44718,"使用 ChatGLM 模型进行预训练时报错 'ValueError: 130004 is not in list' 如何解决？","该错误是因为 ChatGLM 训练时需要 [gMASK] 标记（对应 ID 130004）来判断自回归训练目标。解决方法是在数据预处理阶段：\n1. 设置 tokenize 时 add_special_tokens=False；\n2. 在构造每条训练样本时，手动在开头拼接 [gMASK] 和 [BOS] token，在结尾拼接 [EOS] token。\n代码示例逻辑如下：\nprefix = [config.gmask_token_id, config.bos_token_id]\nsuffix = [config.eos_token_id]\nresult = { k: [prefix + t[i : i + block_size_] + suffix for ...] }","https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues\u002F11",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},44719,"ChatGLM 模型二次预训练（PT）后，是否还需要进行指令微调（SFT）？","是的，必须进行 SFT。预训练（PT）主要是让模型学习领域知识的语言分布，而指令微调（SFT）是为了让模型对齐人类指令并进行对话。只有经过 SFT 阶段，模型才能正确地响应用户的问答请求。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues\u002F101",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},44720,"使用 Llama 等模型进行全量参数 SFT 微调后，推理结果异常或乱码是什么原因？","这通常是代码中 Tokenizer 的 padding 设置问题。在全量参数微调代码中，如果设置了 tokenizer.padding_side = \"left\"（左填充），可能导致推理异常。建议检查并尝试将其改为 \"right\"（右填充），或者调试输入输出数据处理流程，确保与模型预期的填充方向一致。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues\u002F69",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},44721,"ChatGLM 全参数二次预训练时 Loss 迅速变为 0 且验证集 Loss 为 NaN 怎么办？","这通常是由于学习率过大、批次大小设置不当或数据预处理错误导致的梯度爆炸。建议检查以下几点：\n1. 降低学习率（例如从 2e-4 降至 1e-5 或更小）；\n2. 检查数据是否包含异常值或格式错误；\n3. 确认是否错误地使用了针对 PEFT 的参数（如 lora_rank）在全量训练场景中；\n4. 尝试关闭 gradient_checkpointing 或使用不同的混合精度策略（如从 bfloat16 换回 float16 或反之）进行测试。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fissues\u002F125",{"id":152,"question_zh":153,"answer_zh":154,"source_url":135},44722,"如何处理预训练数据分割时的长度问题以避免 '130004 is not in list' 错误？","除了添加特殊的 [gMASK] token 外，还需要注意数据分割逻辑。原始代码直接按 block_size 切割可能会切断特殊 token。建议修改 group_texts 函数，在切割前预留特殊 token 的位置（例如 block_size_ = block_size - 3），并在每个切片的首尾重新添加 prefix ([gMASK], [BOS]) 和 suffix ([EOS])，确保每个训练样本结构完整。",[156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231],{"id":157,"version":158,"summary_zh":159,"released_at":160},352178,"1.8.0","## v1.8版本\n\n1. 支持微调Mixtral混合专家MoE模型 **[Mixtral 8x7B](https:\u002F\u002Fhuggingface.co\u002Fmistralai\u002FMixtral-8x7B-v0.1)**。在SFT过程中，若使用LoRA对模型进行微调，可开启4位量化和QLoRA`--load_in_4bit True --qlora True`以节省显存。建议设置`--target_modules q_proj,k_proj,v_proj,o_proj`，这样可以避免对MoE专家网络的MLP层进行量化，因为这些层较为稀疏，量化后会导致性能下降。\n2. 新增了对deepseek、deepseekcoder、orion模型的微调支持，并提供了相应的模板。\n\n\n\n\n**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.7.0...1.8.0","2024-01-26T10:20:27",{"id":162,"version":163,"summary_zh":164,"released_at":165},352179,"1.7.0","## v1.7版本：\n\n1. 新增基于检索增强生成（RAG）的文件问答功能[ChatPDF](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FChatPDF)，代码文件为`chatpdf.py`。该功能可结合微调后的大语言模型与知识库文件进行问答，从而提升行业问答的准确率。运行`python chatpdf.py`即可调用RAG问答功能。\n\n\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.6.0...1.7.0","2024-01-14T04:09:50",{"id":167,"version":168,"summary_zh":169,"released_at":170},352171,"2.6.0","## 更新摘要\n\nMedicalGPT v2.6.0 新增了 Agent 工具调用（Function Call \u002F Tool Use）训练能力，主路径覆盖 `SFT` 和 `DPO`。同时补齐了工具数据格式处理、样例数据和脚本兼容性，方便在教学和实验场景中直接上手。\n\n## 主要更新\n\n- 支持 `SFT` 和 `DPO` 的 Agent \u002F Function Call 微调训练\n- 新增多种模型的 `tool_format` 适配与解析逻辑，覆盖 `default`、`glm4`、`llama3`、`mistral`、`qwen`\n- 补充 `data\u002Fsft\u002Fglaive_toolcall_zh_demo.jsonl` 等 tool-call 数据样例\n- 统一本地训练数据为 `.jsonl`，并将 SFT \u002F 偏好数据字段统一为 ShareGPT 风格\n- 修复本地混合 `jsonl` 目录加载：SFT 和 DPO 现在可以直接混合普通数据与带 `tools` 字段的数据文件\n- 多个运行脚本统一默认使用 `python3`\n\n## 使用方式\n\n```bash\n# SFT：普通问答数据和 tool-call 数据可放在同一目录\nbash scripts\u002Frun_sft.sh\n\n# DPO：普通偏好数据和 tool-call 偏好数据可放在同一目录\nbash scripts\u002Frun_dpo.sh\n```\n\n## 说明\n\n- 本版本的 tool-call 训练主路径为 `SFT` 和 `DPO`\n- `tools` 字段为可选列；普通样本和 tool-call 样本可以混合放在同一训练目录\n- 训练脚本、数据目录和字段命名进一步统一，便于教学仓库维护和用户二次修改\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F2.5.0...2.6.0\n","2026-04-14T04:00:46",{"id":172,"version":173,"summary_zh":174,"released_at":175},352172,"2.5.0","全流程适配Qwen3\u002FQwen3.5：\n```\nPT（增量预训练）— training\u002Fpretraining.py\nSFT（有监督微调）— training\u002Fsupervised_finetuning.py \u002F training\u002Fsupervised_finetuning_accelerate.py\nRM（奖励模型）— training\u002Freward_modeling.py\nPPO（强化学习）— training\u002Fppo_training.py\nDPO（直接偏好优化）— training\u002Fdpo_training.py\nORPO（比值比偏好优化）— training\u002Forpo_training.py\nGRPO（群组相对策略优化）— training\u002Fgrpo_training.py\nDeepSpeed ZeRO-3 MoE 支持\n```\n针对 MoE 架构模型（Qwen3 MoE、Qwen3.5 MoE），在所有训练脚本中自动检测并设置 set_z3_leaf_modules，确保 DeepSpeed ZeRO-3 分布式训练下 MoE 模块不会被错误分片。同时兼容已有的 Mixtral 和 DeepSeek-V3 MoE 模型。\n\n项目结构重组\n将根目录 38 个散落文件按功能重组到 5 个子目录，提升教学仓库的可读性：\n\nMedicalGPT\u002F\n├── training\u002F    # 核心训练脚本（PT\u002FSFT\u002FRM\u002FPPO\u002FDPO\u002FORPO\u002FGRPO + 模板）\n├── scripts\u002F     # 一键运行脚本 + DeepSpeed 配置（zero1\u002F2\u002F3.json）\n├── demo\u002F        # 推理、Gradio UI、FastAPI 服务、RAG 问答\n├── tools\u002F       # LoRA 合并、量化、词表扩充、数据转换\n└── notebooks\u002F   # Colab 端到端教程 Notebook\n所有脚本从项目根目录运行，例如：bash scripts\u002Frun_sft.sh\n\n```\n快速开始\n# SFT 微调 Qwen3.5-2B\nbash scripts\u002Frun_sft.sh\n# GRPO 训练\nbash scripts\u002Frun_grpo.sh\n# 推理\npython demo\u002Finference.py --base_model Qwen\u002FQwen3.5-2B --interactive\n```\n\n## 变更内容\n* @whaler404 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F470 中重构了 model_kwargs 和日志记录，以提高清晰度。\n* @octo-patch 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F481 中新增了 MiniMax 作为角色扮演数据生成的 LLM 提供者。\n* @Copilot 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F484 中修复了 ppo_training.py 中多 GPU 内存分配不均导致的 OOM 问题。\n\n## 新贡献者\n* @whaler404 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F470 中做出了首次贡献。\n* @octo-patch 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F481 中做出了首次贡献。\n* @Copilot 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F484 中做出了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F2.4.0...2.5.0","2026-04-07T12:18:02",{"id":177,"version":178,"summary_zh":179,"released_at":180},352173,"2.4.0","## v2.4.0\n1. 新增GRPO训练方法，GRPO通过纯RL方法可以体验`aha moment`，https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Frun_grpo.sh\n2. 支持了 DeepSeek-V3, **[DeepSeek-R1](https:\u002F\u002Fhuggingface.co\u002Fdeepseek-ai\u002FDeepSeek-R1)** 模型, template_name=deepseek3\n","2025-02-17T03:18:44",{"id":182,"version":183,"summary_zh":184,"released_at":185},352174,"2.2.0","## v2.2.0\n\n- 支持了角色扮演模型训练\n- 新增了医患对话SFT数据生成脚本[role_play_data](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Frole_play_data\u002FREADME.md)\n\n### 造角色扮演对话\n本数据集使用OpenAI API接口生成，流程：\n\n- **种子特征集和基础设定**：\n   - 手工编写的种子集包含基本角色特征。\n   - LLM从这个种子集生成角色的基础设定。\n- **角色设定的进化**：\n  - 第二个种子集包含指导角色设定进化的指令Prompt。\n  - 这些进化角色的指令Prompt被放到一个指令池中。基于这些进化Prompt，LLM对基础设定实施进化。\n- **反馈循环**：\n  - 由人类评估者和GPT-4组成的混合评价系统。此系统对进化后的设定给出反馈。\n  - 反馈用于迭代更新种子集。如此迭代，我们最终得到一个细致的角色设定数据集。\n- **角色扮演和对话生成**：\n  - 使用self-instruction框架基于角色设定生成角色的对话数据。\n\n\n1. 生成角色设定，分别生成护士角色和患者角色\n```bash\ncd role_play_data\n\npython role_generate.py\n```\n\n\n2. 生成医患之间的多轮对话\nLLM选择：分别用gpt-4o的api和豆包的doubao-character-pro-32k的api生成对话\n```bash\npython roleplay_data_generate_gpt4.py\n\npython roleplay_data_generate_doubao.py\n```\n\n\n\n## 有哪些变化\n* 添加了full_train.py和run_full_train.sh，由@ZhuangXialie在https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F394中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F2.1.0...2.2.0","2024-08-02T10:59:01",{"id":187,"version":188,"summary_zh":189,"released_at":190},352175,"2.1.0","## v2.1版本：\n- 支持了 [Qwen2](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2) 系列模型微调训练\n\n## 变更内容\n* 增加中文数据集汇总，本项目支持格式 由 @ZhuangXialie 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F370 中实现\n* 将 Llama 分词器由 LlamaTokenizer 更改为 AutoTokenizer 由 @princepride 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F380 中完成\n\n## 新贡献者\n* @princepride 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F380 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F2.0.0...2.1.0","2024-06-11T03:25:58",{"id":192,"version":193,"summary_zh":194,"released_at":195},352176,"2.0.0","## v2.0版本：\n- 支持了 Meta Llama 3 系列模型微调训练\n- 发布了适用于ORPO\u002FDPO\u002FRM模型的偏好数据集[shibing624\u002FDPO-En-Zh-20k-Preference](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002FDPO-En-Zh-20k-Preference)\n- 基于[llama-3-8b-instruct-262k](https:\u002F\u002Fhuggingface.co\u002Fgradientai\u002FLlama-3-8B-Instruct-262k)模型使用ORPO方法微调，得到 模型权重：https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fllama-3-8b-instruct-262k-chinese ，及对应的lora权重：https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fllama-3-8b-instruct-262k-chinese-lora\n\n## 变更内容\n* @ker2xu 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F360 中更新了 README 和演示 Jupyter Notebook，并对已弃用的函数进行了小幅更新。\n* @ker2xu 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F362 中修复了一个错别字。\n* @ZhuangXialie 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F367 中添加了 `max_length` 和 `max_prompt_length` 参数。\n\n## 新贡献者\n* @ker2xu 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F360 中完成了首次贡献。\n* @ZhuangXialie 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F367 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.9.0...2.0.0","2024-04-27T05:36:46",{"id":197,"version":198,"summary_zh":199,"released_at":200},352177,"1.9.0","## v1.9版本\n1. 支持了 **[ORPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.07691)**，详细用法请参照 `run_orpo.sh`。 不需要参考模型的优化方法，通过ORPO，LLM可以同时学习指令遵循和满足人类偏好，可以直接用base模型训练ORPO，训练相较SFT+DRO更简单，相对需要更多偏好数据集数据。\n2. 新增了支持微调qwen1.5, cohere 模型，和对应的template。\n\n\n\n## 变更内容\n* 由 @dividez 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F321 中更新了 requirements.txt 文件中的 transformers 版本。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.8.0...1.9.0","2024-04-17T09:01:02",{"id":202,"version":203,"summary_zh":204,"released_at":205},352180,"1.6.0","## v1.6版本：\n\n1. 新增了RoPE插值来扩展GPT模型的上下文长度，通过[位置插值方法](https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.15595)，在增量数据上进行训练，使模型获得长文本处理能力，使用 `--rope_scaling linear` 参数训练模型；\n2. 针对LLaMA模型支持了[FlashAttention-2](https:\u002F\u002Fgithub.com\u002FDao-AILab\u002Fflash-attention)，如果您使用的是 RTX4090、A100 或 H100 GPU，请使用 `--flash_attn` 参数以启用 FlashAttention-2；\n3. 新增了[LongLoRA](https:\u002F\u002Fgithub.com\u002Fdvlab-research\u002FLongLoRA) 提出的 **$S^2$-Attn**，使模型获得长文本处理能力，SFT中使用 `--shift_attn` 参数以启用该功能；\n4. 支持了[NEFTune](https:\u002F\u002Fgithub.com\u002Fneelsjain\u002FNEFTune)给embedding加噪SFT训练方法，[NEFTune paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.05914), 使用 `--neft_alpha` 参数启用 NEFTune，例如 `--neft_alpha 5`；\n5. PT增量预训练支持qlora方法，如果使用的是 RTX4090、A100 或 H100 GPU，支持nf4，使用`--qlora True --load_in_kbits 4`参数启用qlora训练。\n\n\n\n## 变更内容\n* 关于 validation_file_dir 的修改，由 @Billccx 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F196 中完成。\n* 修复类似问题 #194，由 @kinghuin 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F200 中完成。\n* 修复 lm_head 类型变更的 bug，由 @jiangtann 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F215 中完成。\n\n## 新贡献者\n* @Billccx 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F196 中做出了首次贡献。\n* @kinghuin 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F200 中做出了首次贡献。\n* @jiangtann 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F215 中做出了首次贡献。\n\n**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.5.0...1.6.0","2023-10-23T08:01:04",{"id":207,"version":208,"summary_zh":209,"released_at":210},352181,"1.5.0","### v1.5版本\r\n\r\n新增[DPO(直接偏好优化)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.18290.pdf)方法，DPO通过直接优化语言模型来实现对其行为的精确控制，而无需使用复杂的强化学习，也可以有效学习到人类偏好，DPO相较于RLHF更容易实现且易于训练，效果更好。\r\n\r\n提供完整PT+SFT+DPO全阶段串起来训练的pipeline：[run_training_dpo_pipeline.ipynb](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Frun_training_dpo_pipeline.ipynb) ，其对应的colab： [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Frun_training_dpo_pipeline.ipynb)，运行完大概需要15分钟，我运行成功后的副本colab：[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1kMIe3pTec2snQvLBA00Br8ND1_zwy3Gr?usp=sharing)\r\n\r\n\r\n## What's Changed\r\n* Update rl_training.py by @dividez in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F159\r\n* Update pretraining.py by @anwuzhiab in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F167\r\n* Dpo by @shibing624 in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F180\r\n* update dpo pynb by @shibing624 in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F181\r\n\r\n## New Contributors\r\n* @dividez made their first contribution in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F159\r\n* @anwuzhiab made their first contribution in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F167\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.4.0...1.5.0","2023-08-27T16:05:18",{"id":212,"version":213,"summary_zh":214,"released_at":215},352182,"1.4.0","### v1.4版本\r\n\r\n发布基于ShareGPT4数据集微调的中英文Vicuna-13B模型[shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat)，和对应的LoRA模型[shibing624\u002Fvicuna-baichuan-13b-chat-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat-lora)，效果提升，并支持多轮问答。\r\n\r\n演示[shibing624\u002Fvicuna-baichuan-13b-chat](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fvicuna-baichuan-13b-chat)模型效果：\r\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fdocs\u002Fdemo-screen.gif\" width=\"860\" \u002F>\r\n\r\n\r\n## What's Changed\r\n* update tokenizer for multi round task by @shibing624 in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F151\r\n* Dev round by @shibing624 in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F153\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.3.0...1.4.0","2023-08-08T07:41:08",{"id":217,"version":218,"summary_zh":219,"released_at":220},352183,"1.3.0","### v1.3版本\r\n1. 新增LLaMA, LLaMA2, Bloom, ChatGLM, ChatGLM2, Baichuan模型的多轮对话微调训练\r\n2. 新增领域词表扩充功能 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Fbuild_domain_tokenizer.py\r\n3. 新增中文预训练数据集和中文ShareGPT微调训练集 https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fwiki\u002F%E6%95%B0%E6%8D%AE%E9%9B%86\r\n\r\n\r\n\r\n\r\n## What's Changed\r\n* Dev by @shibing624 in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F139\r\n* Dev by @shibing624 in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F140\r\n* Dev by @shibing624 in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F142\r\n\r\n## New Contributors\r\n* @shibing624 made their first contribution in https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fpull\u002F139\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.2.0...1.3.0","2023-08-02T05:45:10",{"id":222,"version":223,"summary_zh":224,"released_at":225},352184,"1.1","### 1.1版本:\r\n发布中文医疗模型[shibing624\u002Fziya-llama-13b-medical-merged](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-merged)，基于Ziya-LLaMA-13B-v1模型，SFT微调了一版医疗模型，医疗问答效果有提升，发布微调后的完整模型权重\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F1.0.0...1.1","2023-07-13T03:22:09",{"id":227,"version":228,"summary_zh":229,"released_at":230},352185,"1.0.0","\r\nv1.0.0版本: \r\n\r\n- 发布中文医疗LoRA模型[shibing624\u002Fziya-llama-13b-medical-lora](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Fziya-llama-13b-medical-lora)，基于Ziya-LLaMA-13B-v1模型，SFT微调了一版医疗模型，医疗问答效果有提升，发布微调后的LoRA权重\r\n- 提供完整四阶段串起来训练的pipeline：[run_training_pipeline.ipynb](https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Frun_training_pipeline.ipynb) ，其对应的colab： [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fshibing624\u002FMedicalGPT\u002Fblob\u002Fmain\u002Frun_training_pipeline.ipynb) \r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F0.2.0...1.0.0\r\n","2023-06-15T06:52:09",{"id":232,"version":233,"summary_zh":234,"released_at":235},352186,"0.2.0","以医疗为例，训练医疗大模型，实现了四阶段训练：包括二次预训练、有监督微调、奖励建模、强化学习训练。\r\n\r\n1）各阶段代码已经全部跑通，支持bloom, llama, chatglm等多模型训练；\r\n2）RM奖励建模支持bert, Robert, llama, bloom等模型；\r\n3）支持colab在线训练和测试；\r\n4）支持单Python脚本执行任务；\r\n5）发布了医疗大模型训练数据集[shibing624\u002Fmedical](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fshibing624\u002Fmedical)。\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002FMedicalGPT\u002Fcompare\u002F0.1.0...0.2.0","2023-06-15T03:06:35"]