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

LLaMA-Factory 微调 DeepSeek-R1 模型实战指南

本教程基于 LLaMA-Factory 框架,演示了如何在本地环境下使用 DeepSeek-R1 模型进行可视化微调。内容涵盖环境配置、数据集清洗与格式转换、LoRA 参数调优及模型导出全流程。通过实战步骤,帮助开发者快速掌握大语言模型的个性化训练方法。

氛围发布于 2026/3/23更新于 2026/6/2035 浏览
LLaMA-Factory 微调 DeepSeek-R1 模型实战指南

LLaMA-Factory 微调 DeepSeek-R1 模型实战指南

使用 LLaMA-Factory 进行大模型微调具有显著优势。它不仅简化了训练流程,支持全量调参、LoRA 等多种策略及 DPO、PPO 等对齐方案,还提供了一站式服务,涵盖从量化到运行的全流程。此外,该工具内置了详细的训练监控指标(如 Loss 曲线、BLEU 等),能有效帮助用户评估模型性能。

环境准备

依赖安装与配置

首先确保 Python 版本在 3.9 以上,推荐 3.10。进入项目目录后,需安装基础依赖:

pip install -r requirements.txt
pip install -e ".[torch,metrics]"

若需使用 GPU 加速,请安装 CUDA 支持的 PyTorch 版本(以 CUDA 11.8 为例):

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

注意: 在 Windows 平台开启 QLoRA 量化时,需安装预编译的 bitsandbytes 库。请根据本地 CUDA 版本选择对应的 wheel 文件下载并安装。

启动可视化界面:

llamafactory-cli webui

若遇到无法访问 localhost 的错误,可能是 Gradio 分享设置问题。可修改源码中的 interface.py,将 share=gradio_share 改为 share=True,并确保未开启网络代理干扰。

数据集准备

数据获取与清洗

本教程以微信聊天记录风格化为例。我们需要先将原始对话数据导出为 JSON 格式,并进行合并与清洗。

  1. 数据导出:使用相关工具将聊天记录导出为 JSON 或 TXT 格式。
  2. 数据合并:编写脚本将所有分散的 JSON 文件合并为一个主文件。
import os
import json

folder_path = r'<your_data_path>'
json_files = []
for root, dirs, files in os.walk(folder_path):
    for file in files:
        if file.endswith('.json'):
            json_files.append(os.path.join(root, file))

merged_data = []
for file in json_files:
    with open(file, 'r', encoding='utf-8') as f:
        try:
            data = json.load(f)
            merged_data.append(data)
        except json.JSONDecodeError:
            ()

 (, , encoding=)  f:
    json.dump(merged_data, f, indent=, ensure_ascii=)
()
print
f"Error decoding {file}. Skipping."
with
open
'merged_data.json'
'w'
'utf-8'
as
4
False
print
"合并完成"
  1. 格式转换:将数据清洗并转换为 LLaMA-Factory 所需的 ShareGPT 格式。此过程包括去除空消息、脱敏处理(替换手机号、邮箱等敏感信息)以及角色映射。
import json
import re

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

converted_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)
    return text

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'].replace("\n", " ").strip()
            content = replace_sensitive_info(content)
            
            if 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 f:
    json.dump(converted_data, f, ensure_ascii=False, indent=2)
print("格式转换完成")

模型微调

配置与训练

  1. 数据集注册:将处理好的 converted_data.json 放入 data 目录,并在 dataset_info.json 中注册新数据集。
"converted_data": {
    "file_name": "converted_data.json",
    "formatting": "sharegpt",
    "columns": {"messages": "conversations"}
}
  1. 参数设置:在 WebUI 中选择模型(如 DeepSeek-R1-Distill-Qwen-1.5B)、加载上述数据集。对于 LoRA 微调,建议先预览生成命令确认参数无误。

  2. 开始训练:点击训练按钮,监控 Loss 曲线。训练结束后,权重文件通常保存在 saves 目录下。

评估与导出

训练完成后,可通过 Evaluate & Predict 功能对模型进行评估,查看 BLEU、ROUGE 等指标。最后,点击 Export 将 LoRA 权重导出为完整模型,方便部署到其他环境中。

导出时建议设备选择自动,以确保 CUDA 兼容性。导出的模型文件夹内包含必要的配置文件和权重文件,可直接用于推理服务。

目录

  1. LLaMA-Factory 微调 DeepSeek-R1 模型实战指南
  2. 环境准备
  3. 依赖安装与配置
  4. 数据集准备
  5. 数据获取与清洗
  6. 模型微调
  7. 配置与训练
  8. 评估与导出
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Java 面试核心知识点整理
  • 网络安全攻防:黑客攻击简要流程
  • 网络安全渗透测试全流程与核心工具指南
  • 数据结构:快速排序与归并排序的深入优化
  • STM32 单片机充电桩安全监测系统
  • Python 开发中需要摒弃的 18 个坏习惯
  • 前端无障碍性:构建包容性网站
  • Docker 实战:修改 docker0 网桥默认 IP 地址
  • 算法竞赛基础:递推、递归、搜索与高精度
  • OpenWebUI 联网搜索实战:用 SearXNG 让本地大模型获取实时信息
  • C++ 类大小计算详解:内存对齐与虚函数机制
  • LLAMA3.1 8B 本地部署与 Obsidian 知识管理集成指南
  • Python 中应淘汰的旧库及标准库替代方案详解
  • ComfyUI AI 工作流抠图构建实战指南
  • Atlas 数据中间件架构与核心特性介绍
  • 基于 Java 的百度地图路线规划服务开发
  • Kokoro-TTS跨平台C++移植实战:从Windows到嵌入式终端
  • Xinference 多模型并发推理实测:Llama3、Qwen2-VL 与 Whisper 协同
  • YOLOv8 核心算法创新与工程部署详解
  • Spring @Transactional 注解详解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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