【NLP】36. 从指令微调到人类偏好:构建更有用的大语言模型

从指令微调到人类偏好:构建更有用的大语言模型

大语言模型(LLMs)已经成为现代自然语言处理系统的核心,但单纯依赖传统语言建模目标,往往难以满足实际应用的“人类意图”。从 Instruction Tuning(指令微调)出发,到 Preference Optimization(偏好优化)和 Prompt 工程,本博客将系统梳理这些技术的背景、方法与挑战,帮助你构建更实用、更安全的语言模型。


一、语言建模目标的局限

预训练语言模型通常优化“下一个词预测”目标,但这个目标并不等同于执行实际任务。

  • 输入:“请总结以下文本。”
  • 输出:“这本书是……” —— 并没有完成任务,仅仅模仿语气

这说明:语言建模学的是“如何说话”,而不是“如何完成任务”


二、通用微调的瓶颈

在实际应用中,研究者尝试通过领域微调(Fine-tuning)让模型学会完成任务。但这种方式存在多个问题:

  • 模型学到形式模仿,而非执行逻辑
  • 标签和任务之间缺乏清晰边界
  • 输出“看起来像”答案,但并不实用

这催生了更结构化的训练方式:指令微调(Instruction Tuning)


三、什么是 Instruction Tuning?

Instruction Tuning 是一种使用"输入-任务描述 + 输出-示例结果"对进行训练的方法。目标是让模型:

  • 理解人类自然语言中的指令
  • 输出贴合任务目标的内容

示例:

  • 输入:请判断情感倾向:“演技一般但画面精美。”
  • 输出:正面

相比传统分类器,这种方式更贴近真实对话与任务场景。


四、代表模型:FLAN-T5

由 Google 提出的 FLAN-T5(Chung et al., 2022)是 Instruction Tuning 的代表性成果。

其优势包括:

  • 覆盖多种任务类型(问答、摘要、翻译等)
  • 多语言训练,增强泛化能力
  • Zero-shot 与 Few-shot 表现优异

五、数据是关键:任务对的构建

Instruction Tuning 成败的核心在于数据:

优质任务对胜过庞杂数据量。常用数据来源包括:

  • InstructGPT 人工标注任务
  • FLAN 公开任务集合
  • Super-Natural Instructions 跨领域任务集

此外,还有一种趋势是使用大模型自己生成任务数据,如 Stanford Alpaca 项目。


六、合成任务数据的潜力与风险

通过大模型生成指令-回应对,可以快速扩充训练集:

  • 人工构造任务:“设计20个多样任务”
  • GPT 生成回答
  • 用于微调较小模型

这类方法低成本、高效率,但存在风险:

  • 输出质量不一致
  • 存在语义重复或模糊任务

七、训练任务量:真的越多越好吗?

Zhou 等人提出 LIMA(Less is More for Alignment)方法,发现:

几百条高质量任务对,足以训练出优秀模型。

相比海量低质量任务,更小但更精的指令数据可获得更强泛化能力。

困惑度Perplexity不能完全代表生成质量Quality,后者更早饱和,说明过度训练未必带来更好输出。

此外,该研究还通过多组实验可视化展示:

  • 筛选后的 Stack Exchange 数据质量远高于 wikiHow 与原始数据;
  • 增加训练样本数量(从 2K 到 32K)对生成质量影响极小;
  • 即使 PPL(困惑度)持续下降,生成质量在一定步数后饱和甚至下降。

八、面对模糊任务:唯一答案不再适用

现实任务中,很多任务没有唯一答案:

  • “写封感谢信”
  • “概括一段评论”

这意味着评估方式不能再依赖 token-level 准确率,而应:

  • 使用语义匹配指标(如 BERTScore)
  • 多参考答案评估(multi-reference)
  • 或采用人类偏好打分机制

九、从偏好学习人类意图:RLHF 登场

当任务无法标准化时,我们转向人类偏好:

“哪个回答更好?”

这就是 RLHF(Reinforcement Learning from Human Feedback)的核心:

  1. 指令微调
  2. 构建奖励模型(Reward Model)
  3. 用强化学习优化模型输出

目标不是“给出标准答案”,而是:让模型学会更被人类喜欢的回答方式


十、奖励模型训练流程

人类评审比较模型输出 A 与 B,判断谁更好:

  • 训练一个小型 LLM 学习这种偏好
  • 成为“奖励模型”
  • 用作 RL 优化的评分参考

这种方式已经广泛用于 ChatGPT、Claude 等系统中。


RLHF 三阶段训练流程

第一阶段:Instruction Tuning(指令微调)

🌟 目标:让模型初步学会“听懂指令”和“执行任务”

  1. 抽取 prompt,例如:Explain the moon landing to a 6 year old
  2. 人工示范回答:Some people went to the moon…
  3. 用监督学习微调模型(SFT)

第二阶段:Reward Model 构建(奖励模型)

🌟 目标:学会判断“哪个输出更好”

  1. 给定指令生成多个回答(A, B, C, D)
  2. 人类排序偏好,例如 D > C > A = B
  3. 训练小型 LLM 学习排序分值(Reward Predictor)

第三阶段:使用奖励模型进行强化学习(PPO)

🌟 目标:强化高偏好输出,抑制差回答

  1. 模型生成新回答
  2. 奖励模型打分
  3. 使用 PPO 更新模型策略

📝 注:RLHF 中的 PPO 与传统强化学习不同,不涉及环境交互,而是单步奖励优化。


数据从哪里来?——OpenAI 的三类数据采集方式

1. Plain(自由构造)

标注者自主编写任务与回答,强调任务多样性。

2. Few-shot 模式

标注者为每条任务设计多个示例输入-输出对。

3. User-based(用户用例驱动)

提取 API 用户真实需求,请标注者设计对应 prompt。


十一、Direct Preference Optimization(DPO)

DPO 是一种更简单的偏好优化方式:

  • 无需训练奖励模型
  • 直接通过“好 vs 差”的样本对优化模型
  • 适合高效迭代

其核心思想是最大化:优质响应被采样的概率 > 劣质响应被采样的概率

具体形式如下:

  • 输入:一组包含正负偏好样本的对比样本((x, y+), (x, y-))
  • 损失函数优化目标为对比概率比 log σ(f(y+) - f(y−)),提升正例被选概率。

该方法在多个任务中展现出与 RLHF 相当甚至更优的性能,同时大大简化了训练流程。


十二、对齐是否可靠?模型仍可能脆弱

Lee 等人(2024)发现,RLHF 虽提升了人类偏好得分,但对齐结果具有脆弱性:

  • 对输入微小变动敏感
  • 面对未见指令时表现不稳
  • 模型容易被攻击性 prompt 引导走偏

这意味着,RLHF 更多是在表面行为上控制模型,而非改变其内在知识结构与推理方式。


十三、有毒表示潜藏在模型内部

尽管 RLHF 能使输出更安全,但并不代表模型内部已移除这些内容:

  • 模型隐藏层仍保留“毒性向量”——与敏感内容(如攻击性语言、偏见)相关的方向
  • 在特定上下文或攻击性 prompt 下仍可能被激活

研究者尝试通过“表示空间干预”抑制这类方向,但如何彻底净化仍属开放问题。


十四、Prompt 优化:模型质量的决定性变量

优化 Prompt 是提升输出质量的重要手段:

  1. 向量化 Prompt(Prefix Tuning):训练前缀向量,无需微调主模型参数
  2. 使用 RL 搜索 Prompt:在大空间中通过奖励信号搜索最优指令形式
  3. 系统级 Prompt 编排:通过 LangChain 等框架构建多步任务流程

十五、LangChain 与 Prompt 系统化

LangChain 让模型以链式方式完成复杂任务,例如:

  • 步骤1:获取产品信息
  • 步骤2:命名公司
  • 步骤3:撰写口号

LangChain 还支持与检索模块、工具 API 等连接,构建 agent 系统。


十六、ChainForge:Prompt 批量实验工具

ChainForge 支持:

  • 快速测试 Prompt 变体
  • 自动记录输出结果
  • 分析一致性与偏好性

研究者可通过该平台系统比较不同 prompt 的有效性与稳定性,提升 Prompt 工程科学性。


十七、总结:微调之外,我们学到了什么?

✅ Instruction Tuning:强化任务意识
✅ RLHF:融入人类偏好
✅ DPO:简化偏好优化流程
✅ Prompt 工程:提升交互体验与系统控制力

⚠️ 持续挑战:对齐脆弱性、毒性表示残留、Prompt 敏感性与泛化能力不足

🎯 未来方向:

  • 更稳健的价值对齐方法
  • 多模态偏好优化(图文、语音)
  • 自动化 Prompt 构建与验证体系
  • 更高层次的自主推理与意图理解

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

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

相关文章

基于Transformers与深度学习的微博评论情感分析及AI自动回复系统

前言 这个项目存在cookie没有自动更新问题,后续可能会发出来解决教程,还有微博网页版的话最多看到300条评论,而且回复别人信息的话最多回复15条就要休息5分钟左右才能评论 1. 项目概述 本项目实现了一个微博评论自动化处理系统&#xff0c…

详解 Zephyr RTOS:架构、功能与开发指南

目录 Zephyr RTOS 的核心特性 1. 轻量级和可扩展性 2. 实时性能 3. 多平台支持 4. 安全性 5. 社区和生态系统 Zephyr 的架构 1. 内核 2. 驱动模型 3. 网络栈 4. 文件系统 开发环境和工具链 安装和配置 开发流程 1. 应用程序开发 2. 调试和测试 3. 部署 实际应…

人工智能重塑医疗健康:从辅助诊断到个性化治疗的全方位变革

人工智能正在以前所未有的速度改变着医疗健康领域,从影像诊断到药物研发,从医院管理到远程医疗,AI 技术已渗透到医疗服务的各个环节。本文将深入探讨人工智能如何赋能医疗健康产业,分析其在医学影像、临床决策、药物研发、个性化医…

Linux笔记---内核态与用户态

用户态(User Mode) 权限级别:较低,限制应用程序直接访问硬件或关键系统资源。 适用场景:普通应用程序的运行环境。 限制:无法执行特权指令(如操作I/O端口、修改内存管理单元配置等&#xff09…

Spring 代理与 Redis 分布式锁冲突:一次锁释放异常的分析与解决

Spring 代理与 Redis 分布式锁冲突:一次锁释放异常的分析与解决 Spring 代理与 Redis 分布式锁冲突:一次锁释放异常的分析与解决1. 问题现象与初步分析2 . 原因探究:代理机制对分布式锁生命周期的干扰3. 问题复现伪代码4. 解决方案&#xff1…

SQL:多列匹配(Multiple-column Matching)

目录 基础概念 应用场景详解 1. 多列等值匹配 2. 多列 IN 匹配(集合匹配) 3. 多列 JOIN 匹配(复合键连接) 4. 多列匹配 子查询 5. 多列匹配 EXISTS 6. 多列匹配 UNION(组合数据源) 7. 多列匹配…

基于DeepSeek的智能客服系统实践与创新

引言:AI大模型重塑客户服务新范式 近年来,AI大模型技术的突破性进展正在深刻改变传统客户服务模式。作为国内领先的AI企业,DeepSeek凭借其创新的算法架构(如MoE混合专家模型、动态学习率调度器)和极致的成本效益(仅为同类模型成本的1/20),在自然语言理解、情感分析、多…

SGLang和vllm比有什么优势?

环境: SGLang vllm 问题描述: SGLang和vllm比有什么优势? 解决方案: SGLang和vLLM都是在大语言模型(LLM)推理和部署领域的开源项目或框架,它们各自有不同的设计目标和优势。下面我综合目前…

三、Hive DDL数据库操作

在 Apache Hive 中,数据库 (Database),有时也被称为模式 (Schema),是组织和管理 表及其他对象的基本命名空间单元。熟练掌握数据库层面的数据定义语言 (DDL) 操作,是构建清晰、有序的 Hive 数据仓库的第一步。本篇笔记将详细梳理 …

Redis(2):Redis + Lua为什么可以实现原子性

Redis 作为一款高性能的键值对存储数据库,与 Lua 脚本相结合,为实现原子性操作提供了强大的解决方案,本文将深入探讨 Redis Lua 实现原子性的相关知识 原子性概念的厘清 在探讨 Redis Lua 的原子性之前,我们需要明确原子性的概念…

科普:极简的AI乱战江湖

本文无图。 大模型 ‌2022年2月,‌文生图应用的鼻祖Midjourney上线。 ‌2022年8月,‌开源版的Midjourney,也就是Stable Diffusion上线。 2022年11月30日‌,OpenAI正式发布ChatGPT-3.5。 此后,不断有【大模型】面世&…

CSS- 4.5 css + div 布局 简易网易云音乐 官网布置实例

本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。 HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看! 点…

【滑动窗口】LeetCode 1004题解 | 最大连续1的个数 Ⅲ

最大连续1的个数 Ⅲ 一、题目链接二、题目三、题目解析四、算法原理解法一:暴力枚举 zero计数器解法二:滑动窗口 五、编写代码六、时空复杂度 一、题目链接 最大连续1的个数 Ⅲ 二、题目 三、题目解析 注意题目中说的是最多k次,在一个数组…

PyTorch音频处理技术及应用研究:从特征提取到相似度分析

文章目录 音频处理技术及应用音频处理技术音视频摘要技术音频识别及应用 梅尔频率倒谱系数音频特征尔频率倒谱系数简介及参数提取过程音频处理快速傅里叶变换(FFT)能量谱处理离散余弦转换 练习案例:音频建模加载音频数据源波形变换的类型绘制波形频谱图波形Mu-Law 编…

鸿蒙OSUniApp 实现的语音输入与语音识别功能#三方框架 #Uniapp

UniApp 实现的语音输入与语音识别功能 最近在开发跨平台应用时,客户要求添加语音输入功能以提升用户体验。经过一番调研和实践,我成功在UniApp项目中实现了语音输入与识别功能,现将过程和方法分享出来,希望对有类似需求的开发者有…

2025年卫星遥感行业最新发展趋势深度分析

一、国内发展趋势:政策引领与技术突破双轮驱动 (一)政策体系持续完善,顶层设计深化行业发展 国家级战略与标准体系构建 中国政府将卫星遥感产业纳入“十四五”规划核心战略,明确构建“通导遥”一体化空间基础设施。20…

SIP协议栈--osip源码梳理

文章目录 osiposip主体结构体code main函数 状态机转化结构体code状态转换 sip事务结构体code osip_dialog结构体code 创建并发送200 OK响应 osip_message结构体code osip_eventcode 打印接收到的SIP消息 osip OSIP(Open Source Implementation of SIP)…

Linux之Yum源与Nginx服务篇

1.Yum源知识理论总结概括 Yum源概述 Yum 源 即软件仓库的标识,里面承载着软件包集合 Yum源组成 包含模块 【OS】、【everything】、【EPOL】、【debuginfo】、【source】、【update-source】 【os】:简称operator system 它内部包含操作系统的核心组件&#x…

从单体架构到微服务:架构演进之路

引言:当“大货车”遇上“集装箱运输” 在软件开发领域,单体架构曾像一辆载满货物的大货车,将所有功能打包在一个应用中。但随着业务复杂度飙升,这辆“大货车”逐渐陷入泥潭:启动慢如蜗牛、故障波及全局、升级如履薄冰……

AM32电调学习解读九:ESC上电启动关闭全流程波形分析

这是第九篇,前面的文章把各个模块的实现都介绍了一轮,本章是从运行的角度结合波形图,把整个流程走一遍。 先看下一运行的配置,我把一些配置关闭了,这样跑起来会好分析一些,不同配置跑起来效果会有差异。使用…