首页 > 编程语言 >Qwen3.5 DPO 模型对齐实战(pytrio训练版)

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

来源:互联网 2026-07-09 11:55:07

基于Qwen3.5-4B模型和hh-rlhf数据集,利用pytrio平台与SwanLab监控完成DPO训练。100步1.2Mtoken耗时7分钟花费5.5元;500步6Mtoken耗时35分钟花费27.5元。实验验证了直接偏好优化在模型对齐中的有效性。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

对于希望深入了解模型对齐的开发者来说,基于 Qwen3.5 进行 DPO 训练是一个理想的入门实践。本文将完整演示整个流程:采用 Qwen3.5-4B 模型,在 Anthropic 开源的 hh-rlhf 数据集上执行 DPO,计算平台使用 pytrio(一种将训练封装为 API 的工具),训练监控与评估通过 SwanLab 完成。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

长期稳定更新的攒劲资源: >>>点此立即查看<<<

  • 代码:awesome-pytrio-train
  • 实验日志过程:dpo-hh-rlhf-pytrio
  • 模型:Qwen3.5-4B
  • 数据集:hh-rlhf
  • 训练Token数:
    • 100步:1.2 M,约 7 分钟,费用 5.5 元
    • 500步:6 M,约 35 分钟,费用 27.5 元

为什么需要 DPO

在大模型对齐场景中,核心挑战在于:给定多个候选回答,模型能否准确识别出人类更偏好的那个。传统的 RLHF 方法需要先训练一个奖励模型,再通过 PPO 优化语言模型,整个链路较长,调参复杂,且容易遇到奖励欺骗等问题。

DPO(Direct Preference Optimization,直接偏好优化)采用更直接的方式解决该问题:基于偏好数据,将“更喜欢哪个回答”转化为类似监督学习的优化目标。偏好数据通常包含同一个提示下的两个回答——人类更喜欢的记为 chosen,不太好的记为 rejected。DPO 的目标直观明确:让模型在面对相同问题时,倾向于输出 chosen 风格的回答,而非 rejected 风格。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

与传统 RLHF 相比,DPO 的核心优势在于:无需单独训练奖励模型,也不依赖 PPO 等强化学习算法。它将偏好学习改写为监督学习问题,直接利用 chosen/rejected 对更新参数。因此,实现路径更短,训练更稳定,调参成本也更低。

一句话总结:用更简单、更稳定的方式,将人类偏好直接注入模型。 在已有 SFT 模型的基础上,DPO 是进一步优化的理想选择——让模型不仅“会回答”,更懂得“怎样回答更好”。

准备工作

本案例基于 Python ≥ 3.10,请确保本地已安装 Python。由于使用 pytrio 作为计算引擎,仅需一台能联网的普通电脑即可,无需担心算力问题。

首先,将代码克隆到本地:

git clone  
cd dpo

然后安装以下三个 Python 库:

pip install pytrio swanlab torch

数据集介绍

本案例使用 hh-rlhf 数据集。该数据集由 Anthropic 发布,是经典的 RLHF 偏好数据集,全称常称为 Helpful and Harmless RLHF,专门用于研究“人类更偏好哪个回答”,非常适合 DPO、RLHF 以及对齐相关实验。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

数据集包含偏好对数据和红队数据。红队数据主要用于模型攻击研究,本文仅使用偏好对数据,共计约 169,352 条。

偏好对数据中每条样本包含两个字段:

{
  "chosen": "...",
  "rejected": "..."
}

chosen 是人工标注者更偏好的回答,rejected 是相对较差的回答。对话文本通常采用 Human: / Assistant: 格式拼接:

Human: If you were going to steal from a convenience store, do you think it would be better in the morning or at nightAssistant: I really couldn't say, I'm not familiar with stealing convenience store items.

数据集包含四个主要子集:

子集训练集测试集说明
helpful-base43,8352,354基础模型生成的有用性偏好数据
helpful-rejection-sampled52,4212,749经过拒绝采样的有用性数据
helpful-online22,0071,137迭代 RLHF 过程中采样的数据
harmless-base42,5372,312安全/无害性偏好数据

数据集的下载与使用方法已集成在第6节的完整代码中,直接运行即可。

配置 TRIO

TRIO 是一款专为大模型训练设计的 AI 计算框架。其最大特点是开发者无需操心环境配置、模型下载、GPU 底层等问题——只需在任意电脑上安装 pytrio 包,编写几行代码即可开始训练。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

其原理是将训练过程前后分离:开发者在本地定义训练行为(类似编写 PyTorch 代码),TRIO 在云端对批量上传的数据进行前向反向计算、更新权重,并返回 loss、logprobs 等指标。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

这样一来,训练流程变得类似于调用推理 API——任何联网设备,写好代码,请求后端,即可启动训练。因此,许多人将 TRIO 称为一种创新的“训练 API”。

对于科研人员而言,优势尤为突出:无需租用 GPU、配置环境、排队等待,也无需在同时运行多个实验时纠结资源分配,直接调用 API 即可扩展实验规模,显著缩短产出周期。


TRIO 的使用非常简单。首先访问官网(pytrio.cn)注册账号:

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

注册完成后,在「总览」页面复制 API Key:

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

然后在本地环境执行:

trio login

粘贴 API Key,按回车即可完成登录:

Qwen3.5 DPO 模型对齐实战(pytrio训练版)


登录后,建议向账户充值以便后续训练(本教程全部完成约需 6 元):

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

更多使用细节可参考 TRIO 官方文档。

配置模型

TRIO 配置模型非常简单,只需在 base_model 参数中填写一行字符串,无需下载权重:

training_client = service_client.create_lora_training_client(
    base_model="Qwen/Qwen3.5-4B",
    rank=32,
)

切换模型同样仅需修改字符串,无需等待下载和部署。截至本文发布时,支持的模型包括 Qwen3.5-4B 和 Qwen3.6-27B。

配置可视化工具

使用 SwanLab 监控训练过程并评估模型效果。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

如果首次使用 SwanLab,需要先到 swanlab.cn 注册账号,在用户设置页面复制 API Key,然后在训练开始时粘贴即可。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

开启训练

在之前克隆的目录下,进入 dpo 文件夹,运行:

python train.py

看到以下 loss 打印,即表示训练已开始:

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

训练完成后,权重可在 TRIO 控制台的「权重」选项卡中找到:

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

训练结果演示

在 SwanLab 上查看最终训练结果:

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

仅训练 100 步时,loss 变化不明显(训练 token 量较小)。

将步数增加到 500 后:

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

可见经过 500 步 DPO 训练,loss 呈下降趋势,acc 呈上升趋势,chose_reward 和 rejected_reward 分别呈现震荡上升和下降,符合预期。

训练好的 LoRA 模型可在「TRIO 控制台 - 权重」中获取,支持下载到本地或直接在线调用。

Qwen3.5 DPO 模型对齐实战(pytrio训练版)

相关链接

  • 代码:awesome-pytrio-train
  • 实验日志过程:dpo-hh-rlhf-pytrio
  • 数据集:hh-rlhf
  • pytrio

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。