news 2026/4/23 13:56:45

从0开始微调DeepSeek-R1:修改模型自我认知实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从0开始微调DeepSeek-R1:修改模型自我认知实战教程

从0开始微调DeepSeek-R1:修改模型自我认知实战教程

1. 前言

在大模型应用落地过程中,模型的自我认知(Self-Identity)定制化是一个关键需求。例如,企业希望部署的AI助手能明确回答“我是由XX公司自主研发的AI模型”,而非默认的开源项目描述。这种能力不仅增强品牌识别度,也提升用户信任感。

本文将围绕DeepSeek-R1-Distill-Qwen-1.5B模型,手把手带你完成一次完整的自我认知微调实践。我们将使用 LLaMA-Factory 工具进行高效微调,并通过 Ollama 实现本地化部署与 API 服务封装。整个流程无需深度学习背景,适合初学者快速上手。

本教程涵盖: - 微调前后的效果对比 - 使用 LLaMA-Factory 进行指令微调(SFT) - 模型导出与格式转换(GGUF) - 多种方式在 Ollama 中部署微调后模型 - 性能优化建议与常见问题排查


2. 准备工作

2.1 环境依赖

确保以下工具已安装并配置好:

工具版本要求安装方式
Python>=3.10官网下载
Conda/Mamba推荐 Mambaconda install mamba -n base -c conda-forge
Git>=2.30apt install git或官网安装
CUDA (GPU可选)>=11.8NVIDIA官网

2.2 下载基础模型

前往 ModelScope 下载预训练模型:

modelscope download --model_id deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5b

或手动访问:https://modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5b

保存路径示例:D:\git-project\model\DeepSeek-R1-Distill-Qwen-1.5B


3. 使用LLaMA-Factory进行微调

3.1 安装LLaMA-Factory

LLaMA-Factory 是一个开源的大模型微调框架,支持多种主流架构和低资源微调技术(如 LoRA)。

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory mamba create -n llama_factory python=3.10 conda activate llama_factory pip install -e ".[torch,metrics]"

启动 Web UI:

nohup python src/webui.py > train_web.log 2>&1 &

访问地址:http://localhost:7860

提示:若远程服务器运行,请使用--server_name 0.0.0.0 --port 7860启动参数开放端口。

3.2 构建自我认知数据集

我们采用内置的身份微调模板文件data/identity.json,其结构如下:

[ { "instruction": "你是谁?", "input": "", "output": "我是{{name}},由{{author}}开发的人工智能语言模型。" }, { "instruction": "介绍一下你自己", "input": "", "output": "{{name}}是由{{author}}独立研发的语言模型,专注于提供专业、安全、高效的对话服务。" } ]
修改变量值:
  • {{name}}替换为你的模型名称,如[Talk-Bot]
  • {{author}}替换为公司名,如zibiao

最终保存为自定义数据集文件,例如:data/custom_identity.json

推荐做法:可在原始 identity.json 基础上增加更多问答对,提高泛化能力。

3.3 配置微调参数

进入 Web 界面后,按以下设置填写:

参数项推荐值
模型路径D:\git-project\model\DeepSeek-R1-Distill-Qwen-1.5B
数据集custom_identity.json(上传或替换原文件)
对话模板deepseek3(必须选择,否则推理异常)
微调方法LoRA(显存不足时首选)
学习率2e-4
学习率调度器cosine(收敛稳定)
批次大小4(根据显存调整)
梯度累积步数8(CPU训练需降低至2~4)
最大序列长度512
训练轮数3
输出目录saves/deepseek-lora-train/
显存不足应对策略:
显存情况建议配置
<8GB GPU使用 LoRA + batch_size=1~2
CPU训练关闭 flash_attention,梯度累积≤4
INT8量化开启quantization_bit=8

点击【开始】按钮,等待训练完成(进度条达100%)。


4. 验证与导出微调模型

4.1 加载检查点验证效果

训练结束后,在 LLaMA-Factory 的【Inference】页面中:

  1. 选择模型路径:saves/deepseek-lora-train/checkpoint-xxx
  2. 输入测试问题:“你是谁?”
  3. 观察输出是否符合预期

✅ 正常输出应类似:

我是[Talk-Bot],由zibiao开发的人工智能语言模型。

如果未生效,请检查: - 是否选择了正确的deepseek3模板 - 数据集中变量是否正确替换 - LoRA 权重是否成功加载

4.2 导出完整模型

进入【Export】页面,执行以下操作:

  • 选择训练好的 LoRA 检查点
  • 设置输出路径:D:\git-project\trained-model\train_DeepSeek-R1-1.5B-Distill
  • 勾选“合并权重”选项(Merge Adapter),生成完整模型
  • 格式选择Hugging Face

导出完成后,目录结构如下:

train_DeepSeek-R1-1.5B-Distill/ ├── config.json ├── pytorch_model.bin ├── tokenizer_config.json ├── special_tokens_map.json └── ...

该模型即可用于后续部署。


5. 使用Ollama部署微调模型

5.1 安装Ollama

Windows 用户可直接下载安装包: 👉 https://ollama.com/download/OllamaSetup.exe

Linux 用户执行:

curl -fsSL https://ollama.com/install.sh | sh

验证安装:

ollama --version

5.2 方式一:从 Safetensors 权重部署(推荐)

创建 Modelfile 文件
FROM D:\git-project\trained-model\train_DeepSeek-R1-1.5B-Distill PARAMETER temperature 0.6 PARAMETER top_p 0.95 TEMPLATE """ {{- if .System }}{{ .System }}{{ end }} {{- range $i, $_ := .Messages }} {{- $last := eq (len (slice $.Messages $i)) 1}} {{- if eq .Role "user" }}<|User|>{{ .Content }} {{- else if eq .Role "assistant" }}<|Assistant|>{{ .Content }}{{- if not $last }}<|end▁of▁sentence|>{{- end }} {{- end }} {{- if and $last (ne .Role "assistant") }}<|Assistant|>{{- end }} {{- end }} """

🔍说明: -TEMPLATE必须与 DeepSeek-R1 官方一致,否则输出混乱 - 可通过ollama show --modelfile deepseek-r1:1.5b获取参考模板

构建模型
ollama create my-tuned-deepseek -f Modelfile
启动并测试
ollama run my-tuned-deepseek >>> 你是谁? <<< 我是[Talk-Bot],由zibiao开发的人工智能语言模型。

5.3 方式二:导入 GGUF 格式模型(跨平台兼容)

适用于无 GPU 设备或边缘部署场景。

转换为 GGUF 格式

先克隆 llama.cpp:

git clone --depth 1 https://github.com/ggerganov/llama.cpp.git cd llama.cpp && pip install -r requirements.txt

执行转换脚本:

python convert_hf_to_gguf.py \ D:\git-project\trained-model\train_DeepSeek-R1-1.5B-Distill \ --outfile D:\git-project\trained-model\model.gguf \ --outtype q8_0

支持量化类型:q4_0,q8_0等,数值越高质量越高但体积越大

创建新 Modelfile
FROM D:\git-project\trained-model\model.gguf PARAMETER temperature 0.6 PARAMETER top_p 0.95 TEMPLATE """ {{- if .System }}{{ .System }}{{ end }} {{- range $i, $_ := .Messages }} {{- $last := eq (len (slice $.Messages $i)) 1}} {{- if eq .Role "user" }}<|User|>{{ .Content }} {{- else if eq .Role "assistant" }}<|Assistant|>{{ .Content }}{{- if not $last }}<|end▁of▁sentence|>{{- end }} {{- end }} {{- if and $last (ne .Role "assistant") }}<|Assistant|>{{- end }} {{- end }} """
构建与运行
ollama create my-tuned-gguf -f Modelfile ollama run my-tuned-gguf

6. API调用与集成

Ollama 兼容 OpenAI API 协议,便于快速接入现有系统。

发送请求示例(Python)

import requests url = "http://localhost:11434/v1/chat/completions" headers = {"Content-Type": "application/json"} data = { "model": "my-tuned-deepseek", "messages": [{"role": "user", "content": "你是谁?"}], "temperature": 0.6, "top_p": 0.95, "stream": False } response = requests.post(url, json=data, headers=headers) print(response.json()["choices"][0]["message"]["content"])

🌐 默认端口:11434
📚 文档:Ollama API Docs


7. 模型量化与性能优化

7.1 为什么要量化?

  • 内存占用减少 40%~75%
  • 推理速度提升 20%~50%
  • 支持在消费级设备运行(如笔记本、树莓派)

7.2 使用 Ollama 量化模型

ollama create my-quantized -f Modelfile --quantize q4_K_M

支持的量化等级:

类型位宽适用场景
Q4_K_M4-bit平衡精度与性能,推荐通用场景
Q5_K_S5-bit高精度任务(如数学推理)
Q8_08-bit接近 FP16 表现,适合服务器部署
Q2_K2-bit极低资源环境,牺牲部分质量

⚠️ 注意:仅支持从 FP16/FP32 原始模型进行首次量化,无法二次量化。


8. 总结

本文详细演示了如何从零开始微调DeepSeek-R1-Distill-Qwen-1.5B模型,实现对其自我认知的完全定制化。核心步骤包括:

  1. 准备环境与模型:下载基础模型并搭建 LLaMA-Factory 微调平台;
  2. 构建身份数据集:通过修改identity.json实现角色定义;
  3. 执行 LoRA 微调:低资源条件下高效训练;
  4. 导出融合模型:生成可用于部署的完整权重;
  5. 多方式部署:支持原生 HuggingFace 和 GGUF 格式;
  6. API 集成与量化:满足生产级性能与兼容性需求。

实践建议

  • 🎯优先使用 LoRA 微调:节省显存且易于迭代
  • 💡避免系统提示注入:遵循官方建议,所有指令放 user prompt
  • 🔒保护商业信息:不要在公开模型中暴露敏感公司信息
  • 📈持续评估效果:多次测试取平均值判断稳定性

通过本次实践,你已经掌握了轻量级大模型私有化定制的核心技能,可进一步扩展至客服机器人、知识库问答、垂直领域专家系统等应用场景。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:28:50

小白也能懂的YOLO11教程,从安装到检测全流程

小白也能懂的YOLO11教程&#xff0c;从安装到检测全流程 1. 引言&#xff1a;为什么选择YOLO11&#xff1f; 目标检测是计算机视觉中的核心任务之一&#xff0c;旨在识别图像中物体的类别并定位其位置。传统方法如R-CNN系列采用“区域提议分类”的两阶段策略&#xff0c;虽然…

作者头像 李华
网站建设 2026/4/23 11:29:06

语音合成总出错?GLM-TTS常见问题解决方案

语音合成总出错&#xff1f;GLM-TTS常见问题解决方案 1. 引言&#xff1a;为什么你的语音合成总是不理想&#xff1f; 在构建智能语音助手、有声读物系统或个性化通知服务时&#xff0c;高质量的文本转语音&#xff08;TTS&#xff09;能力已成为核心需求。然而&#xff0c;即…

作者头像 李华
网站建设 2026/4/23 12:55:05

RexUniNLU零样本学习:快速适应新业务场景的NLP方案

RexUniNLU零样本学习&#xff1a;快速适应新业务场景的NLP方案 1. 引言&#xff1a;面向多任务统一建模的零样本NLP挑战 在自然语言处理&#xff08;NLP&#xff09;的实际落地过程中&#xff0c;企业常常面临“小样本”甚至“零样本”的现实困境——新业务上线快、标注数据少…

作者头像 李华
网站建设 2026/4/23 12:45:05

基于ComfyUI的DDColor修复工作流:新手也能轻松掌握

基于ComfyUI的DDColor修复工作流&#xff1a;新手也能轻松掌握 1. 引言&#xff1a;让黑白老照片重获新生 随着AI技术的发展&#xff0c;图像修复与上色已不再是专业修图师的专属技能。DDColor作为一款基于深度学习的黑白图像智能上色模型&#xff0c;凭借其出色的色彩还原能力…

作者头像 李华