医疗大模型微调避坑指南:领域适配、长文本处理与模型压缩的20个核心问题
首先整个项目的灵感来源于一档播客(十字路口)中分享的2024年最让人惊艳的十大AI落地项目的其中一个。其项目介绍如下:“某全国万店连锁药房,推出驻店销售APP。该APP可以将到店客户的对于病情的描述进行录音,并转化为文字输入大模型。大模型输出对应药品的介绍以及推销文案,辅助销售人员将利润高的药品推销成功。与传统的AI辅助应用不同,此款App专门设计用于推荐那些利润较高的药品,同时确保推荐过程自然流
1.项目背景:
首先整个项目的灵感来源于一档播客(十字路口)中分享的2024年最让人惊艳的十大AI落地项目的其中一个。其项目介绍如下:
“某全国万店连锁药房,推出驻店销售APP。该APP可以将到店客户的对于病情的描述进行录音,并转化为文字输入大模型。大模型输出对应药品的介绍以及推销文案,辅助销售人员将利润高的药品推销成功。
与传统的AI辅助应用不同,此款App专门设计用于推荐那些利润较高的药品,同时确保推荐过程自然流畅,避免让顾客感到被推销的压力。为了维护顾客的信任感,销售人员会采用诸如“帮您查询最新的会员优惠信息”这样的措辞来解释他们的操作,从而降低了顾客的防备心理,并增强了顾客与销售人员之间的互动质量。
据公开数据显示,自从引入了这款App之后,该连锁药店的利润显著增长了30%。值得注意的是,在药品行业中,并非价格越高的药品其利润空间就越大,因此该模型推荐策略的选择显得尤为重要。此外,由于App减轻了对销售人员专业背景的要求,这不仅使得招聘变得更为容易,还有效降低了人力成本,为连锁药店带来了更多的节省空间和发展机会。”

然后我们团队又回顾了一下,中国近10年的互联网发展史。发现我们非常善于解决老百姓最后X公里这件事。
例如:
- 共享单车:解决了短途出行的需求,特别是在城市环境中,帮助人们轻松地完成从公共交通站点到目的地的“最后一公里”。
- 三通一达&京东快递:这些物流公司通过高效的配送网络,解决了从城市的电商仓库或站点到消费者家门口的“最后五公里”,极大地方便了网购商品的送达。
- 各类外卖平台:如美团、饿了么等,它们不仅提供了便捷的食物配送服务,还扩展到了日常用品、药品等多品类的即时配送,极大地丰富了消费者的生活选择,缩短了等待时间,使得“足不出户”就能享受到各种服务成为可能。
最后,我们开动脑洞,发现能不能这个真实的案例之上,做一层扩展呢。然后我又做了一个用户场景的分析,如下所示:

到此,我们基本就敲定了,模拟一个线上问诊,购药的APP。在保证推荐高利润药品的同时,解决最后的配送问题。
2.技术架构及选型:

最初版本的产品核心架构
在项目开始之初,我们的思路是:
首先,用户输入病情描述,然后经过RAG检索增强,并结合prompt输入大模型,生成推荐结果。接着,用户查看病情解析和药品推荐后下单购买药品。最后,用户完成订单。在这个过程中,AI Agent会处理一些特定的问题,比如是否需要叫配送、客户选择时效优先还是低费用优先、哪个平台提成回扣高等。如果需要的话,还会执行呼叫跑腿和跑腿配送。
其中可以看出来,我们其实是想利用Agent去做一些判断,同时把获取各平台跑腿价格和下单接口封装为工具。但是由于Agent的推理本质也是通过Prompt去实现的,Prompt是人写的,这就意味着会反复调整,并且推理结果不稳定。这会大大的增加整个项目的集成复杂度,并且在时间有限的情况我们最终放弃了Agent。
然后敲定了以下这版的技术架构方案:

最终敲定版本的技术架构图
基础层:使用Qwen-VL-Chat作为大模型底座,利用其多模态能力实现医疗图像的识别与回答。同时选用BGE-M3作为向量模型,Chroma数据库作为向量数据库,用于构建药品和医疗知识补充的知识库。最后使用Nginx作为请求映射。
接口层:使用Swift:OpenAI API 和 LangServe:Restful API,作为承上启下,实现大模型与业务能力的串联整合。
能力层:构建“通用知识对话”、“医疗问答”、“药品咨询”、“意图识别”、“报告诊断书识别”等能力。
展现层:通过PC、Web呈现Demo最终效果。
3.多模态模型微调:
这次比赛项目,我们为了保险起见采用了双轨机制。一组使用Qwen-VL-Chat进行微调,另一组使用LLaVA1.5-7b-hf进行微调(选择7b是因为算力有限,实属无奈)。后边会分别介绍两组的微调过程和结果分析说明:
3.1 Qwen-VL-Chat 微调
采用了魔搭推荐的SWIFT框架进行微调,微调方式为LoRA,同时使用了transformer中默认的计算QKV大矩阵的训练的方式。
^ ( t r a n s f o r m e r . h ) ( ? ! . * ( l m _ h e a d | o u t p u t | e m b | w t e | s h a r e d ) ) . *
(1)为了不出现因为专业能力提升,导致通识能力大步退化,甚至出现灾难性遗忘。在微调时也插入了一部分通识数据,包括:
alpaca-zh(中文版的Alpaca数据集),
alpaca-cleaned(Alpaca数据集的清理版本。原始的Alpaca数据集可能包含一些噪声和不规范的数据,)
sharegpt-gpt4(由社区贡献的GPT-4模型的训练数据集,包含了大量高质量的文本数据,用于训练和微调GPT-4模型),
swift-mix(是一个混合数据集,通常用于训练和微调Swift框架下的模型。包含了多种类型的数据,如文本、图像、音频等,旨在提供一个综合性的训练数据集。)
注:由于Qwen-VL-Chat是一个多模态大模型,所以在补充了基本预料数据集以外,还补充了swift-mix这种混合数据集。以此来保障其多模态的通识能力。
(2)医疗专业数据补充,基于medical-zh-instruct、Chinese-medical-dialogue、ChatMed_Consult_Dataset、disc-med-sft-zh(多轮对话)、UCSD26(多轮对话)、llava-med-zh-instruct(图文)数据集抽样40W数据进行微调。
相关微调参数为:
–learning_rate 1e-4 --warmup_ratio 0.03 --max_length 2048 --batch_size 4 – weight_decay 0.1 --gradient_accumulation_steps 16

微调过程监控记录
在微调的过程中,训练损失(train/loss)虽然存在波动,但是整体上还是呈现下降趋势;训练准确率(train accuracy)也存在波动,但是整体上准确率还是呈现上升趋势。学习率(train learning rate)先从一个非常小的值逐渐达到峰值后降低,避免初期学习率过高导致模型不稳定。GPU内存使用量也是初始阶段呈上升趋势,达到约38G,然后保持稳定。

ARC_E 通用评测数据测评结果
在通用评测数据ARC_E上,qwen-vl-chat-sft(微调后)和qwen-vl-chat(微调前)分别取得了0.7259和0.7698的准确率,表明经过微调后的模型在原有通用能力上并没有太大的下降。
最后可以看一下微调效果对比:

微调后具备追问能力,同时回答的更加详细

医疗图像微调前后效果比对
微调前,模型无法正确识别上传的CT图像,只能给出模糊的回答,如“抱歉,我无法识别这些图像”、“对不起,您上传的图像内并未包含识别到的信息”。
而微调后,模型能够正确识别出上传的CT图像显示的是COVID-19肺炎的症状,并给出了具体的解释:“CT图像显示肺部有斑片状密度增高影,这与COVID-19肺炎的特征相符。”
至此,经过了两轮的微调后,基本达到了作为本次项目底座的能力。
3.2 LLaVA 1.5 - 7b - hf 微调
同时我们也尝试了使用LLaVA1.5-7b-hf作为初始的通用领域多模态对话模型,再将模型训练到生物医学领域。对于基于LLaVA1.5-7b-hf的医疗大模型微调实践,共计尝试了3次微调。
本次使用了LLaMA-Factory框架进行微调,使用的数据集包括:
1)ava-med-zh-instruct-60k 包含60,000条中文指令,专门用于医疗领域的中文指令数据集
数据示例:
{
"instruction": "根据病历描述,给出初步诊断建议。",
"input": "患者主诉头痛,伴有恶心和呕吐,持续两天。",
"output": "初步诊断:偏头痛。建议进行头部CT检查以排除其他原因。"
}
2)PMC-15M 是一个包含1500万篇医学文献的数据集,这些文献来自PubMed Central(PMC),这是一个由美国国家医学图书馆(NLM)维护的免费全文生物医学和生命科学期刊数据库.
数据示例:
{
"pmcid": "PMC123456",
"title": "Effect of Exercise on Cardiovascular Health",
"abstract": "This study examines the impact of regular exercise on cardiovascular health in adults.",
"body": "Introduction: Regular physical activity has been shown to have numerous health benefits...",
"authors": ["John Doe", "Jane Smith"],
"journal": "Journal of Cardiology",
"year": 2022,
"doi": "10.1001/jama.2022.12345",
"keywords": ["exercise", "cardiovascular health", "physical activity"]
}

第一次微调过程及结果
其实第一次微调,也仅仅是使用一个中文数据集 & 一个英文医学论文库组成的数据集进行尝试。本来是计划根据第一次结果来调整后边的微调策略。但是第一次微调完成后,发现几乎是没有效果的。
于是就有第二次的尝试,增加了X-ray-6k(包含6000张胸部X光片)。并在Prompt上增加统一user的提问:‘根据X射线图像,分析心脏和肺部的情况’。
然而,在训练过程中,我们遇到了一些挑战:
- 模型看到输入的图片,无法理解,并一本正经胡说八道
- 出现灾难性遗忘
- 资源消耗过大
针对这些问题,我们进行了原因分析。发现特定任务微调后导致模型遵循通用指令能力变弱的主要原因是任务数据集的信息分布与原始LLM的信息分布之间存在差距。简单直白的说,就是模型被玩坏了…
最后,我进行第三次微调。

第三次微调过程及结果
第三次微调,在原来的基础上利用llava-med-zh-instruct-60k数据集的知识蒸馏,让模型学习医疗领域通用指令。使用X-ray-6k数据集增加轮次微调,使模型充分学习解剖胸片的能力。
时,为了匹配两个数据集,我们设置了每个数据集的最大样本数max_samples为6000,并保持了它们之间的权重平衡。
然后由于提供的孙阿里有限,我们只完成了1.5轮的训练。虽然解决了灾难性遗忘的问题,但在实际应用中仍存在问题。
由于比赛时间比较有限。我们直接选择Qwen-VL-Chat作为大模型底座,直接放弃LLaVA-1.5-7b微调的模型。不过通过这两次微调,我们也总结出来2个最核心的经验:
1) 数据集,非常重要。在微调前一定要多花时间精力找数据集。最好是在某个行业有比较好的认可性的,同时有足够的负样本、可以做数据增强、有通用的蒸馏数据的。不然很容易微调以后把模型玩坏。
2)模型选择,最好能结合清晰的目标选择模型,以及模型的大小。尽量在节约资源的情况下发挥不同类型(或不同大小)模型的最大能力。例如本次项目的LLaVA其实在选型的时候,团队还没有确定项目和场景。并且llava1.5-7b-hf模型不够强大,本身存在胡言乱语的现象。所以这个选择属实有点草率了。
4.RAG检索增强:
我们是在网上down了一些,医疗论文和相关药品说明的数据。然后通过BGE-3M模型Embedding后,存储到了一个Chroma DB中。
在RAG层面上,我们做了Multi - Query & ParentDocumentRetriever组合尝试。同时借鉴了ColBERT的思想,当需要更高粒度的嵌入时,对文档和查询中的每个标记使用受上下文影响的嵌入,以获得精细的查询-文档相似性分数。

同时,对于数据还做了一些传统数据加工工作,例如数据清洗 、 格式标准化 、 质量监控 、 反馈循环。这里就不再赘述了。
但是客观的说,整个RAG部分做的并不好,命中召回不高。截止在比赛答辩前其实也一直在尝试,但一直没有找到一个比较好的策略。
5.最终效果展示:

Demo 操作面板

演示效果 - 1

演示效果 - 2
最终在答辩前,其实是实现了最初的目标能力的。
1)药品推荐,可以根据症状描述推荐一些药物。但是推荐药品的重复率非常高。
2)医疗咨询,可以做简单的医疗问题回答,并回答基本病理。
3)英文问答,由于Qwen-VL-Chat在微调时,数据集比较全面和均衡,包含一部分英文数据集。所以在英文文档方面表现还算不错。
4)医疗影像识别,对于骨折,CT阴影都可以很好的识别到。但是具体病症存在胡说八道的情况,例如骨折位置说错,将新冠肺炎的胸片表现说成是肺结核。不过你用现在的通义千问去试效果也是一样的。可能医学领域确实比较复杂吧。我其实也不知道现在有哪家这方面可以做的非常好的,之前调研过一个百度的(百度AI用药助手),连医学影像识别能力都没有。讯飞晓医的小程序也一样,只能上传药盒或者药品说明书,并不支持医疗图像。或者说这个领域是不是都是专业的模型提供商,并没有很好的开源产品,有知道的大佬也可以给我留言,解答一下我的疑惑。
5)诊断书/病例识别,对于诊断书,病例,血常规可以做好比较好的识别。但在推荐药品时,也是胡乱推荐,或一直推荐重复的药品。
6)能力组合,对于一个复杂的对话,其实可以看到整个能力链 医疗图像识别 --> 症状追问 --> 药品推荐。
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。


👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)

👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)