LoRA 微调 Qwen2.5:数据整理比调参数更早
一次医学问答模型微调记录:从扁平数据到 ShareGPT 多轮格式,再到显存可控的本地训练。
个人博客。软件工程研究生,学习方向是人工智能。这里主要记录模型训练、计算机视觉、网络与自托管实践,也会留下失败过程和重新理解问题的时刻。
持续学习中,最近关注 LLM × 知识图谱与开放词汇分割一次医学问答模型微调记录:从扁平数据到 ShareGPT 多轮格式,再到显存可控的本地训练。
模型结构之外,掩码处理、辅助分类器、混合精度和推理尺度同样会影响最终结果。
毕业设计里最有意思的部分,是让识别模型、摄像头、客户端和数据库真正连起来。
这篇笔记整理一次医学问答模型实验。重点不在罗列参数,而是记录从数据格式、训练配置到验证方法的完整思路。
垂直问答数据常见的问题不是数量不够,而是同一字段里混有标题、问题、解释和答案。直接送进训练会让模型学到不稳定的格式。我的做法是先统一角色,把用户描述放进 human,把回答放进 gpt,再转换为 ShareGPT 多轮结构。
{
"conversations": [
{"from": "human", "value": "用户问题"},
{"from": "gpt", "value": "结构化回答"}
]
}
清洗时需要检查空字段、重复样本、异常长文本和明显冲突的答案。训练集与验证集还要按来源或主题划分,避免相似问答同时落入两边,使验证结果看起来过于乐观。
本次实验以 Qwen2.5-1.5B 指令模型为基座,LoRA 的 rank 设为 8。它通过低秩矩阵学习任务增量,基座参数保持冻结,因此需要训练和保存的参数更少。rank 并不是越大越好:容量增加的同时也会提高显存占用,并可能让模型更快记住小数据集。
训练 loss 下降只能说明模型更接近训练标签。实际验证还要准备一组固定问题,分别检查事实一致性、格式遵循、拒答边界和回答稳定性。医学问答尤其需要明确:模型输出只能用于技术验证,不能替代医生判断。
语义分割是逐像素分类。模型结构很重要,但数据掩码、损失计算、评估指标和推理方式同样决定实验是否可信。
我使用 pycocotools 处理 COCO 2014 标注,自定义 Dataset 输出图像和对应掩码。裁剪、缩放、翻转等空间变换必须同时应用到两者;图像通常使用双线性插值,而类别掩码应使用最近邻插值,否则类别编号会被插值成不存在的值。
训练前可以随机抽取若干样本,把掩码以半透明颜色叠加到原图上。这一步很朴素,却能很快发现类别映射、尺寸和增强流程中的错误。
DeepLabV3 通过空洞卷积和 ASPP 聚合不同尺度的上下文信息。使用带辅助分类器的实现时,训练损失通常由主输出和辅助输出共同组成;辅助分支为中间层提供更直接的监督,推理时只保留主输出。
大面积背景很容易把像素准确率“抬高”。mIoU 会分别计算预测区域与真实区域的交并比,再对类别取平均,更适合观察小目标和困难类别。评估时还需要统一 ignore index、输出尺寸和类别编号。
多尺度推理会将不同缩放比例的预测恢复到原尺寸后再融合,通常能改善大小目标之间的平衡,但计算量也会成倍增加。它适合研究阶段比较性能上限;部署时则应重新测量延迟。
这个毕业设计由车牌检测、字符识别、边缘端推理、网络通信和桌面客户端组成。真正的难点,是让各模块在资源有限的设备上稳定配合。
系统首先使用 YOLOv8 从画面中定位车牌,再将裁剪后的车牌区域交给 LPRNet 识别字符。两阶段方案便于分别训练和排查:漏掉车牌通常属于检测问题,定位正确但字符错误则需要检查裁剪质量、字符模型或训练数据。
训练数据来自 CCPD 和公开的中国车牌数据集。除了总体准确率,还应按光照、角度、遮挡和车牌尺寸建立困难样本集合,避免平均指标掩盖真实场景中的失败。
树莓派 4B 的算力和内存都有限。部署前应固定输入尺寸、控制摄像头帧率,并避免为每一帧重复创建模型或分配大块内存。实时系统也不一定要处理摄像头产生的全部帧:在满足业务响应速度的前提下主动丢帧,往往比让队列不断堆积更稳定。
TCP 提供字节流,并不保留一次发送对应一次接收的边界。应用层需要约定长度字段或分隔符,并处理拆包、粘包、超时和断线重连。PyQt 客户端还要避免在界面线程中执行阻塞网络操作,否则连接稍慢就会让界面失去响应。
数据库记录可以包含时间、识别文本、置信度和图像路径。原始画面不必无限保留,可按容量设置清理规则,同时避免把数据库账号和服务器地址直接写入客户端代码。
清洗医疗问答数据,使用 LoRA 微调 Qwen2.5-1.5B,完成本地 WebUI 交互。
构造 COCO 训练数据,使用 AMP 训练并实现多尺度推理。
车牌定位与字符识别、树莓派部署、PyQt 客户端和数据库记录。
基于 pcap 依次实现以太网帧、ARP、IP、ICMP、UDP 与 TCP 核心功能。