镜像社区
部署GPU实例
文档中心
常见问题(FAQ)
DeepSeek
LLM
深度学习
LLaMAFactory-0.9.2.dev-DeepSeek-R1-Distill
使用[LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)在多张RTX4090上微调DeepSeek-R1-Distill系列模型
0/小时
v1.0

什么是 LLaMA-Factory-0.9.2.dev-DeepSeek-R1-Distill

LLaMA-Factory-0.9.2.dev-DeepSeek-R1-Distill基于LLaMA-Factory框架,支持在多张 NVIDIA RTX 4090 GPU 上进行模型微调。具体支持的模型及硬件需求如下:

模型名称技术特点硬件建议
DeepSeek-R1-Distill-Qwen-7B使用 LoRA 技术1~2 张 RTX 4090
DeepSeek-R1-Distill-Qwen-14B使用 LoRA 技术,结合 DeepSpeed ZeRO-3(ds3)4 张 RTX 4090
DeepSeek-R1-Distill-Qwen-32B使用 LoRA 技术,结合 DeepSpeed ZeRO-3 Offload(ds3-offload)4 张 RTX 4090

如何运行 LLaMA-Factory-0.9.2.dev-DeepSeek-R1-Distill

待实例初始化完成后,在控制台-应用中打开”JupyterLab";进入JupyterLab后,新建一个终端Terminal输入以下指令

cd ~/LLaMA-Factory/

接着,运行以下命令可以对相应尺寸的模型进行监督微调(SFT):

7B 模型微调

llamafactory-cli train examples/train_lora/deepseek-r1-distill-qwen-7b_lora_sft.yaml

14B 模型微调

llamafactory-cli train examples/train_lora/deepseek-r1-distill-qwen-14b_lora_sft_ds3.yaml

32B 模型微调

llamafactory-cli train examples/train_lora/deepseek-r1-distill-qwen-32b_lora_sft_ds3.yaml

运行日志分析

这里以微调 DeepSeek-R1-Distill-Qwen-7B 模型为例,具体分析一下LLaMA-Factory的运行日志,了解使用LLaMA-Factory微调模型的过程。

一、初始化阶段

1. OMP_NUM_THREADS提示

image

这个提示是建议设置环境变量OMP_NUM_THREADS=1避免CPU资源争用,不过这个对训练影响较小,可以忽略设置。

2. 分布式训练

  • 分布式端口:29019,批次大小:16(通过梯度累积实现)
  • 使用torch.bfloat16混合精度训练,兼顾精度与显存效率。
  • 因为使用的是 2 张 4090 显卡,所以这里提示检测到 2 个GPU
    • cuda:0 image

    • cuda:1 image

3. 从配置文件加载模型的基本信息

运行模型微调后,一开始会解析并加载DeepSeek-R1-Distill-Qwen-7B模型的配置文件,模型类型为Qwen2ForCausalLM,用于因果语言建模(文本生成):

image

  • 核心参数:
hidden_size=3584        # 隐藏层维度
num_hidden_layers=28    # 总层数
num_attention_heads=28  # 注意力头数
vocab_size=152064       # 词表大小
max_position_embeddings=131072  # 支持最大上下文长度128K

4. 加载数据集

加载了identity.jsonalpaca_en_demo.json两个数据集,共191个训练样本:

image

  1. 加载预训练权重 从model.safetensors加载预训练权重(安全格式的模型文件):

image

二、训练阶段

  1. LoRA微调 使用LoRA(Low-Rank Adaptation)高效微调,可训练参数占比仅0.26%(20M/76亿):

image

  • 适配层:
target_modules=[
 "k_proj", "down_proj", "o_proj",
 "q_proj", "v_proj", "gate_proj", "up_proj"
]
  1. 保存微调结果 每10步保存检查点(checkpoint-10/12):

image

最终模型保存在:

image

cd saves/DeepSeek-R1-Distill-Qwen-7B/lora/sft/
  • 目录中包含:
    • LoRA适配器权重
    • 分词器配置
    • 训练损失曲线图(training_loss.png)

三、训练结果分析

image

  • 总训练步数:12步(1个epoch)
  • 最终loss:2.3343(初始loss 2.3779)
  • 训练速度:6.537样本/秒
  • 总浮点运算量:846029 GFLOPS
  • 训练耗时:29秒(含模型保存时间)

destroy_process_group()警告是PyTorch分布式训练的正常退出提示,不影响训练结果:

image

模型配置文件说明 以 DeepSeek-R1-Distill-Qwen-7B 模型为例,以下是配置文件的调整建议:

image

  1. 模型配置:根据任务需求和显存大小,调整截图中标注1️的LoRA配置部分。
  2. 数据集准备:在运行前,请确保已准备好数据集,并替换截图中标注2的dataset配置部分。
  3. 序列长度与样本量:截图中3️标注3,可根据需要调整最大序列长度和训练样本量。
  4. 训练设置:截图中标注4,可根据需要自行调整保存步数、日志频率、输出目录等参数。
  5. 训练参数:截图中标注5,可根据需要自行调整学习率、批量大小等训练参数。

本镜像由llamafactory.cn 提供支持。

镜像信息
@llamafactory_cn
已使用
160
镜像大小80GB
最近编辑2025-02-19
支持卡型
RTX40系48G RTX40系
+2
框架版本
PyTorch-2.7.0.dev+cu128
CUDA版本
12.8
应用
JupyterLab: 8888
版本
v1.0
2025-06-24
PyTorch:2.7.0.dev+cu128 | CUDA:12.8 | 大小:80.00GB