大模型QLoRA微调——基于Qwen2-7B的自动化病历摘要生成系统

01 项目简介

(1)项目背景

医疗文档中包含大量的诊疗信息,例如疾病诊断、手术名称、解剖部位、药物使用以及影像和实验室检查结果。这些信息是医疗数据分析的核心,但由于医疗文本内容复杂、格式多样,提取这些关键内容具有一定挑战。为此,本项目基于 Qwen-7B大语言模型,通过QLoRA微调,使其从医疗文档中识别并提取这些信息。

(2)数据集介绍

本项目在Yidu-S4K数据集上进行指令微调任务,该数据共计包含1000条中文电子病历医疗实体识别数据。数据集地址如下:

https://tianchi.aliyun.com/dataset/144419

每条数据集如上图所示,因此需要先将其处理为qwen大模型要求的输入格式,本项目的处理结果如下:

(3)Qwen大模型介绍

Qwen是通义千问团队的开源大语言模型,由阿里云通义实验室研发。该系列模型包括5个尺寸的预训练和指令微调模型:Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B以及Qwen2-72B。对比当前最优的开源模型,Qwen2-72B在包括自然语言理解、知识、代码、数学及多语言等多项能力上均显著超越当前领先的Llama3-70B等大模型。

02 模型训练

(1)环境配置

(2)量化微调

**LoRA:**是一种低秩微调方法,用于在大模型中插入低秩矩阵,冻结原始模型参数,只微调插入的权重部分,显著减少了训练参数。

QLoRA (Quantized LoRA) **:**是在 LoRA 的基础上,引入了 4-bit量化技术。QLoRA 在不影响模型性能的前提下,将模型参数压缩为 4-bit 格式,并结合 LoRA 微调技术,进一步减少显存占用和计算资源消耗。显存占用如图所示。

本项目量化代码如下,使用了 4 比特量化的不同变体nf4量化,大大减少了内存占用。

python 复制代码
from transformers import BitsAndBytesConfig
nf4_config = BitsAndBytesConfig(   
load_in_4bit=True,   
bnb_4bit_quant_type="nf4",   
bnb_4bit_use_double_quant=True,   
bnb_4bit_compute_dtype=torch.bfloat16)

本项目设置的LoRA微调参数如下:

python 复制代码
config = LoraConfig(    
task_type=TaskType.CAUSAL_LM,    
target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],    
inference_mode=False,  # 训练模式    
r=8,  # Lora 秩    
lora_alpha=32,  # Lora alaph,具体作用参见 Lora 原理    
lora_dropout=0.1,  # Dropout 比例)

设置训练批次为8 ,梯度累计步数为4 ,学习率为1e-4,最终的显存占用和模型参数如下:

本项目通过结合 QLoRA 微调和医疗领域的任务设计,成功赋能 Qwen-7B 模型,使其能够精准地从医疗文本中提取诊疗信息。

03 界面演示

经过10轮训练,绘制其loss曲线,如下所示,可以看到模型已经收敛。

接下来,就是基于gradio设计了web界面,便于进行测试,具体演示如下:

qwen-zhaiy

【源码链接】

大模型QLoRA微调------基于Qwen2-7B的自动化病历摘要生成系统

你将会的到:本项目所有代码、处理好的数据集、训练好的权重、设计好的聊天 交互界面。

最后:

小编会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

相关推荐
孤独且没人爱的纸鹤9 分钟前
【机器学习】深入无监督学习分裂型层次聚类的原理、算法结构与数学基础全方位解读,深度揭示其如何在数据空间中构建层次化聚类结构
人工智能·python·深度学习·机器学习·支持向量机·ai·聚类
后端研发Marion11 分钟前
【AI编辑器】字节跳动推出AI IDE——Trae,专为中文开发者深度定制
人工智能·ai编程·ai程序员·trae·ai编辑器
Tiger Z34 分钟前
R 语言科研绘图 --- 散点图-汇总
人工智能·程序人生·r语言·贴图
小深ai硬件分享2 小时前
Keras、TensorFlow、PyTorch框架对比及服务器配置揭秘
服务器·人工智能·深度学习
hunter2062063 小时前
用opencv生成视频流,然后用rtsp进行拉流显示
人工智能·python·opencv
Daphnis_z3 小时前
大模型应用编排工具Dify之常用编排组件
人工智能·chatgpt·prompt
yuanbenshidiaos4 小时前
【大数据】机器学习----------强化学习机器学习阶段尾声
人工智能·机器学习
__如果8 小时前
论文阅读--Qwen2&2.5技术报告
论文阅读·qwen
好评笔记9 小时前
AIGC视频生成模型:Stability AI的SVD(Stable Video Diffusion)模型
论文阅读·人工智能·深度学习·机器学习·计算机视觉·面试·aigc
算家云9 小时前
TangoFlux 本地部署实用教程:开启无限音频创意脑洞
人工智能·aigc·模型搭建·算家云、·应用社区·tangoflux