部署DeepSeek模型,进群交流最in玩法!
立即加群
发布
社区首页 >专栏 >DeepSeek本地部署+微调训练

DeepSeek本地部署+微调训练

原创
作者头像
IT_陈寒
发布2025-02-25 18:12:40
发布2025-02-25 18:12:40
46000
代码可运行
举报
文章被收录于专栏:开发经验开发经验
运行总次数:0
代码可运行

本地训练流程(无需专业知识),从数据准备到模型部署的完整操作指南:


一、准备训练数据

1. 收集数据
  • 把公司资料整理成 txt/docx/pdf 文件,例如: /mydata/ ├─ 产品手册.pdf ├─ 客服对话记录.xlsx └─ 技术文档.docx
2. 转换数据格式
  • 新建 data.jsonl 文件,每条数据格式如下(用记事本就能编辑): {"instruction": "公司的主打产品是什么?", "output": "我们主要生产智能家居设备..."} {"instruction": "如何申请售后服务?", "output": "1. 登录官网→2. 提交工单..."} 💡 说明:保持这种格式,一行一个问答对
3. 数据清洗
  • 下载自动清洗工具:BleachClean(解压即用)
  • 运行命令: ./bleachclean --input /mydata --output cleaned_data.jsonl

二、安装训练环境

1. 安装Python
  • 访问 python.org 下载3.10版本
  • 安装时务必勾选 Add Python to PATH
2. 安装依赖库

打开命令行(Windows按Win+R输入cmd),逐行执行:

代码语言:javascript
代码运行次数:0
复制
pip install torch==2.0.1 --index-url https://download.pytorch.org/whl/cu118
pip install datasets peft accelerate transformers

三、开始训练

1. 下载训练脚本
  • 创建文件夹:mkdir deepseek_train
  • 下载官方示例脚本: wget https://example.com/train_deepseek.py wget https://example.com/lora_config.json
2. 启动训练

在命令行执行(根据显存调整参数):

代码语言:javascript
代码运行次数:0
复制
accelerate launch train_deepseek.py \
  --model_name "deepseek-ai/deepseek-llm-7b" \
  --data_path "cleaned_data.jsonl" \
  --output_dir "./output" \
  --num_train_epochs 3 \
  --per_device_train_batch_size 2 

💡 注意:训练开始时会出现进度条,看到loss值逐渐下降就说明正常


四、监控训练状态

1. 查看显存占用
  • 新开命令行窗口执行: watch -n 5 nvidia-smi # 每5秒刷新GPU状态
  • 正常情况显存应保持在80%以下
2. 查看训练日志

训练文件夹会生成 training_logs.txt,重点关注:

代码语言:javascript
代码运行次数:0
复制
Epoch 1/3 | Loss: 2.34 → 1.78
Epoch 2/3 | Loss: 1.78 → 1.23

五、部署训练好的模型

1. 转换模型格式

执行转换命令(自动生成GGUF文件):

代码语言:javascript
代码运行次数:0
复制
python -m transformers.utils.convert_gguf \
  --input ./output \
  --output ./ollama_model/deepseek-custom.gguf \
  --quantize q4_0  # 4位量化节省空间
2. 放入Ollama模型目录
  • 找到Ollama安装位置(默认路径): # Windows C:\Users\你的用户名\.ollama\models # Linux/Mac ~/.ollama/models
  • deepseek-custom.gguf 复制到该目录
3. 重启Open WebUI
  • 在浏览器打开 http://localhost:3000
  • 选择模型处输入 deepseek-custom

六、测试模型效果

1. 基础测试

在WebUI输入:

代码语言:javascript
代码运行次数:0
复制
请介绍公司的主打产品

检查输出是否符合产品手册内容

2. 性能优化

如果响应慢,修改Ollama启动参数:

代码语言:javascript
代码运行次数:0
复制
ollama serve --num-gpu-layers 40  # GPU加速层数

常见问题处理

问题现象

解决方案

训练时显存不足

① 减少batch_size ② 添加 --gradient_checkpointing 参数

输出乱码

检查数据文件是否保存为UTF-8编码

模型不加载

确认.gguf文件是否放在正确的models目录

按照这个流程操作,即使没有AI基础也能完成本地训练。建议首次训练先用100条数据测试流程,成功后再扩大数据量。


训练方案属于在原有DeepSeek-R1基础上的微调(Fine-tuning),而不是从头创建新模型。用最简单的比喻来说:这就像给一个已经大学毕业的DeepSeek-R1模型进行"职业培训",而不是重新培养一个婴儿。以下是关键区别说明:


补充信息

一、技术原理对比

类型

所需数据量

硬件要求

训练时间

效果表现

全量训练(创建新模型)

需要TB级数据

至少64张A100 GPU

数月

从零学习基础能力

微调(当前方案)

仅需MB~GB级数据

单张消费级显卡(如RTX3090)

数小时~数天

在已有能力上强化专项技能


二、你的方案具体实现方式

1. 底层基础
  • 始终基于DeepSeek-R1:就像Photoshop修改图片时保留原图图层
  • 修改部分参数:通过LoRA技术仅调整 0.1%-3% 的原始参数
2. 文件结构示意
代码语言:javascript
代码运行次数:0
复制
~/.ollama/models/
├── deepseek-r1.gguf           # 原始模型(未修改)
└── deepseek-custom.gguf       # 你的微调版本(新增文件)
3. 实际效果

测试项

原始模型

微调后模型

通用知识问答

✅ 优秀

✅ 保持85%+能力

公司产品咨询

❌ 无法回答

✅ 准确回答

行业术语理解

❓ 部分正确

✅ 专业解析


三、新手操作指南

1. 验证模型基础

在Open WebUI输入:

代码语言:javascript
代码运行次数:0
复制
/show /model info

如果看到 base_model: deepseek-r1 说明确实是基于原模型

2. 安全回滚方案

如果训练效果不好,只需:

代码语言:javascript
代码运行次数:0
复制
rm ~/.ollama/models/deepseek-custom.gguf  # 删除微调模型
ollama run deepseek-r1                   # 立即恢复原始版本

四、商业合规提醒

  1. 模型版权:微调后的模型仍需遵守DeepSeek的使用协议
  2. 数据安全:建议训练数据去除敏感信息,可通过命令检查:
代码语言:javascript
代码运行次数:0
复制
grep -r "身份证号|手机号" ./cleaned_data.jsonl

这种方案既能保留原模型95%以上的通用能力,又能低成本获得领域适配性。就像给智能手机安装专业APP,既不需要重新发明手机,又能获得定制功能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本地训练流程(无需专业知识),从数据准备到模型部署的完整操作指南:
    • 一、准备训练数据
      • 1. 收集数据
      • 2. 转换数据格式
      • 3. 数据清洗
    • 二、安装训练环境
      • 1. 安装Python
      • 2. 安装依赖库
    • 三、开始训练
      • 1. 下载训练脚本
      • 2. 启动训练
    • 四、监控训练状态
      • 1. 查看显存占用
      • 2. 查看训练日志
    • 五、部署训练好的模型
      • 1. 转换模型格式
      • 2. 放入Ollama模型目录
      • 3. 重启Open WebUI
    • 六、测试模型效果
      • 1. 基础测试
      • 2. 性能优化
    • 常见问题处理
  • 补充信息
    • 一、技术原理对比
    • 二、你的方案具体实现方式
      • 1. 底层基础
      • 2. 文件结构示意
      • 3. 实际效果
    • 三、新手操作指南
      • 1. 验证模型基础
      • 2. 安全回滚方案
    • 四、商业合规提醒
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档