写点什么

医疗场景实战:百条数据 RFT 微调盘古大模型,精度大幅提升

  • 2025-03-26
    广东
  • 本文字数:3471 字

    阅读完需:约 11 分钟

医疗场景实战:百条数据 RFT 微调盘古大模型,精度大幅提升

摘要:RFT 强化微调是一种新型 LLM 微调方法,通过强化学习与传统微调结合,少量数据即可显著增强领域场景的模型能力。


本文分享自华为云社区《医疗场景实战|百条数据RFT微调盘古大模型,效果超越DS》,作者:盘古大模型官方账号。

医疗场景实战|百条数据 RFT 微调盘古大模型,效果超越 DS

2024 年以来,强化微调(Reinforcement Fine-Tuning, RFT)技术成为 AI 领域的热点,其核心在于将强化学习(Reinforcement Learning, RL)与传统微调方法结合,推动大语言模型(Large Language Model, LLM)性能突破。在 OpenAI 连续 12 天的技术发布会上,发布了强化微调的工具链,「只需几十个样例,模型就能学会在自定义领域以新的有效方式进行推理」。也就是说,这种技术既能提高其在某领域特定任务上的准确性,还能增强模型对类似问题的推理能力,成为一个真正的领域专家。


3 月 12 日,华为云 ModelArts Studio 大模型开发平台最新发布了强化微调功能,支持对盘古大模型进行强化微调,为盘古大模型深入行业提供了更高性价比的、领域增强的解决方案。同时,ModelArts Studio 也成为业界首个支持在国产硬件上支持强化微调的平台。


华为云 ModelArts Studio 大模型开发平台,盘古大模型唯一企业级入口,数据工程、模型开发、Agent 开发及垂域应用四大套件全覆盖,昇腾硬件加持,全栈训推,性能出众,助力企业快速实现 AI 应用。

RFT 技术到底强在哪里?用更少的数据获得更优的领域效果

强化微调是一种基于强化学习的模型微调方法。该方法通过引导模型分别给定的指令集自主生成响应,并利用参考答案对响应进行评分,从而突破了传统训练方式对海量人工标注偏好数据的依赖。借助这一技术,仅需少量高质量样本(数百至数千条)即可定制化训练特定领域的模型。

其训练过程如下:


· 用户数据集:通常仅需数百至数千条行业数据,需包含“system”(可选):系统指令,“context”:用户指令,“target”:参考答案;

· LLM:选择具备 Chat 能力的模型作为 RFT 基座模型,如可选 pangu-NLP-N2-4K 模型

· 规则打分器:用于帮助模型“自我反思”,如 ModelArts Studio 当前支持逆序排序的打分方式

· 强化算法:选择 GRPO、DPO 等强化算法进行 RFT 训练

在强化学习机制的支持下,强化微调使得模型能够通过“自我博弈”的方式自主生成训练数据,并结合动态奖励机制持续优化输出质量,兼顾效率与效果。与传统的监督微调(Supervised Fine-Tuning, SFT)相比,RFT 在数据稀缺的专业领域展现出明显优势,适应性更强。

盘古大模型+强化微调 RFT 的场景实战:800 条数据提升 10+%的模型精度

实战行业场景:大模型辅助诊断医疗疾病场景。

行业难点:

· 通用模型由于在后训练阶段缺乏医疗相关数据,存在一定的幻觉问题;

· 通用模型一般直接进行症状匹配并作出诊断,准确率低。

本次实验分为 4 个步骤:


Step1:准备实战数据

本次实验采用医疗开源数据集 DxBench,随机选取 800 条数据为训练集,其余作为验证集。

数据样例:


(Source: Chen, Junying, et al. "CoD, Towards an Interpretable Medical Agent using Chain of Diagnosis." arXiv preprint arXiv:2407.13301 (2024).)

Step2:上传数据至 ModelArts Studio 平台

数据拼接:

DxBench 原始数据中仅列出了显性症状、隐形症状与候选病症的独立信息,无法直接输入到模型中进行训练。为此,我们设计了一套简单的用户指令,给定上述三种信息,要求模型输出一个病症列表,其中排在第一位的是模型认为最有可能的病症,第二位为可能性较大的病症,以此类推。


拼接后用户指令如下:

你是一位经验丰富的医生。请基于患者的症状信息,对候选疾病进行可能性排序。\n\n 输入信息包括:\n1.显性症状列表:[{显性病状}]]\n2.隐性症状列表:[{隐形病状}]\n3.候选疾病列表:{候选病症}\n\n 请按照以下步骤进行分析:\n1.综合分析所有症状信息\n2.对每个候选疾病评估其与症状的匹配程度\n3.基于症状表现的典型性和特异性进行排序\n4.将疾病按可能性从高到低排序,并以 json 格式输出最终的排序列表\n\n 示例输出:\n{\n \"possible_diseases\": [\"疾病 1\", \"疾病 2\", \"疾病 3\"]\n}\n\n 请基于以上标准对该患者的候选疾病进行分析并给出排序结果。


格式处理:

本数据为带人设的单轮问答数据,采用 ModelArts Studio 的单轮数据格式处理数据。


格式样例:

{"system":"***","context":"***","target":"***"}


处理完的数据样例:

{"system": "你是一个擅长于文章写作、文本分析、代码编写、数学运算、逻辑推理的 AI 助手,专注于针对用户的问题给出高质量解答。", "context": "你是一位经验丰富的医生。请基于患者的症状信息,对候选疾病进行可能性排序。\n\n 输入信息包括:\n1.显性症状列表:[['呕吐', 'True']]\n2.隐性症状列表:[['哭声评分减分', 'True'], ['喂养困难', 'True'], ['腹部不适', 'False']]\n3.候选疾病列表:['新生儿呕吐', '进食障碍', '消化不良']\n\n 请按照以下步骤进行分析:\n1.综合分析所有症状信息\n2.对每个候选疾病评估其与症状的匹配程度\n3.基于症状表现的典型性和特异性进行排序\n4.将疾病按可能性从高到低排序,并以 json 格式输出最终的排序列表\n\n 示例输出:\n{\n \"possible_diseases\": [\"疾病 1\", \"疾病 2\", \"疾病 3\"]\n}\n\n 请基于以上标准对该患者的候选疾病进行分析并给出排序结果。", "target": "新生儿呕吐"}


数据上传:

将数据上传到华为云数据存储服务中。在 ModelArts Studio 数据导入模块,选择文本->单轮问答(人设)数据,将数据上传到平台。


由于本数据集比较干净,无需使用平台进行二次清洗。我们直接将其发布为用于模型训练的格式数据。


Step3:创建 RFT 训练任务

在 ModelArts Studio 大模型开发平台上选择 NLP 大模型->强化学习->RFT 的训练目标,模型选择 Pangu_NLP_N2_4K-3.2.35,该模型是华为自研的百亿级通用大模型。


使用平台默认参数进行强化微调,打分器规则选择:Inverse-rank-grader,即对模型输出的逆序列表进行打分,正确答案越靠前分数越高(分数最高为 1),越靠后分数越低(分数最低为 0)。


以上述“Step2 格式处理”中的样本为例。患者实际病症为“新生儿呕吐”,若模型输出结果为['新生儿呕吐', '进食障碍', '消化不良'],则 Score=1.0;若模型输出结果为['进食障碍', '新生儿呕吐', '消化不良'],则 Score=0.5;若模型输出结果为['进食障碍', '消化不良', '新生儿呕吐'],则 Score=0。


Step4:评估模型效果

在训练平台上观测训练曲线,本用例中强化算法学习使用 Iterative DPO,Loss 曲线呈现先降低后增加,符合预期。使用 DPO 算法,能够降低强化学习的硬件消耗,起训卡数与传统 SFT 相当。


随着模型的 RFT 训练,测试集上的准确率稳步上升,表明该方法具有较强的有效性与泛化性。第 1 个 epoch 训练完成后测试集 acc 提升至 0.657,超越 DeepSeek-R1(Top@1=603),Deepseek-R1-distill-qwen-32B(Top@1=0.647)。第 3 个 epoch 训练完成后测试集 Top@1 acc 提升至 0.697,大幅超越 qwen72b(Top@1=0.667)与 qwq-32b(Top@1=0.663)。实验结果显示,通过 RFT 微调的模型在“疾病选择”任务中具有显著的性能提升。这表明强化学习微调是一种有效的策略,可以进一步提高大模型在特定任务上的表现。


模型训练完成后,我们将模型进行部署,进行效果评测。使用之前拆分的 300 条评测集进行评测,在评测集上,原模型(Pangu_NLP_N2_4K-3.2.35)准确率为 0.607,开源模型 DeepSeek-R1、eepSeek-R1-Distill-Qwen-32B、QwQ-32B、Qwen2.5-72B-Instruct 的准确率分别为 0.603、0.647、0.663、0.667,而我们通过强化微调后的模型,准确率达到了 0.712,较微调前上升了 10.5%。可以明显的看出,与各通用模型相比,我们使用 800 条数据就可让大模型在特定行业应用场景下得到明显提升。


经验总结

经验一:通过在 ModelArts Studio 大模型开发平台上使用盘古大模型进行强化微调,我们仅需少量(百条级)行业数据,就可训练一个高性能的行业大模型。可以展望的,在诸如医疗、法律等数据相对稀缺的行业,通过精选少量的行业相关数据,并采用强化微调的训练方式,从而在有限的数据资源下取得了更优的模型性能。这种方法不仅提高了模型的准确性,还有效解决了数据不足的问题。


经验二:在 ModelArts Studio 上使用强化微调能力,平台预置了强化微调方式的模型和最优路径,各行业人员仅需有少而精的专业数据,就可以自助训练出自己的领域专家模型,训练难度明显降低。


经验三:在通用场景表现优异的基础大模型,在深入行业时效果不一定为最佳。在行业场景落地时,选择适合行业领域的大模型知识学习方式,才能让大模型真正在行业落地。正如盘古大模型坚定践行 2B 路线理念一样,深入行业,帮助客户打造行业大模型与行业智能体。


点击链接,了解更多华为云新鲜技术~

发布于: 刚刚阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
医疗场景实战:百条数据 RFT 微调盘古大模型,精度大幅提升_人工智能_华为云开发者联盟_InfoQ写作社区