Skip to content

大模型微调

大模型微调的三种方法:

  1. 全量微调
    采用自定义的数据集,训练模型的完整参数(GPT2古诗词生成)
    优点: 理论上效果最好的微调方法
    缺点: 对数据和设备要求较高,训练难度大,风险较高(有可能微调后的效果不如微调前的效果)
  2. 局部微调
    在自定义数据集中,参与训练的仅仅是模型的部分参数。
    优点: 相比较于全量微调,更加节约内存,门槛(数据、设备)更低。比全量微调更安全,而且局部微调一定有效。
    缺点: 理论上的效果,不如全量微调,但优于增量微调。应该如何选择参与训练的参数是个问题。目前有效的解决方案就是Lora。

Lora的设计核心思想来源于之前的"瓶颈结构" 代表作为mobileNet。
数据本身是包含杂质的。(噪声)。瓶颈结构的设计,使得模型在特征提取过程中,具备了对"杂质"的过滤能力。这种设计,使得模型在提取特征的过程中,会更加偏向于跟目标相关性更高的特征,排除了干扰。 3. 增量微调
模型本身并未参与到新数据集的训练中,参与训练的仅仅是模型的新增部分(下游任务)。
优点: 对于设备和数据量几乎没有要求。
缺点: 对模型的任务有要求。选择的预训练模型已经具备了对当前数据集的处理能力了。否则,不能使用增量微调。

LoRA微调

LoRA是一种用于大模型微调的技术,通过引入低秩矩阵来减少微调时的参数量。在与训练的模型中,LoRA通过添加两个小矩阵B和A来近似原始的大矩阵ΔW,从而减少需要更新的参数数量。 具体来说,LoRA通过将全参微调的增量参数矩阵ΔW表示为两个参数量更小的矩阵B和A的低秩近似来实现:

[W_0 + \Delta W = W_0 + BA]
其中,B和A的

实战

1. 创建环境
python
# 创建环境
conda create -n llama_factory python=3.10

# 激活环境
conda activate llama_factory
2. 拉取源码并安装依赖
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e . -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
3.启动web服务
cd LLaMA-Factory
llamafactory-cli webui

alt text

4. 下载qwen2.5-7B-Instruct版本

在魔塔社区的官网进行选择合适的方式进行下载模型