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

基于 LLaMA-Factory 的 DPO 训练实战指南

DPO 训练流程涵盖数据加载、格式转换、模型微调及权重合并。基于 LLaMA-Factory 框架,演示如何在 Ubuntu 环境下利用双卡显卡进行 DPO 训练。内容涉及从 Hugging Face 加载数据集、编写脚本将 Arrow 格式转为 LLaMA-Factory 识别的 JSON 格式、配置 dataset_info.json、通过 WebUI 启动 DeepSpeed 分布式训练以及最后的模型合并操作。针对硬件限制提供了量化与序列长度调整建议,并强调了 Linux 环境在多卡训练中的稳定性优势。

涅槃凤凰发布于 2026/3/27更新于 2026/7/2038 浏览

前言

LLM 训练通常包含预训练、微调及 RLHF 环节。DPO 作为 RLHF 的一种主流方法,相比 PPO 和 GRPO,对硬件资源的需求更低,显存占用更优,适合入门实践。

环境准备

本教程基于以下配置:双卡 RTX 4070 (12G)、64G 内存、Ubuntu 24.04。模型选用 QWEN-3vl-2B(若无需多模态功能,可切换为纯语言模型)。

关于系统选择,虽然 Windows 也能运行,但在多卡训练及显存稳定性上,Linux 具有显著优势。建议长期投入大模型学习的朋友直接部署 Linux 环境,减少排查底层报错的时间成本。

注意:LLaMA-Factory 目前对 DeepSpeed 的最新版本适配可能滞后,若需分布式训练,请确认版本兼容性。

步骤一:加载数据集

我们使用 Hugging Face 上的医疗 DPO 数据集。通过 datasets 库即可快速加载。

from datasets import load_dataset

ds = load_dataset("HANI-LAB/Med-REFL-DPO", 'reasoning_enhancement')
print(ds['train'][:1])

执行后可见数据正常加载,结构清晰。

步骤二:数据预处理

LLaMA-Factory 需要特定的 JSON 格式。我们需要将源数据转换为包含 instruction, input, chosen, rejected 字段的结构。

import json
from datasets import load_dataset
import os

def convert_arrow_to_json(dataset_path, output_json_path):
    if os.path.exists(dataset_path):
        dataset = load_dataset('arrow', data_files=dataset_path)
    else:
        dataset = load_dataset(dataset_path, name='reasoning_enhancement')
    
    train_dataset = dataset['train']
    output_data = []
    
    for item in train_dataset:
        if 'instruction' in item and 'chosen' in item and 'rejected' in item:
            json_item = {
                "instruction": item['instruction'],
                "input": item.get('input', ''),
                "chosen": item['chosen'],
                "rejected": item['rejected']
            }
            output_data.append(json_item)
    
    with open(output_json_path, 'w', encoding='utf-8') as f:
        json.dump(output_data, f, ensure_ascii=False, indent=2)
    print(f"转换完成!共处理了 {len(output_data)} 条数据")

if __name__ == "__main__":
    arrow_file_path = "path/to/your/Reasoning Enhancement.arrow"
    output_json_path = "med_refl_dpo.json"
    convert_arrow_to_json(arrow_file_path, output_json_path)

完成数据集的标准化后,将获得的 JSON 文件复制到 LLaMA-Factory 的 data 目录下。

之后修改 dataset_info.json,增加自定义数据集配置:

{
  "MED_DPO": {
    "file_name": "/home/user/LLaMA-Factory/data/med_dpo.json",
    "ranking": true,
    "columns": {
      "prompt": "instruction",
      "query": "input",
      "chosen": "chosen",
      "rejected": "rejected"
    }
  }
}

步骤三:启动训练

在终端进入 LLaMA-Factory 目录,输入 llamafactory-cli webui 启动可视化界面。

在网页端设置参数时,由于是多卡训练,建议选择 DeepSpeed。单卡训练的同学不需要勾选此选项。本次训练大约需要 24G 显存,如果显存紧张,可以通过开启量化或者减少序列长度来优化。

训练过程可能需要数小时,期间若遇到环境不兼容问题,需耐心调整依赖版本。

步骤四:合并模型

训练完成后,在导出模块选择训练好的权重文件位置,与原始模型进行合并,生成最终可用的模型文件。

目录

  1. 前言
  2. 环境准备
  3. 步骤一:加载数据集
  4. 步骤二:数据预处理
  5. 步骤三:启动训练
  6. 步骤四:合并模型
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Java 多线程并发修改集合引发 ConcurrentModificationException 解析与方案
  • 基于 MCP 和 Skill 的前端 JS 逆向自动化落地实践
  • Flutter pathfinding 组件在 OpenHarmony 上的适配实战
  • MCP 协议详解:与 Function Call 的区别及实战使用
  • 大语言模型参数高效微调(PEFT)方法综述
  • 彻底关闭 Win10 中 Microsoft 365 Copilot 弹窗的 6 种方法
  • OpenClaw 接入飞书实战:让 AI 机器人读写文档与表格
  • 算法实战:利用前缀和解中心下标与数组乘积问题
  • OpenAI 发布 GPT-5.3 Instant:幻觉率降低及 2026 AI 模型排行
  • Stable Diffusion ADetailer 插件详解:修复人脸手部崩坏问题
  • Android 端实时语音转文字实战:基于 Whisper 的落地实践
  • Linux 系统学习:深入剖析 Git 原理与进阶使用
  • SkyWalking 接入 Spring Cloud Alibaba 微服务:从链路追踪到告警
  • Linux 命名管道(FIFO)通信:原理与跨进程实战
  • Manacher 算法详解:线性时间求解最长回文子串
  • 链表经典算法题解:相加、重排与合并
  • 基于阿里云ASR的AI电销机器人架构与实现
  • FLOAT:基于流匹配的音频驱动说话者头像生成模型
  • 基于 Higress 将 REST API 转换为 MCP Server 工具
  • Llama-2-7b 在昇腾 NPU 上的六大核心场景性能基准

相关免费在线工具

  • 加密/解密文本

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