LLM概念梳理(一):训练流程之PT、SFT和PO

news2024/9/21 22:42:26

一个LLM的成功问世,一般分为:预训练 PT+监督微调 SFT+偏好优化 PO

预训练(Pre-Training)是为了让模型学习通用知识,而监督微调(Supervised Fine-Tuning)是为了优化模型在特定任务上的表现。为了进一步地提升 LLMs 的对话能力、以及对于人类价值观的对齐程度,偏好优化(Preference Optimization)被引入到了模型微调过程中。

一、预训练 PT

PT 阶段,LLM首先在大量的无标签数据上进行训练(无监督学习),目的是让模型学习到语言的统计规律和一般知识,得到的预训练模型被称为基座模型。在这个过程中模型能够学习到词语的语义、句子的语法结构、以及文本的一般知识和上下文信息。

二、监督微调 SFT

传统微调最适合的场景是:我们希望“模型的回答逐个 token 都模仿提供的数据”,也就是逐字模仿。就像写作文,对范文进行模仿,措辞方式、语气词、标点符号的使用风格、排版风格等等都要去模仿。

这个学习过程导致了一些问题:

  1. 它对于预料的 token 级质量要求比较高。(无法让模型的学习过程知道“光学习它的语气就行了,排版格式不用学”)
  2. 需要足够多样性的数据,来确保模型学到的是我们期望它学到的相关性。(选择题学习到比率、或者问题题学习到长度)

通过传统微调训练的模型,在能力上实现阶跃。但模型缺少泛化能力,输出模式比较固定,遇到新的问题不能很好解决。并且,需要高质量的微调数据集

应用:当我们把行业数据构建成数据集,通过微调训练,就可以训练出一个行业大模型。它既补充了基础模型,对行业知识的缺乏,又让模型在回答问题时,更偏向于回复此行业的知识。(微调改变了模型的权重

三、偏好优化 PO

SFT 阶段,模型被训练以识别“想要的答案”,但未明确告知“不想要的答案”。为解决这一问题,可以通过收集用户反馈和日志数据,在对齐阶段告诉模型哪些答案是不可接受的。对齐阶段目的是进一步优化模型,使其更符合实际应用需求。基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)便是这类算法最早期的代表。

基于人类反馈的强化学习 RLHF

OpenAI使用RLHF最早就是为了解决以下问题:

  • 高质量的微调数据集制作成本高到无法接受,即使都让专家来人工撰写也做不到足够好。
  • 人并不擅长生成长文本,相对来说比较两个回答的成本更低,对标注人员的能力的要求也更低。
  • 当模型的平均能力超过标注人员的平均能力时,如何进行有效地标注。

标注问题从“产生一个完整的回答”变成了“比较一些回答的好坏”。

RLHF的过程是:输出几个结果,模型比较一下优劣,然后自己一步步调整,得到一个好结果。在这个过程中,模型对齐人类的认知,具有一定的区分能力,当遇到新的问题时,可以知道好的方向。

  1. 训练一个奖励模型,让这个奖励模型学习人类的偏好,让这个模型的回答,遵循“HHH”原则(helpfule、honest、harmless)
  2. 使用训练好的奖励模型,让大模型进行强化学习,即用奖励模型对大模型的生成结果进行评分。不断迭代,从而提升模型的整体效果。
  3. 其中,实现上述优化过程的最常用算法被称为近端策略优化(Proximal Policy Optimization,PPO)。

案例:
LLaMA 2 训练:先进行finetune,然后进行RLHF,以提高泛化性。

RLHF使用更贴合真实生成任务的目标函数,成为了获得强大LLMs的关键步骤,然后其存在以下问题:

  • 数据构造:为了得到 RM,针对每条指令采集多条(≥2)回复数据,再让人类依据自己的偏好进行质量排序;
  • 计算资源:为了模拟真实的生成场景,训练过程中需要实时地让LLMs生成回复,并用RM打分。同时,由于RLHF和PT、SFT之间存在较大的目标函数差异,需要一个冻结的参考模型与策略模型计算KL散度作为约束,抑制模型的参数偏移。需要3-4个LLMs同时存储在GPU中参与运算。

直接偏好优化 DPO

如果不能降低 RLHF 的开销,LLMs 在更广泛场景中的应用将受到限制。于是,直接偏好优化(Direct Preference Optimization,DPO)应运而生。DPO 融合了打分模型和策略模型的训练过程(将奖励模型训练和强化学习融合在同个阶段进行),因此只需要标注过偏好的数据、参考模型和策略模型,就可以使 LLMs 直接对齐人类的偏好,极大地减轻了训练时对计算资源的消耗。DPO由于训练过程相对简单,已成为对齐阶段的主流算法,代替RLHF。

DPO与RLHF比较

数据集格式:

  1. prompt:
    • 单轮:仅包含每轮对话的提问;
    • 多轮:包含前几轮对话的问答及最后一轮的提问;
  2. chosen:prompt字段对应的正偏好回答;
  3. rejected:prompt字段对应的负偏好回答。

四、总结

  • SFT、RLHF 和 DPO 都是先估计 LLMs 本身的偏好,再与人类的偏好进行对齐;
  • SFT 只通过 LLMs 生成的下一个单词进行估计,而 RLHF 和 DPO 通过 LLMs 生成的完整句子进行估计,显然后者的估计会更准确;
  • 虽然 RLHF 和 DPO 取得比 SFT 好的结果,但代价是高昂的数据构造和计算资源开销。

参考文献:
6000字长文告诉你:大模型「训练」与「微调」概念详解
带人工反馈的强化学习(rlhf)和微调(fine-tune)有什么区别?
SFT、RLHF、DPO、IFT —— LLM 微调的进化之路
什么是DPO训练

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

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

相关文章

TypeScript学习笔记1---认识ts与js的异同、ts的所有数据类型详解

前言:去年做过几个vue3js的项目,当时考虑到时间问题,js更加熟悉,学习成本低一点,所以只去了解了vue3。最近这段时间补了一下ts的知识点,现今终于有空来码文章了,做个学习总结,方便以…

360驱动大师 v2.0.0.2040 最新免费精简单文件版

360驱动大师是一款专注于驱动安装和更新的专业软件,它拥有庞大的驱动库,能够支持数以百万计的不同类型的驱动程序。 它的设计理念是简化驱动管理和更新的过程,让用户能够轻松地保持系统的最新状态,从而获得更好的性能和稳定性。无…

Linux高编-进程的概念(1)

目录 1.ps aux 2.top 3.kill -2 进程pid // fork函数 getpid拿自己的进程号 getppid拿父进程号 fork()&&fork()||fork() 父子进程的关系: 僵尸进程,孤儿进程 僵…

zookeeper源码分析之事务请求处理

一.参考 zookeeper启动和选举的源码分析参考之前的帖子. 二.源码 1.职责链模式. 每次经过的processor都是异步处理,加入当前processor的队列,然后新的线程从队列里面取出数据处理. PrepRequestProcessor 检查ACL权限,创建ChangeRecord. SyncRequest…

用Python更改Word文档文本的字体

更改文字字体是编辑和美化Word文档时的一项常见需求,使用合适的字体不仅可以提升文档的整体视觉效果,还能突显关键信息,使得内容更加突出。然而,手动更改每一个文字的字体既繁琐又费时。因此,掌握一种高效的方法来自动…

verilog当中仿真的时候赋值用=还是<=

【总结&#xff1a;<是所有数据同时变化&#xff0c;而是顺序执行。如果是左边数据的赋值都是不关联的&#xff0c;那么就可以用<&#xff0c;使所有赋值同时有效。如果有a和b都需要赋值&#xff0c;且b的值跟a有关的同时还需要一起变化&#xff0c;那么可以用】 一般情…

C++ UML 使用 doxygen 生成源码类图

一&#xff1a;安装 sudo apt install doxygensudo apt install doxygen-guisudo apt install graphviz graphviz-doc 二&#xff1a;使用 命令行输入 doxywizard&#xff0c;打开图形界面 参考&#xff1a; https://www.cnblogs.com/guohaoblog/p/15151353.html

探秘:哪些项目需要代理IP来助力?

网络爬虫&#xff1a;数据采集的秘密武器 网络爬虫是互联网世界中的“数据矿工”&#xff0c;它们在网络中不断爬行&#xff0c;采集各种有用的信息。然而&#xff0c;频繁的访问请求很容易引起目标网站的警觉&#xff0c;甚至被封禁。此时&#xff0c;代理IP就像是爬虫的“隐…

Springboot发邮件功能如何实现?详细步骤?

Springboot发邮件配置指南&#xff1f;如何集成Spring Mail发邮件&#xff1f; 无论是用户注册、密码重置还是重要通知的发送&#xff0c;邮件都是不可或缺的沟通方式。Springboot作为一个流行的Java开发框架&#xff0c;提供了简洁易用的方式来实现邮件功能。AokSend将详细探…

LLM的一些基础知识:参数和内存估计

介绍&#xff1a; 基于 Transformer 架构的大型语言模型 (LLM) 已变得越来越普遍。例如&#xff0c;Mistral AI 团队推出了Mistral 7B 模型。了解其推理、微调和训练的内存需求对于高效部署和利用至关重要。 总结&#xff1a; 推理内存估算&#xff1a;对于 70 亿参数模型 (…

安装docker 遇到异常Could not resolve host: mirrorlist.centos.org; 未知的错误

问题 安装docker 遇到异常 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was 14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误” 1、安装Docker依赖包 yum install …

机器学习第十二章-计算学习理论

目录 12.1基础知识 12.2 PAC学习 12.3有限假设空间 12.3.1可分情形 12.3.2不可分情形 12.4VC维 12.5 Rademacher复杂度 12.1基础知识 计算学习理论研究的是关于通过"计算"来进行"学习"的理论&#xff0c;即关于机器学习的理论基础&#xff0c;其目的…

数据分析实操案例分享:制造企业如何对订单数据进行BI分析?

提到数据分析&#xff0c;大家可能首先想到的是它在零售行业的应用&#xff0c;它能够助力商家实现精准营销&#xff0c;从而带来盈利。 事实上&#xff0c;数据分析的重要性已经扩展到制造业&#xff0c;它在该行业中的作用日益凸显。它能够帮助生产管理者迅速识别异常&#…

零基础也能看懂的五大网络安全技术,学网络安全真的可以很简单

网络安全技术是保护网络不受未经授权访问、破坏或盗取信息的重要手段。以下是五种零基础也能看懂的网络安全技术&#xff1a; 1.防火墙技术&#xff1a;防火墙是一种网络安全设备&#xff0c;用于监控和控制进入或离开网络的流量。它可以识别不安全的数据包&#xff0c;并阻止…

使用vs配置opencv环境(属性表方法)

opencv官网&#xff1a;https://opencv.org/releases/ 老手回忆&#xff08;新建属性表&#xff09; Step1: 安装VS&#xff0c;安装openCV Step2: 新建项目&#xff0c;新建项目属性表&#xff0c;debug|x64新建属性&#xff0c;命好名字 Step3: VC目录-包含目录中添加: 安装…

How can i wait for the actual reply of an openai-assistant? (Python OpenAI API)

题意&#xff1a;如何等待 OpenAI 助手的实际回复&#xff1f;&#xff08;Python OpenAI API&#xff09; 问题背景&#xff1a; I am interacting with the openai assistant API (python). so far, it works well. but sometimes the api returns the message i sent to th…

算法的学习笔记—包含 min 函数的栈(牛客JZ30)

&#x1f600;前言 在日常编程中&#xff0c;栈是一种常见的数据结构&#xff0c;具有后进先出的特点。它支持基本的操作如 push&#xff08;入栈&#xff09;、pop&#xff08;出栈&#xff09;和 top&#xff08;获取栈顶元素&#xff09;。然而&#xff0c;当需要在栈中快速…

linux容器基础-namespace-1(mnt)

mnt namespace mount namespace可隔离出一个具有独立挂载点信息的运行环境&#xff0c;内核知道如何去维护每个namespace的挂载点列表。 即每个namespace之间的挂载点列表是独立的&#xff0c;各自挂载互不影响。(用户通常使用mount命令来挂载普通文件系统&#xff0c;但实际…

JAVA单个商户多个门店点餐系统小程序源码

&#x1f525;单个商户&#xff0c;多店管理新纪元&#xff01;高效点餐系统大揭秘&#x1f37d;️ &#x1f680;【一店多管&#xff0c;轻松驾驭】&#x1f680; 你是否还在为多个门店的点餐管理手忙脚乱&#xff1f;&#x1f92f; 想象一下&#xff0c;从繁华都市的中心商…

一站解决多域名安全:通配符SSL证书的全面指南

随着企业在线业务的不断扩展&#xff0c;拥有多个子域名变得越来越常见。为了确保这些子域名的安全&#xff0c;并简化管理流程&#xff0c;通配符SSL证书成为了一个高效且经济的选择。本文旨在提供一份全面的指南&#xff0c;帮助您了解通配符SSL证书的重要性和如何正确地选择…