跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonWeChatAI算法

DeepSeek-R1 模型基于 LLaMA-Factory 的可视化微调实战

DeepSeek-R1 模型微调涉及环境配置、数据清洗及训练部署全流程。通过 LLaMA-Factory 可视化工具,可简化 LoRA 全量微调操作。教程涵盖 Anaconda 环境搭建、CUDA 依赖安装、BitsAndBytes 量化支持,以及利用微信聊天记录工具进行数据预处理。重点讲解 dataset_info.json 配置、训练参数设置、评估指标解读及模型导出部署,适合希望快速上手大模型个性化训练的开发者参考。

奶糖兔发布于 2026/3/30更新于 2026/7/1928 浏览
DeepSeek-R1 模型基于 LLaMA-Factory 的可视化微调实战

DeepSeek-R1 模型微调概述

使用 LLaMA-Factory 进行模型微调具有多方面优势。它简化了大模型微调的过程,支持多种训练方法(如全量调参、LoRA)及对齐方案(如 DPO、PPO),用户可根据需求灵活选择策略。此外,它提供一站式服务,从微调到量化再到运行,无需在不同工具间切换。

在量化方面,LLaMA-Factory 能有效压缩模型规模,降低计算量和存储需求,使模型能在性能稍弱的设备上流畅运行。训练过程记录全面,除同步输出 loss 曲线外,还自带 BLEU 等评测指标,有助于监控和评估模型性能。

LLaMA-Factory 环境搭建

下载与解压

访问 GitHub 仓库 LLaMA-Factory 获取源码。建议直接下载 zip 包并解压,记录解压路径以便后续操作。

![LLaMA-Factory 下载界面]

Anaconda 环境配置

软硬件依赖

官方推荐 Python 版本至少 3.9,建议使用 3.10。打开终端后,导航至解压后的 LLaMA-Factory 目录。

# 示例:导航到具体文件夹
cd E:\Model\LLaMA-Factory-main\LLaMA-Factory-main
依赖安装

进入虚拟环境后,执行以下命令安装依赖:

pip install -r requirements.txt
pip install -e ".[torch,metrics]"
CUDA 与量化支持

安装 PyTorch 及 CUDA 支持(以 CUDA 11.8 为例):

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

若需在 Windows 平台开启量化 LoRA(QLoRA),需安装预编译的 bitsandbytes 库。请根据 CUDA 版本选择合适的 wheel 文件安装,例如:

pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl
启动 WebUI

运行以下命令启动可视化界面:

llamafactory-cli webui

若遇到 localhost 无法访问或 Gradio share 响应问题,可修改 interface.py 中的 share 参数为 True。注意启动时避免使用代理,以免界面加载异常。

数据集准备

数据导出工具

本教程以微信聊天记录风格化为例,可使用相关导出工具(如留痕)将聊天记录转换为文本格式。参考论文或官方文档了解个性化对话生成的最佳实践。

数据合并

在聊天记录文件夹中创建 merge.py,用于合并所有 JSON 格式的对话数据:

import os
import json

folder_path = r'D:\软件\留痕\data\聊天记录'
json_files = []
for root, dirs, files  os.walk(folder_path):
     file  files:
         file.endswith():
            json_files.append(os.path.join(root, file))

merged_data = []
 file  json_files:
     (file, , encoding=)  f:
        :
            data = json.load(f)
            merged_data.append(data)
         json.JSONDecodeError:
            ()

merged_file_path = os.path.join(folder_path, )
 (merged_file_path, , encoding=)  merged_file:
    json.dump(merged_data, merged_file, indent=, ensure_ascii=)
()
in
for
in
if
'.json'
for
in
with
open
'r'
'utf-8'
as
try
except
print
f"Error decoding {file}. Skipping."
'merged_data.json'
with
open
'w'
'utf-8'
as
4
False
print
f"合并后的文件已保存至:{merged_file_path}"

在命令行执行 python merge.py 即可完成合并。

数据预处理

预处理是提升模型质量的关键步骤,包括清洗噪声、脱敏、去重及格式转换。创建 Data_Preprocessing.py 脚本,将数据清洗并转换为 ShareGPT 格式:

import json
import re

with open('merged_data.json', 'r', encoding='utf-8') as file:
    data = json.load(file)

converted_data = []

def clean_data(dataset):
    cleaned_data = []
    for example in dataset:
        messages = example['messages']
        cleaned_messages = []
        for message in messages:
            if not message['content'].strip():
                continue
            message['content'] = message['content'].replace("\n", " ").strip()
            cleaned_messages.append(message)
        if cleaned_messages:
            cleaned_data.append({'messages': cleaned_messages})
    return cleaned_data

def replace_sensitive_info(text):
    text = re.sub(r'\d{3}[-]?\d{4}[-]?\d{4}', '[PHONE_NUMBER]', text)
    text = re.sub(r'\S+@\S+', '[EMAIL]', text)
    text = re.sub(r'\d{4}-\d{2}-\d{2}', '[DATE]', text)
    return text

def anonymize_data(dataset):
    anonymized_data = []
    for example in dataset:
        messages = example['messages']
        anonymized_messages = []
        for message in messages:
            if message['role'] == 'user':
                message['content'] = message['content'].replace("用户", "用户 X")
            message['content'] = replace_sensitive_info(message['content'])
            anonymized_messages.append(message)
        anonymized_data.append({'messages': anonymized_messages})
    return anonymized_data

for item_list in data:
    for item in item_list:
        if 'messages' not in item:
            continue
        conversation = {"conversations": []}
        for message in item['messages']:
            role = message['role']
            content = message['content']
            content = replace_sensitive_info(content)
            if role == "system":
                continue
            elif role == "user":
                from_role = "human"
            elif role == "assistant":
                from_role = "gpt"
            else:
                continue
            conversation['conversations'].append({"from": from_role, "value": content})
        converted_data.append(conversation)

with open('converted_data.json', 'w', encoding='utf-8') as file:
    json.dump(converted_data, file, ensure_ascii=False, indent=2)
print("数据转换完成,结果已保存为 converted_data.json")

执行 python Data_Preprocessing.py 完成清洗与格式化。

DeepSeek-R1 微调流程

数据集配置

将处理好的 converted_data.json 放入 LLaMA-Factory 的 data 目录下。编辑 dataset_info.json,添加如下配置以识别新数据集:

"converted_data": {
    "file_name": "converted_data.json",
    "formatting": "sharegpt",
    "columns": {
        "messages": "conversations"
    }
}

基础设置

  1. 启动 LLaMA-Factory,语言设置为中文。
  2. 选择模型:DeepSeek-R1-Distill-Qwen-1.5B(需提前下载至本地)。
  3. 选择刚才配置的数据集。
  4. 预览数据确保无误。
  5. 配置训练参数(如学习率、Batch Size 等),若不确定可按默认值或参考样例。
  6. 点击预览命令查看最终配置,确认无误后开始训练。

训练过程中可通过 Gradio UI 实时查看 Loss 曲线,后台日志会输出 Epoch、Token 数、Loss 值及运行时间等关键指标。

模型评估与预测

训练完成后,进入 Evaluate & Predict 模块:

  1. 选择测试数据集。
  2. 预览评估命令(RTX4080 约需 50 分钟)。
  3. 评估结束后查看指标,如 BLEU-4、ROUGE-1/2/L 等,这些反映了生成文本与参考文本的相似度及结构匹配度。

模型对话与导出

  1. 对话测试:在 WebUI Demo 中加载训练好的模型,输入提示词即可体验个性化对话效果。
  2. 模型导出:点击 Export,选择自动设备,填写导出目录。导出成功后,模型文件将保存在指定路径下。
  3. 部署准备:建议在导出目录新建 requirements.txt,列出当前模型所需依赖(如 transformers, peft, accelerate 等),便于后续快速部署。

至此,DeepSeek-R1 模型的个性化微调全流程已完成。开发者可根据实际需求调整参数或扩展数据集,进一步探索模型潜力。

目录

  1. DeepSeek-R1 模型微调概述
  2. LLaMA-Factory 环境搭建
  3. 下载与解压
  4. Anaconda 环境配置
  5. 软硬件依赖
  6. 示例:导航到具体文件夹
  7. 依赖安装
  8. CUDA 与量化支持
  9. 启动 WebUI
  10. 数据集准备
  11. 数据导出工具
  12. 数据合并
  13. 数据预处理
  14. DeepSeek-R1 微调流程
  15. 数据集配置
  16. 基础设置
  17. 模型评估与预测
  18. 模型对话与导出
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 热门开源 AI 大模型项目精选与总结
  • Git 版本控制常用命令与场景指南
  • RAG 知识库调优方案深度解析:学术界检索前优化实践
  • 利用文心一言设计智能体工作流提示词,实现职业卡通形象生成
  • 12 款主流 AI 写小说工具测评与功能对比
  • C++ std::function 包装器与 bind 绑定详解
  • Python 核心知识点与面试常见问题汇总
  • Spring Boot 使用 web3j 交互智能合约详解
  • 基于 Python 的 Live2D 虚拟主播软件
  • Ubuntu 20.04 系统下 QGroundControl 地面站安装教程
  • Java面向对象入门:类、对象与封装详解
  • 机器人送料机械手设计方案
  • Python 入门实战:从零编写你的第一个网络爬虫
  • 本地 AI 个人知识库搭建指南
  • C++ 特殊类设计:拷贝控制、内存分配与单例模式
  • LangChain Gmail 工具箱使用指南:邮件查询、发送与管理
  • Spring Boot 安全认证与授权详解
  • 自然语言处理在金融领域的应用与实战
  • Direct3D 融合技术与透明效果实现
  • 新能源集控系统数据库架构实践:时序数据与高可用设计

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online