关于大模型训练微调的几个概念

  • 什么是训练、预训练、微调?
  • Post-pretrain、SFT、RLHF 是什么?有什么区别?
  • RAG 与微调有什么区别?
  • 什么场景下需要微调?
  • 微调需要多少数据? 成本如何?

1、训练

总结来说,预训练是为了让模型学习通用知识,Post-pretraining 是为了让模型更好地适应特定领域,微调是为了优化模型在特定任务上的表现。SFT 是微调的一种,侧重于有监督的学习,而 RLHF 是一种结合了人类反馈的微调方法,旨在提高模型在复杂任务上的性能。

1.1 预训练(Pre-training)

预训练是训练过程的一个特殊阶段,通常发生在模型进行特定任务训练之前。预训练的目的是让模型在一个广泛的数据集上学习到一些通用的特征或知识,这些特征或知识可以帮助模型在后续的特定任务上表现得更好。预训练的步骤包括:

  1. 选择一个大型的、通用的数据集:这个数据集不需要和模型最终的任务完全相关,但它应该足够大和多样化,能够让模型学习到广泛的特征和模式。
  2. 训练模型:在这个大型数据集上训练模型,使其学习到通用的知识或特征。
  3. 保存预训练模型:完成预训练后,保存模型的参数。这些参数可以作为后续特定任务训练的起点。
  4. 预训练模型通常使用自监督学习,这意味着模型试图从输入数据本身预测某些未知的或被遮蔽的部分,例如,预测句子中缺失的单词。
  5. 预训练的结果是一个通用的模型,它对语言有一个基本的理解,但还没有针对任何特定任务进行优化。

预训练的好处是显著减少了模型在特定任务上训练所需的数据量和时间,同时提高了模型在这些任务上的性能。这种方法在自然语言处理(NLP)、计算机视觉等领域尤其流行和有效。

1.2 训练

训练是指使用数据集对机器学习模型或深度学习网络进行学习的过程。在这个过程中,模型通过不断调整其内部参数(例如,神经网络中的权重和偏置)来最小化预测结果和实际结果之间的差异。这个过程通常涉及到以下几个步骤:

  1. 前向传播:模型根据当前参数对输入数据进行预测。
  2. 损失计算:计算模型预测结果和实际结果之间的差异(损失)。
  3. 反向传播:根据损失函数计算对模型参数的梯度(即损失对每个参数的导数)。
  4. 参数更新:使用梯度下降或其他优化算法调整模型参数,以减少损失。

训练的目标是使模型能够准确地从输入数据中学习到输出结果,从而在未见过的数据上也能做出准确的预测或决策。

1.3 Post-pretraining(后期预训练)

Post-pretraining(后期预训练)是一种在模型的初始预训练和最终微调之间进行的训练方法。这种方法通常用于进一步适应模型以处理特定类型的数据或任务。以下是详细介绍,参考了之前对SFT和RLHF的描述方式:

  1. 后期预训练(Post-pretraining):
    • Post-pretraining是在通用预训练模型的基础上,对模型进行额外训练的过程,通常是为了使模型更好地适应特定的领域或任务。
    • 这个过程使用的数据集通常比预训练阶段的数据集更专注于某个领域或任务,但比微调阶段使用的数据集更大、更广泛。
    • 训练方法可以是监督学习,也可以是自监督学习,具体取决于可用数据的类型和训练目标。
    • Post-pretraining的目标是在不过度专化到某个特定任务的同时,提高模型对特定领域的理解和表现。
  1. 训练过程:
    • 在Post-pretraining阶段,模型通常会在一个包含大量领域特定数据的数据集上进行训练。
    • 这个阶段的训练可以包括多种任务,如语言建模、文本分类、实体识别等,这些任务都是为了提升模型在特定领域的表现。
    • 训练过程中,模型的参数会根据领域特定数据集进行调整,以便更好地捕捉和理解领域内的语言模式和知识。
  1. 优势与目标:
    • Post-pretraining允许模型在保持通用性的同时,增强对特定领域的理解,这有助于模型在后续的微调阶段更快速地适应特定任务。
    • 与 SFT 相比,Post-pretraining在微调之前提供了一个中间步骤,有助于模型更平滑地过渡到特定任务上。
    • 与 RLHF 相比,Post-pretraining不依赖于复杂的奖励机制或人类反馈,而是通过大量的领域特定数据来提升模型性能。

总结来说,Post-pretraining是一个介于预训练和微调之间的训练阶段,它使用大量的领域特定数据来进一步调整模型,使其更好地理解特定领域的语言和任务。这个阶段不需要复杂的奖励机制,而是通过传统的监督或自监督学习方法来实现模型性能的提升。

2 微调 (Fine-tuning)

  • 在这个阶段,预训练模型(可能经过了Post-pretraining)被进一步训练,以优化它在一个特定任务上的表现。
  • 微调通常在一个相对较小的、特定任务的数据集上进行,这个数据集包含了明确的标签,模型通过监督学习来进行优化。
  • 微调的目的是调整模型的参数,使其能够在特定任务上做出准确的预测。

2.1 SFT (Supervised Fine-Tuning) 监督式微调

SFT是微调的一种形式,强调在有监督的环境下进行。

    • SFT是一种简单的微调方法,它使用带有正确答案的数据集来继续训练一个预训练的模型。
    • 这种方法依赖于大量的标注数据,即每个输入都有一个预先定义的正确输出。
    • 微调的目的是使模型更好地适应特定的任务或领域【垂直领域】,比如特定类型的语言理解或生成任务。
    • SFT通常不涉及复杂的策略或奖励函数,只是简单地最小化预测输出和真实输出之间的差异。

2.2 RLHF (Reinforcement Learning from Human Feedback)通过人类反馈的强化学习

    • RLHF是一种更复杂的训练方法,它结合了监督学习和强化学习
    • 在RLHF中,模型首先通过监督学习进行预训练,然后通过人类提供的反馈来进行强化学习。
    • 人类反馈可以是对模型输出的评分,或者是在模型输出之间做出选择的偏好。
    • 强化学习部分涉及到定义一个奖励函数,该函数根据人类反馈来调整模型的行为,以优化长期的奖励。
    • RLHF的目标是训练出一个在没有明确标签的复杂任务中表现良好的模型,这些任务可能需要更细致的判断和调整。

总的来说,SFT更侧重于直接从标注数据中学习,而RLHF则试图通过人类的反馈来引导模型学习更复杂和更细粒度的行为。RLHF通常被认为是一种更接近人类学习方式的方法,因为它不仅仅依赖于标签数据,还依赖于人类对模型输出的评价和偏好。

学习更多关于 AI 大模型全栈知识👇

此处为语雀内容卡片,点击链接查看:🚦【必读】50多万字「AI全栈」知识库 · 语雀

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

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

相关文章

深入解析YOLOv2

深入解析YOLOv2 引言 目标检测是计算机视觉中的一个核心问题,它旨在识别图像中所有感兴趣的目标,并给出它们的类别和位置。近年来,随着深度学习技术的发展,目标检测领域取得了巨大的进步。YOLO(You Only Look Once&a…

基于OSAL 实现UART、LED、ADC等基础示例 4

1 UART 实验目的 串口在我们开发单片机项目是很重要的,可以观察我们的代码运行情况,本节的目的就 是实现串口双工收发。 虽然说 osal 相关的代码已经跟硬件关系不大了,但是我们还是来贴出相关的硬件原理图贴出来。 1.1 初始化 osal_init_s…

交换式网络捕获网络流量的方法

交换式网络捕获网络流量的方法 参考资料: https://blog.csdn.net/weixin_44143678/article/details/107559329 # 一.端口镜像 端口镜像,又称为“端口监视”或“端口抄送”,是一种网络管理技术,旨在将网络设备上的特定端口的流…

PyTorch Conv2d 前向传递中发生了什么?

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Servlet对象的生命周期

1.什么是Servlet的生命周期? Servlet对象什么时候被创建,神魔时候被销毁。 Servlet对象创建了几个? Servlet对象的生命周期表示:一个 Servlet对象从出生在最后死亡,整个过程是怎样的。 Servlet对象由随来维护? Servlet对象的…

[Java、Android面试]_19_单例模式(高频问题)

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注收…

设计模式:解释器模式

定义 解释器模式(Interpreter Pattern)是一种行为型设计模式,它给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。简单来说,它主要用于某些特定…

Springboot的日常操作技巧

文章目录 1、自定义横幅2、容器刷新后触发方法自定义3、容器启动后触发方法自定义**CommandLineRunner**ApplicationRunner 不定时增加 参考文章 1、自定义横幅 简单就一点你需要把banner.text放到classpath 路径下 ,默认它会找叫做banner的文件,各种格式…

spring的bean创建流程源码解析

文章目录 IOC 和 DIBeanFactoryApplicationContext实现的接口1、BeanFactory接口2、MessageSource 国际化接口3、ResourcePatternResolver,资源解析接口4、EnvironmentCapable接口,用于获取环境变量,配置信息5、ApplicationEventPublisher 事…

使用扩展卡尔曼滤波器进行包裹测量的状态估计

此示例说明如何使用扩展卡尔曼滤波器算法对涉及圆形包裹角度测量的 3D 跟踪进行非线性状态估计。对于目标跟踪,传感器通常采用球形框架来报告物体的方位角、距离和仰角位置。该组的角度测量值在一定范围内报告。例如,报告的方位角范围为- 180∘ 到180∘或…

Leetcode55LeetCode45

题目 55. 跳跃游戏 思路 一看跳跃,自然想到动态规划。去看了题解发现可以将该问题进行转化,记录每个下标能达到的最远距离,要是这个最远距离超过了数组长度则说明能够到达终点。真的很巧妙!但是最开始自己写,想的是用…

UE5 GAS开发P34 游戏效果理论

GameplayEffects Attributes(属性)和Gameplay Tags(游戏标签)分别代表游戏中实体的特性和标识。 Attributes(属性):Attributes是用来表示游戏中实体的特性或属性的值,例如生命值、…

【网络通信】TCP三次握手、四次挥手

TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP/IP协议族中,TCP协议负责在两个网络节点之间建立可靠的连接,并保证数据包的顺序传输和数据的完整性。 1.TCP三次握手 TCP三次握手(Thr…

【工具】录屏软件Captura安装使用及ffmpeg下载配置

开启技术视频创作,录屏软件林林总总,适合的、习惯的最好。 录屏软件Captura的使用及ffmpeg下载配置 1.Captura下载、安装2.FFmpeg下载、配置3.Captura屏幕录制试用、录制视频效果 1.Captura下载、安装 Captura主要是一个免费开源的录屏软件&#xff0c…

系统架构设计精华知识

数据流风格:适合于分阶段做数据处理,交互性差,包括:批处理序列、管理过滤器。调用/返回风格:一般系统都要用到,包括:主程序/子程序,面向对象,层次结构(分层越…

20240330-1-词嵌入模型w2v+tf-idf

Word2Vector 1.什么是词嵌入模型? 把词映射为实数域向量的技术也叫词嵌⼊ 2.介绍一下Word2Vec 谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际是一种浅层的神经网络模型,它有两种网络结构,分别是连续词袋&#xff…

54位大咖演讲精华! 中国生成式AI大会圆满收官,TOP50企业榜单揭晓

54位大咖演讲精华! 中国生成式AI大会圆满收官,TOP50企业榜单揭晓© 由 红板报 提供 智东西4月19日报道,为期两天的2024中国生成式AI大会,今日在京圆满收官。 54位产学研投嘉宾代表全程干货爆棚,报名咨询人数逾52…

操作符不存在:sde.st_geometry ^ !sde.st_geometry建议 SQL函 数st_intersects在内联inlining期间

操作符不存在:sde.st_geometry ^ !sde.st_geometry建议 SQL函 数st_intersects在内联inlining期间 问题:最近在使用SQL图形处理函数处理图形时,莫名奇妙报如下错误,甚是费解 于是开始四处"寻医问药" 1、nav…

G1、CMS垃圾回收期专题

共同点 非阻塞 使用三色标记法 初始标记、并发标记、重新标记、并发清理 (初始标记、重新标记需要stop world) CMS垃圾回收器 缺点 浮动垃圾 有垃圾碎片 关注停顿时间,使用了效率最高的标记清除算法 G1垃圾回收器 缺点 需要配置高&…

MySQL表级锁——技术深度+1

引言 本文是对MySQL表级锁的学习,MySQL一直停留在会用的阶段,需要弄清楚锁和事务的原理并DEBUG查看。 PS:本文涉及到的表结构均可从https://github.com/WeiXiao-Hyy/blog中获取,欢迎Star! MySQL表级锁 MySQL中表级锁主要有表锁…