网罗开发 (小红书、快手、视频号同名)

  大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。

图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。

展菲:您的前沿技术领航员
👋 大家好,我是展菲!
📱 全网搜索“展菲”,即可纵览我在各大平台的知识足迹。
📣 公众号“Swift社区”,每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。
💬 微信端添加好友“fzhanfei”,与我直接交流,不管是项目瓶颈的求助,还是行业趋势的探讨,随时畅所欲言。
📅 最新动态:2025 年 3 月 17 日
快来加入技术社区,一起挖掘技术的无限潜能,携手迈向数字化新征程!


文章目录

    • 摘要
    • 引言
    • 对齐训练的三大阶段
      • 监督微调(SFT)
      • 奖励模型训练(RM)
      • 策略优化(PPO / DPO)
        • PPO
        • DPO(更轻量)
    • 应用场景与代码示例
      • 场景一:客服对话系统
      • 场景二:内容安全助手
      • 场景三:医疗助手
    • QA 环节
    • 总结

摘要

在大语言模型日益强大的今天,我们会发现一个问题:它们虽然“能说会道”,但有时候却说得不靠谱——比如编造事实、回答偏激,甚至出现违背常识和伦理的问题。

为了让模型“听得懂话、说得靠谱”,我们就需要对齐训练(Alignment Training)。这背后的核心方法是 人类反馈强化学习(RLHF),它通过人类偏好来调整模型行为,确保模型输出不仅正确,而且符合价值观。

本文将系统介绍 RLHF 的三个阶段:监督微调(SFT)、奖励模型训练(RM)、策略优化(如PPO、DPO),结合 HuggingFace + TRL + DPO 框架进行实战演示,帮助你掌握一整套对齐训练的开发流程。

引言

大语言模型训练分两步走:

  1. 预训练(Pretraining):学会“说话”,但不懂“人话”。
  2. 对齐训练(Alignment):学会“说得对”,还得“说得人喜欢”。

早期对齐方法主要是规则过滤或黑名单,但效果有限。直到 OpenAI 推出 InstructGPTChatGPT,通过 RLHF 结合人类反馈训练出更符合人类偏好的模型,才真正解决了这一问题。

随着对齐技术的发展,又涌现了许多轻量替代品,如 DPO(Direct Preference Optimization),省去了 RL 中复杂的采样和价值函数估计,成为更轻便的替代方案。

对齐训练的三大阶段

监督微调(SFT)

这是最基础的一步。我们先用成对的指令-回复数据(如“请写一封道歉信” - “很抱歉我错了………”)让模型学会基本的“格式”与“语气”。

# 使用transformers进行SFT训练
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, Trainermodel = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-hf")train_data = [{"input": "请写一封道歉信", "output": "很抱歉给您带来了不便……"},{"input": "总结这段内容", "output": "这段文字讨论了……"},
]def tokenize(example):prompt = f"### 指令:\n{example['input']}\n\n### 回复:\n{example['output']}"tokens = tokenizer(prompt, truncation=True, padding="max_length", max_length=512)tokens["labels"] = tokens["input_ids"]return tokenstokenized_data = list(map(tokenize, train_data))training_args = TrainingArguments(output_dir="./sft_model", per_device_train_batch_size=1, num_train_epochs=3)
trainer = Trainer(model=model, args=training_args, train_dataset=tokenized_data)
trainer.train()

奖励模型训练(RM)

接下来,我们需要训练一个“奖励模型”来判断哪一段回复更好。它是 RLHF 的核心。

我们准备多组 A/B 选择数据,例如:

  • Prompt: “你怎么看待加班文化?”
  • A: “加班是奋斗精神的体现。”
  • B: “长期加班会损害身心健康。”

人类选择 B,我们用这个偏好训练一个二分类奖励模型。

# 简化版:奖励模型结构
from transformers import AutoModel, AutoTokenizer
import torch.nn as nnclass RewardModel(nn.Module):def __init__(self, base_model="meta-llama/Llama-2-7b-hf"):super().__init__()self.backbone = AutoModel.from_pretrained(base_model)self.value_head = nn.Linear(self.backbone.config.hidden_size, 1)def forward(self, input_ids, attention_mask):outputs = self.backbone(input_ids=input_ids, attention_mask=attention_mask)last_hidden = outputs.last_hidden_state[:, -1, :]return self.value_head(last_hidden)

奖励模型训练完成后,我们就能用它来为策略模型提供“偏好评分”。

策略优化(PPO / DPO)

这是整个对齐过程的“高能环节”:我们用奖励信号来“调教”模型。

PPO

PPO 是最经典的 RLHF 策略训练方法,但实现较复杂,需要一个“回放缓冲区”和 KL 约束。HuggingFace 的 trl 库帮我们封装好了:

from trl import PPOTrainer, PPOConfigppo_config = PPOConfig(model_name="sft_model", learning_rate=5e-6)
ppo_trainer = PPOTrainer(config=ppo_config, model=model, tokenizer=tokenizer, reward_model=reward_model)for prompt in prompts:response = ppo_trainer.model.generate(tokenizer(prompt, return_tensors="pt")["input_ids"])reward = reward_model(response)ppo_trainer.step([prompt], [response], [reward])
DPO(更轻量)

相比 PPO,DPO 不需要 RL 环节,直接最小化“好回复”优于“坏回复”的概率差。用法上更简单,训练速度也快。

# DPO 示例
from trl import DPOTrainerdpo_trainer = DPOTrainer(model=model,ref_model="sft_model",  # 作为对比基线beta=0.1,train_dataset=your_pairwise_data,
)dpo_trainer.train()

应用场景与代码示例

场景一:客服对话系统

用户发来复杂问题,模型需要不仅准确,还要语气温和。这时候用指令微调 + DPO 就能有效提升回答的“人性化”。

问:你们怎么还没发货?我要投诉!
答:非常抱歉给您带来了不便,我们已加急处理……

场景二:内容安全助手

我们希望模型能主动避免生成敏感或不当内容。通过奖励模型过滤,结合 DPO 优化,可以有效减少“毒性”回答。

场景三:医疗助手

医生问诊类对话,需要模型“谨慎回答”。我们可以使用专业领域的反馈数据,对回答策略进行 DPO 调整,增强模型的“责任感”。

QA 环节

Q: DPO 和 PPO 有啥区别?用哪个好?
A: PPO 是正统 RLHF 的核心方案,但训练成本高。DPO 是后起之秀,更适合中小团队快速部署,效果也不错,特别适合垂类场景。

Q: 对齐训练会不会让模型“失去创造力”?
A: 这是个平衡问题。如果奖励信号设计得太保守,会抹杀多样性。但合理设计偏好训练目标,可以在安全与创造之间找到平衡。

总结

对齐训练是让大模型“更接近人类思维”的关键一步。无论是 RLHF 还是 DPO,本质上都是在“教模型做人”:

  • 用 SFT 学习基础指令理解
  • 用 RM 学会什么是“好回复”
  • 用 PPO/DPO 优化行为策略

对于想在特定领域(医疗、法律、客服)构建可靠模型的开发者来说,这是一条必须掌握的路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85592.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85592.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85592.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO 原子操作面试题及参考答案

Go 的 sync/atomic 包和 sync.Mutex 的根本区别是什么? Go 语言中的 sync/atomic 包和 sync.Mutex 都用于处理并发编程中的同步问题,但它们的实现机制、应用场景和性能特性存在根本差异。理解这些差异对于编写高效、安全的并发代码至关重要。 sync/atomi…

MATLAB 山脊图绘制全解析:从数据生成到可视化进阶

一、引言:当数据分布拥有「层次感」—— 山脊图的魅力​ 在数据可视化的世界里,我们常常需要同时展示多个分布的形态差异。传统的重叠密度图虽然能呈现整体趋势,但当分布数量较多时,曲线交叠会让画面变得杂乱。这时候&#xff0c…

跨境电商每周资讯—6.16-6.20

1. Instagram 在亚太地区逐渐超越 TikTok 在整个亚太地区,Instagram用户数量正逐渐超过TikTok。预计2025年日本Instagram用户数量将增至4440万,印度今年用户数量将增长10%,领跑亚太。与之形成对比的是,TikTok在一些国家增长速度放…

计算机网络 网络层:数据平面(一)

前一节学习了运输层依赖于网络层的主机到主机的通信服务,提供各种形式的进程到进程的通信。了解这种主机到主机通信服务的真实情况,是什么使得它工作起来的。 在本章和下一章,将学习网络层实际是怎样实现主机到主机的通信服务。与运输层和应用…

Suna本地部署详细教程

一、安装基础环境 # 1、创建环境 conda create -n suna python3.11.7# 2、激活虚拟环境 conda activate suna# 3、安装jupyter和ipykernel pip install jupyter ipykernel# 4、将虚拟环境添加到jupyter # python -m ipykernel install --user --namemyenv --display-name"…

LeetCode 每日一题打卡|若谷的刷题日记 3day--最长连续序列

1.最长连续序列 题目: 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [1…

EfficientVLA:面向视觉-语言-动作模型无训练的加速与压缩

25年6月来自上海交大、哈工大、西安交大和电子科大(成都)的论文“EfficientVLA: Training-Free Acceleration and Compression for Vision-Language-Action Models”。 视觉-语言-动作 (VLA) 模型,特别是基于扩散的架构,展现出具…

wireshark抓包分析TCP数据包

1、直接从TCP的三次握手开始说起 三次握手就是客户与服务器建立连接的过程 客户向服务器发送SYN(SEQ=x)报文,然后就会进入SYN_SEND状态服务器收到SYN报文之后,回应一个SYN(SEQ=y)ACK(ACK=x+1)报文,然后就会进入SYN_RECV状态客户收到服务器的SYN报文,回应一个ACK(AC…

同等学力申硕-计算机统考-历年真题和备考经验

同等学力申请硕士学位考试是比较适合在职人员的提升学位方式,了解过的人应该都知道,现在社会的竞争压力越来越大,为了提高职业生存能力,提升学位在所难免。 一、已有计算机统考历年真题资料 报名过同等学力申硕计算机专业的朋友都…

OSI网络通信模型详解

OSI 模型就是把这整个过程拆解成了 7 个明确分工的步骤,每一层只负责自己那一摊事儿,这样整个系统才能顺畅运转,出了问题也容易找到“锅”在谁那。 核心比喻:寄快递 📦 想象你要把一份重要的礼物(你的数据…

C++ 检测文件大小和文件传输

检测文件的大小 你可以通过标准 C/C 的文件 API 很方便地获取文件的字节大小&#xff0c;以下是几种常用方法&#xff1a; ✅ 方法一&#xff1a;使用 stat() 函数&#xff08;推荐&#xff09; #include <sys/stat.h> #include <stdio.h>off_t get_file_size(co…

Ubuntu 中修改网卡 IP

在 Ubuntu 中修改网卡 IP 地址可以通过以下方法实现&#xff0c;具体取决于你使用的网络管理工具&#xff08;如 netplan、ifconfig/ip 命令或传统 interfaces 文件&#xff09;。以下是常见方法&#xff1a; 方法 1&#xff1a;使用 netplan&#xff08;Ubuntu 17.10 及更新版…

记录学习three.js 为什么 .glTF 是更适合 Web 的 3D 模型格式?——从 .OBJ 到 .glTF 的转变⑭

在上一篇中&#xff0c;我们介绍了如何在 Three.js 中加载 .OBJ 模型。如果你没看过&#xff0c;建议先阅读一下基础内容。然而你很快会发现&#xff0c;.OBJ 虽然入门简单&#xff0c;却并不是 Web3D 场景中的最佳格式。 .OBJ 是什么&#xff1f; .OBJ 是最早期的3D交换格式之…

H递归函数.go

前言&#xff1a;递归函数是一种强大而又充满魅力的编程技巧。它就像是一面神奇的镜子&#xff0c;函数在其中能够调用自身的倒影&#xff0c;从而以一种简洁而优雅的方式解决许多复杂的问题。 目录 一、递归函数是啥玩意儿 二、递归函数的优缺点 优点 缺点 三、递归函数…

软件功能测试的测试标准

一、软件功能测试行业标准概述 软件功能测试行业标准是规范软件测试流程、方法、工具及人员资质的准则&#xff0c;是确保软件产品的功能性、可靠性、易用性等质量特性符合用户需求。这些标准不仅为测试人员提供了明确的指导&#xff0c;也为软件产品的质量控制提供了有力保障。…

EchoEar(喵伴):乐鑫发布与火山引擎扣子联名 AI 智能体开发板

随着生成式人工智能技术的快速发展&#xff0c;大语言模型 (LLM) 正逐步成为推动智能设备升级的核心力量。乐鑫科技携手火山引擎扣子大模型团队&#xff0c;共同推出智能 AI 开发套件 —— EchoEar&#xff08;喵伴&#xff09;。该套件以端到端开发为核心理念&#xff0c;构建…

图像特征检测算法SIFT

SIFT&#xff08;Scale - Invariant Feature Transform&#xff0c;尺度不变特征变换&#xff09;是一种计算机视觉领域的特征提取算法&#xff0c;具有重要的地位和广泛的应用。 算法原理 构建高斯金字塔 &#xff1a; 为了实现多尺度检测&#xff0c;SIFT 算法会构建高斯金…

光纤通道收发器:市场洞察、技术演进与未来机遇

一、引言 在数字化浪潮席卷全球的当下&#xff0c;数据存储与传输的需求呈爆发式增长。光纤通道收发器作为高速、可靠数据存储网络&#xff08;如存储区域网络 SAN&#xff09;中的关键组件&#xff0c;发挥着至关重要的作用。它通过光纤实现服务器、存储设备和交换机之间的数…

candence17.4如何设置两个焊盘之间在TOP与BOTTOM可以存在两根线

为什么要走两根线&#xff1f; 为了过大电流&#xff0c;有时候就需要我们在TOP、BOTTOM两个面走线&#xff0c;同时开窗&#xff0c;然后通过加锡的方式增加过流能力&#xff1b; 当然由于两面都有导线&#xff0c;必然会存在过孔&#xff0c;而过孔的过流能力不仅与过孔孔径…

Dify:参数调节,让LLM从能用到好用的机制

前言 随着大语言模型(LLM)在文本生成、智能对话、技术问答等前沿领域的深度渗透&#xff0c;参数精细化调节已成为开发者驾驭 AI 能力的核心必修课。 本文将系统的解释温度(Temperature)、核采样(Top - P)、截断采样(Top - K)等关键参数的底层作用机制&#xff0c;结合多种场景…