一,什么是微调
相对专业的解释就是在已完成大规模预训练(Pre-training)的基础模型上,使用特定任务、特定领域或特定格式的标注数据集,进行进一步的参数优化训练,使模型在保留通用知识与基础能力的前提下,更好地适配下游具体任务,提升任务精度、响应一致性与领域适配性。
我个人的理解就是:完成预训练的模型是一本百科全书,样样通样样松,然后我们要做的就是进行微调。将他在某个方面的能力变强。
二,微调的准备工作
在虚拟环境中使用conda创建用于微调的环境,并在这个环境中安装Jupyterlab和Jupyter Kernel。
JupyterLab 是大模型微调时的交互式操作界面,提供代码编辑、分步运行、文件管理和结果可视化的工作台,方便调试微调流程、查看训练状态与实验记录;而 Jupyter Kernel 是后台负责实际执行代码、管理运行环境与 GPU 资源、维护模型和变量显存状态的计算内核,两者配合使用,既能通过 JupyterLab 灵活操作微调流程,又能依靠 Kernel 保证环境隔离、模型状态持久化,大幅提升微调实验的调试效率与可复现性。
还用到了vllm和unsloth,起到了一个加速的作用。
三,微调
先准备数据集,数据集是大模型微调的"学习教材",决定了大模型最终能够学会的知识,可以掌握的能力以及对话时的语气等
这次主要使用AI生成了一个200条问答对的数据集,以后会尝试更大,更完全的数据集。
然后通过脚本对模型进行微调,以下是微调的结果
微调前的

微调后的

四,压力测试
对微调后的模型进行压力测试,核心目的是在高频率、长时间、多并发的模拟真实使用场景下,验证模型是否能稳定运行不崩溃、回答逻辑不跑偏、输出内容不重复胡说,同时检测模型的响应速度、显存占用和推理性能是否达标,确保经过 LoRA 微调后的网安小助手在高强度、连续对话中依然保持专业、可靠、不掉线,最终确认模型可以稳定投入实际使用。