data.jsonl
文件,每条数据格式如下(用记事本就能编辑):
{"instruction": "公司的主打产品是什么?", "output": "我们主要生产智能家居设备..."} {"instruction": "如何申请售后服务?", "output": "1. 登录官网→2. 提交工单..."}
💡 说明:保持这种格式,一行一个问答对打开命令行(Windows按Win+R输入cmd),逐行执行:
pip install torch==2.0.1 --index-url https://download.pytorch.org/whl/cu118
pip install datasets peft accelerate transformers
mkdir deepseek_train
在命令行执行(根据显存调整参数):
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值逐渐下降就说明正常
训练文件夹会生成 training_logs.txt
,重点关注:
Epoch 1/3 | Loss: 2.34 → 1.78
Epoch 2/3 | Loss: 1.78 → 1.23
执行转换命令(自动生成GGUF文件):
python -m transformers.utils.convert_gguf \
--input ./output \
--output ./ollama_model/deepseek-custom.gguf \
--quantize q4_0 # 4位量化节省空间
deepseek-custom.gguf
复制到该目录http://localhost:3000
deepseek-custom
在WebUI输入:
请介绍公司的主打产品
检查输出是否符合产品手册内容
如果响应慢,修改Ollama启动参数:
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) | 数小时~数天 | 在已有能力上强化专项技能 |
~/.ollama/models/
├── deepseek-r1.gguf # 原始模型(未修改)
└── deepseek-custom.gguf # 你的微调版本(新增文件)
测试项 | 原始模型 | 微调后模型 |
---|---|---|
通用知识问答 | ✅ 优秀 | ✅ 保持85%+能力 |
公司产品咨询 | ❌ 无法回答 | ✅ 准确回答 |
行业术语理解 | ❓ 部分正确 | ✅ 专业解析 |
在Open WebUI输入:
/show /model info
如果看到 base_model: deepseek-r1
说明确实是基于原模型
如果训练效果不好,只需:
rm ~/.ollama/models/deepseek-custom.gguf # 删除微调模型
ollama run deepseek-r1 # 立即恢复原始版本
grep -r "身份证号|手机号" ./cleaned_data.jsonl
这种方案既能保留原模型95%以上的通用能力,又能低成本获得领域适配性。就像给智能手机安装专业APP,既不需要重新发明手机,又能获得定制功能。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。