使用KTransformers低成本微调DeepSeek-V3超大规模MoE模型
DeepSeek-V3-671B是一款性能比肩顶尖闭源模型的6710亿参数开源MoE大模型,它通过创新的MLA和MoE架构在训练上实现了高效稳定,并借助轻量化微调与部署技术,彻底打破了其在个人及中小企业中实际应用的高成本壁垒。
当前,以DeepSeek-V3、Qwen2.5-MoE为代表的开源超大模型正不断突破性能上限,但其千亿级参数与高昂的显卡需求,也为广大研究者和开发者带来了巨大的微调门槛。
为破解这一难题,可以借助LLaMA Factory Online平台与专为Transformer模型设计的高效推理工具库KTransformers。该工具库以其轻量、高速和卓越的框架兼容性为核心优势,通过GPU-CPU异构计算、动态显存调度等关键技术,将DeepSeek-V3-671B这类超大规模MoE模型的微调资源需求,从原本必需的十余张H800专业显卡,显著降低至仅需4~8张消费级的RTX 4090显卡与高内存CPU环境,从而在有限资源下实现了巨型模型的轻量化微调。
前提条件
- 用户已经获取LLaMA Factory Online平台账户和密码,如果需要帮助或尚未注册,可参考注册账户完成注册。
- 当前账号的余额充裕,可满足模型微调服务的需要。点击可了解最新的活动及费用信息,或前往充值,如需了解更多请联系我们。
配置概览
| 配置参数 | 配置项 | 是否预置 | 说明 |
|---|---|---|---|
| 模型 | DeepSeek-V3-bf16 | 是 | 将DeepSeek-V3-671B模型经过权重转换后的模型以 “DeepSeek-V3-bf16” 命名,总参数量达6710亿,单token仅激活370亿参数,兼顾性能与效率。 |
| 数据集 | NekoQA-10K | 否(提供下载链接) | 面向猫娘语言建模的对话数据集。 |
| GPU | H800*8(推荐) | - | 模型规模较大,建议配置足够显存。 |
| 微调方法 | lora | - | 显著降低计算与存储成本,兼具高性能与部署灵活性。 |
资源消耗预览
- 模型微调时长
- 微调后的模型Evaluate & Predict时长
- 原生模型Evaluate & Predict时长
操作步骤
步骤一:数据处理
本实践使用的数据集为NekoQA-10K,是一个面向大语言模型的猫娘对话数据集,共包含10,000条QA对话,所有回答均遵循统一的猫娘人设:
- 称呼用户为“主人”
- 在句尾添加特定口癖(如“喵~”、“no desu”、“的说喵”)
- 保持可爱、撒娇、二次元风格
该数据集的主要用途是研究大语言模型的“猫娘味”塑造能力,为微调、对话风格迁移、拟人化交互研究提供素材。
-
单击下载NekoQA-10K数据集,数据集下载完成后,需上传至LLaMA-Factory Online平台的“文件管理”中。具体操作,可参考SFTP上传下载完成数据集上传。

-
数据集检测。
a. 进入LLaMA-Factory Online平台,单击“控制台”,单击左侧导航栏的“文件管理”。
b. 单击目标数据集右侧“操作”列的"数据集检测",检测数据集。如下图所示,若“数据集格式检测”结果显示“符合”,则表示数据集符合格式要求。

步骤二:模型训练
LLaMA Factory Online支持通过实例模式运行本实践的微调任务,同时LLaMA Factory Online已为本实践预置了微调的KTransformers环境,您可以通过 预置环境微调 的方式直接进行微调;若您需要自行搭建KTransformers环境进行微调,可参考 自行搭建环境微调 的方式微调,不同方式的微调操作详情如下所示。
- 预置环境微调
- 自行搭建环境微调
-
使用已注册的LLaMA Factory Online账号登录平台,选择[实例空间]菜单项,进入实例空间页面,如下图所示。

-
单击上图“开始微调”按钮,进入[实例启动]页面,配置以下参数,然后单击“启动”按钮,启动实例。
- 选择镜像:选择预置镜像
lf0.9.4-tf4.51.3-torch2.7.0-cu12.6-1.2(如图①)。 - 资源配置:选择GPU,推荐卡数为8卡(如图②)。
- 选择价格模式:本实践选择“极速尊享”(如图③),不同模式的计费说明参考计费说明。
提示系统会根据所需资源及其相关参数,动态预估数据处理费用,您可在页面底部查看预估结果。
- 选择镜像:选择预置镜像
-
实例启动后,单击[VSCode处理专属数据]页签,进入VSCode编辑页面。
-
在VSCode页面,单击页面上方菜单栏的“File > Open Folder”(如图①),搜索并进入LLaMA-Factory目录(如图②),即系统预置的微调环境,如下图所示。

-
配置微调参数。 在/LLaMA-Factory/examples/train_lora/deepseek3_lora_sft_kt.yaml文件中(如图①),配置如下内容(如图②)。

微调参数配置
### model
model_name_or_path: /shared-only/models/deepseek-ai/DeepSeek-V3-bf16
trust_remote_code: true
### method
stage: sft
do_train: true
finetuning_type: lora
lora_rank: 8
lora_target: all
### dataset
dataset: identity
template: deepseek
cutoff_len: 2048
max_samples: 100000
overwrite_cache: true
preprocessing_num_workers: 16
dataloader_num_workers: 4
### output
output_dir: saves/Kllama_deepseekV3
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
save_only_model: false
report_to: none # choices: [none, wandb, tensorboard, swanlab, mlflow]
### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
resume_from_checkpoint: null
### ktransformers
use_kt: true # use KTransformers as LoRA sft backend
kt_optimize_rule: examples/kt_optimize_rules/DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml
cpu_infer: 32
chunk_size: 8192
### eval
# eval_dataset: alpaca_en_demo
# val_size: 0.1
# per_device_eval_batch_size: 1
# eval_strategy: steps
# eval_steps: 500您需要根据实际情况配置如下参数:
配置参数 配置说明 配置示例 model_name_or_path 训练用的基模型路径。 /shared-only/models/deepseek-ai/DeepSeek-V3-bf16 dataset 训练使用的数据集名称。 identity output_dir 保存训练输出结果。 saves/Kllama_deepseekV3 kt_optimize_rule 提供了大量默认的YAML文件来控制KTransformers的放置策略。 examples/kt_optimize_rules/DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml 其中,对
kt_optimize_rule参数的DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml文件名和功能的解释说明如下:文件名字段 说明 DeepSeek-V3-Chat 对应的不同模型。 sft 微调所用的放置策略,其他为推理所用。 amx 使用AMX指令集进行CPU运算,其他为llamafile。 multi-gpu-4 使用4张GPU卡进行模型并行(显存共担)。 -
在终端执行如下命令,进行模型微调,如下图所示。
USE_KT=1 llamafactory-cli train examples/train_lora/deepseek3_lora_sft_kt.yaml
微调结果如下图所示(如图①),表示微调成功。微调后的结果保存至/LLaMA-Factory/saves/Kllama_deepseekV3/目录,同时在training_loss.png文件中(如图②)展示当前微调的Loss变化曲线。经过多轮微调后,可以看出Loss逐渐趋于收敛(如图③)。

KTransformers环境配置
-
使用已注册的LLaMA Factory Online账号登录平台,选择[实例空间]菜单项,进入实例空间页面,如下图所示。

-
单击上图“开始微调”按钮,进入[实例启动]页面,配置以下参数,然后单击“启动”按钮,启动实例。
- 选择镜像:系统默认镜像
lf0.9.4-tf4.57.1-torch2.8.0-cu12.6-1.1(如图①)。 - 资源配置:选择GPU,推荐卡数为8卡(如图②)。
- 选择价格模式:本实践选择“极速尊享”(如图③),不同模式的计费说明参考计费说明。
提示系统会根据所需资源及其相关参数,动态预估数据处理费用,您可在页面底部查看预估结果。
- 选择镜像:系统默认镜像
-
实例启动后,单击[VSCode处理专属数据]页签,进入VSCode编辑页面。
-
配置环境并安装依赖项。
a. 在VSCode页面,单击页面上方菜单栏的“Terminal > New Terminal”,新建一个终端。
b. 执行如下命令,为KTransformers单独创建一个虚拟环境并激活该环境。
conda create -n Kllama python=3.12
conda activate Kllamac. 执行如下命令,安装Linux系统下的标准库和GCC编译器依赖,通常用于解决KTransformers安装/运行时的 “缺失libstdc++”、“编译器版本不兼容” 等问题。
conda install -y -c conda-forge libstdcxx-ng gcc_impl_linux-64d. 执行如下命令, 安装CUDA 11.8运行时Runtime,用于为KTransformers提供GPU加速支持(KTransformers依赖CUDA实现Transformer模型的高效推理)。
conda install -y -c nvidia/label/cuda-11.8.0 cuda-runtimee. 执行如下命令,下载安装llamafactory。
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]" --no-build-isolation torch==2.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/g. 单击链接下载KTransformers,选择“ktransformers-0.4.1+cu128torch27fancy-cp312-cp312-linux_x86_64”版本进行下载。
下载完成后上传至/workspace目录下(如图①),并执行如下命令安装KTransformers(如图②)。
pip install ktransformers-0.4.1+cu128torch27fancy-cp312-cp312-linux_x86_64.whl
注意整个安装过程大约需要2min。
h. 单击链接下载flashatten,选择“flash_attn-2.8.3+cu12torch2.7cxx11abiTRUE-cp312-cp312-linux_x86_64”版本进行下载。
下载完成后上传至/workspace目录下(如图①),并执行如下命令安装flashatten(安装②)。
pip install flash_attn-2.8.3+cu12torch2.7cxx11abiTRUE-cp312-cp312-linux_x86_64.whl
i. (可选)KTransformers会自动使用Triton加速库来运行模型,如果您需要使用flash_infer来加速,执行如下命令,安装flash_infer。
git clone https://github.com/kvcache-ai/custom_flashinfer.git
pip install custom_flashinfer/
模型训练
-
配置微调参数。 在/workspace/LLaMA-Factory/examples/train_lora/deepseek3_lora_sft_kt.yaml文件中(如图①),配置如下内容(如图②)。

微调参数配置
### model
model_name_or_path: /shared-only/models/deepseek-ai/DeepSeek-V3-bf16
trust_remote_code: true
### method
stage: sft
do_train: true
finetuning_type: lora
lora_rank: 8
lora_target: all
### dataset
dataset: identity
template: deepseek
cutoff_len: 2048
max_samples: 100000
overwrite_cache: true
preprocessing_num_workers: 16
dataloader_num_workers: 4
### output
output_dir: saves/Kllama_deepseekV3
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
save_only_model: false
report_to: none # choices: [none, wandb, tensorboard, swanlab, mlflow]
### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
resume_from_checkpoint: null
### ktransformers
use_kt: true # use KTransformers as LoRA sft backend
kt_optimize_rule: examples/kt_optimize_rules/DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml
cpu_infer: 32
chunk_size: 8192
### eval
# eval_dataset: alpaca_en_demo
# val_size: 0.1
# per_device_eval_batch_size: 1
# eval_strategy: steps
# eval_steps: 500您需要根据实际情况配置如下参数:
配置参数 配置说明 配置示例 model_name_or_path 训练用的基模型路径。 /shared-only/models/deepseek-ai/DeepSeek-V3-bf16 dataset 训练使用的数据集名称。 identity output_dir 保存训练输出结果。 saves/Kllama_deepseekV3 kt_optimize_rule 提供了大量默认的YAML文件来控制KTransformers的放置策略。 examples/kt_optimize_rules/DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml 其中,对
kt_optimize_rule参数的DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml文件名和功能的解释说明如下:文件名字段 说明 DeepSeek-V3-Chat 对应的不同模型。 sft 微调所用的放置策略,其他为推理所用。 amx 使用AMX指令集进行CPU运算,其他为llamafile。 multi-gpu-4 使用4张GPU卡进行模型并行(显存共担)。 -
在终端执行如下命令,进行模型微调,如下图所示。
conda activate Kllama
cd LLaMA-Factory
USE_KT=1 llamafactory-cli train examples/train_lora/deepseek3_lora_sft_kt.yaml
微调结果如下图所示(如图①),表示微调成功。微调后的结果保存至/LLaMA-Factory/saves/Kllama_deepseekV3/目录,同时在training_loss.png文件中(如图②)展示当前微调的Loss变化曲线。经过多轮微调后,可以看出Loss逐渐趋于收敛(如图③)。

步骤三:模型评估
- 微调后模型评估
- 原生模型评估
-
切换至“Evaluate & Predict”页面,选择训练完成的检查点路径(如图①),然后选择测试数据集
mllm_val_data(如图②),并根据实际需求配置评估参数,本实践的参数仅需设置"批处理大小"(如图③)和评估结果的“输出目录”(如图④)。
-
参数配置完成后,单击“开始”按钮即可启动评估,页面底部将实时显示评估过程中的日志信息,评估完成后,记录评估结果,结果如下所示。
{
"predict_bleu-4": 35.18934065594059,
"predict_model_preparation_time": 0.008,
"predict_rouge-1": 33.03964625618812,
"predict_rouge-2": 12.829063180693069,
"predict_rouge-l": 22.233395915841587,
"predict_runtime": 3580.8431,
"predict_samples_per_second": 0.903,
"predict_steps_per_second": 0.056
}结果解读:微调后模型的各项指标均显著提升:BLEU-4从0.806升至35.189,ROUGE-1从2.778升至33.039,ROUGE-2从0.006升至12.829,ROUGE-L从2.013升至22.233,表明微调有效改善了生成文本与参考文本在n-gram匹配和整体结构上的一致性,生成质量和准确性有了实质性进步。
-
切换至“Evaluate & Predict”页面,清空检查点路径(如图①),然后选择测试数据集
mllm_val_data(如图②),并根据实际需求配置评估参数,本实践的参数仅需设置"批处理大小"(如图③)和评估结果的“输出目录”(如图④)。
-
完成配置后,单击“开始”按钮即可启动评估,页面底部将实时显示评估过程中的日志信息,评估完成后,记录评估结果,结果如下所示。
{
"predict_bleu-4": 0.8059522277227722,
"predict_model_preparation_time": 0.0077,
"predict_rouge-1": 2.7779008044554456,
"predict_rouge-2": 0.005617543316831684,
"predict_rouge-l": 2.013397834158416,
"predict_runtime": 4179.8341,
"predict_samples_per_second": 0.773,
"predict_steps_per_second": 0.048
}结果解读:原生模型评估结果各项指标较低,"predict_bleu-4" 为0.806,ROUGE-1为2.778,ROUGE-2为0.006,ROUGE-L为2.013,说明生成文本在n-gram匹配和整体结构上与参考的一致性很差,生成质量与准确性明显不足。predict_runtime为 4179.8341,predict_samples_per_second为0.773,predict_steps_per_second为0.048,表明推理耗时较长,吞吐效率极低。该原生模型在生成质量和推理性能上均表现不佳,不适用于对生成质量、推理速度有要求的场景,需通过优化或微调等方式大幅提升。
步骤四:模型对话
使用实例模式微调结束后,可以直接在终端进行模型对话。
- 微调后模型对话
- 原生模型对话
-
新建一个终端,然后在/LLaMA-Factory/examples/inference/deepseek3_lora_sft_kt.yaml配置文件中(如图①),配置如下内容(如图②)。

微调后模型对话参数配置
model_name_or_path: /shared-only/models/deepseek-ai/DeepSeek-V3-bf16
adapter_name_or_path: saves/Kllama_deepseekV3
template: deepseek
infer_backend: ktransformers # choices: [huggingface, vllm, sglang, ktransformers]
trust_remote_code: true
use_kt: true # use KTransformers as LoRA sft backend to inference
kt_optimize_rule: examples/kt_optimize_rules/DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml
cpu_infer: 32
chunk_size: 8192您需要根据实际情况配置如下参数:
配置参数 配置说明 配置示例 model_name_or_path 基模型路径。 /shared-only/models/deepseek-ai/DeepSeek-V3-bf16 adapter_name_or_path adapter路径(也是SFT的输出路径和后续推理时加载的checkpoint路径)。如不想加载lora adapter,可以将此参数注释掉。 saves/Kllama_deepseekV3 kt_optimize_rule 提供了大量默认的YAML文件来控制KTransformers的放置策略。 examples/kt_optimize_rules/DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml -
在终端执行如下命令,进行微调后的模型对话。
llamafactory-cli chat examples/inference/deepseek3_lora_sft_kt.yaml
对话结果:

微调后的Assistant回答更加专业,了解user需求后,简短地回问索取用户信息,并回复订票的结果。整个流程更加贴合常见的订票人工客服操作标准,可明显观察到Assistant学习到了订票客服的画风和话术。
-
新建一个终端,然后在/LLaMA-Factory/examples/inference/deepseek3_lora_sft_kt.yaml配置文件中(如图①),配置如下内容(如图②)。

原生模型对话参数配置
model_name_or_path: /shared-only/models/deepseek-ai/DeepSeek-V3-bf16
# adapter_name_or_path: saves/Kllama_deepseekV3
template: deepseek
infer_backend: ktransformers # choices: [huggingface, vllm, sglang, ktransformers]
trust_remote_code: true
use_kt: true # use KTransformers as LoRA sft backend to inference
kt_optimize_rule: examples/kt_optimize_rules/DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml
cpu_infer: 32
chunk_size: 8192您需要根据实际情况配置如下参数:
配置参数 配置说明 配置示例 model_name_or_path 基模型路径。 /shared-only/models/deepseek-ai/DeepSeek-V3-bf16 adapter_name_or_path adapter路径,使用原生模型对话时,需要将此参数注释掉。 # adapter_name_or_path: saves/Kllama_deepseekV3 kt_optimize_rule 提供了大量默认的YAML文件来控制KTransformers的放置策略。 examples/kt_optimize_rules/DeepSeek-V3-Chat-sft-amx-multi-gpu-4.yaml -
在终端执行如下命令,进行原生模型对话。
llamafactory-cli chat examples/inference/deepseek3_lora_sft_kt.yaml
对话结果:

微调后的Assistant回答更加专业,了解user需求后,简短地回问索取用户信息,并回复订票的结果。整个流程更加贴合常见的订票人工客服操作标准,可明显观察到Assistant学习到了订票客服的画风和话术。
观察微调后的模型与原生模型的对话结果,发现:微调前的Assistant订票回复冗长、侧重通用指引且信息索取被动,仅提供操作建议不直接处理订票业务;微调后的Assistant话术简洁、符合人工客服标准,能主动针对性索取关键信息并直接反馈订票结果,业务聚焦度与客服角色贴合度显著提升。
总结
KTransformers与LLaMA Factory Online平台的深度融合,以DeepSeek-V3(671B MoE架构)为基模型,通过KT专属AMX加速内核与LoRA轻量化微调技术的协同优化,实现了对超大规模MoE模型的高效低成本定制。该方案在有限硬件条件下,能够快速构建具备领域专业知识与交互逻辑的模型能力,显著降低了微调门槛。其在实践中表现出的“极致显存优化、高速训练效率与低操作复杂度”三位一体优势,为MoE大模型在工业场景中的规模化落地提供了具备高可行性的技术路径。