大模型系列课程学习-大预言模型微调方法介绍

1.大语言模型相关基本概念综述

语言模型指对语言进行建模,其起源于语音识别(speech recognition),输入一段音频数据,语音识别系统通常会生成多个句子作为候选,究竟哪个句子更合理?
学术上表达为:描述一段自然语言的概率或给定上文时下一个词出现的概率
在这里插入图片描述
根据之前的介绍,语言模型经过四个阶段的发展,详情请参考上一节学习分享博客
毫无疑问,大语言模型是一种由包含数百亿以上参数的深度神经网络构建的语言模型,通常使用自监督学习方法通过大量无标注文
本进行训练。大模型发展的时间线可以参考下图
在这里插入图片描述

1.1 大语言模型的涌现能力

大语言模型的涌现能力(Emergent Capability)指的是随着模型规模的增加,模型展现出超出预期的能力和表现,这种能力使得大语言模型成为能够解决负责任务和推动人工智能进步的重要工具。涌现一般体现在如下几个方面:

  • 学习能力提升:大语言模型具备更大的空间参数和表征能力,能够学习到更复杂、抽象的模式和特征,自然语言理解能力更强,能够捕捉数据的细微差异
  • 语言理解和生成能力:在自然语言任务重,大模型能够理解更丰富的语义和语法知识,并具备更好的语言理解和生成能力
  • 创新和探索:大语言模型能力不仅体现在已知任务重,而且在一些创新探索领域仍然可以发挥自己的创造性

1.2 大模型的推理能力

大模型的推理能力指的是逻辑推理、推断和推理问题解决方面的能力,一般体现在如下5个方面:

  • 逻辑推理:具备一定的逻辑推理能力,掌握逻辑推理的规则和方法
  • 推断和推理问题解决:可以通过已有知识的推理和推断,填补不完整的信息,解决模糊和宽泛的问题。
  • 关联和关系理解:大模型具备强大的关联和关系理解能力,能够识别多个要素直接的关系
  • 多步推理:大模型能够完成多步推理,在推理过程汇总进行多个步骤的演绎和推断;
  • 常识推理:因大模型学习过海量知识,具备一定的常识推理能力

2.大语言模型构建流程

大模型的训练阶段主要包含四个阶段:预训练阶段、有监督微调阶段、奖励模型阶段和强化学习阶段,这四个学习阶段都需要不同规模的数据集合以及不同的算法,而且需要不同的机器资源和相关策略。
在这里插入图片描述
接下来介绍不同阶段的细节及特点

2.1预训练阶段

预训练阶段:需要利用海量的训练数据,包括互联网网页、维基百科、书籍、GitHub、论文、问答网站等,构建包含数千亿甚至数万亿单词的具有多样性的内容。该阶段可以理解为使模型能够理解和生成各种不同类型的文本,相当于广泛学习,具备通识知识。

2.2 有监督微调(指令微调)阶段

有监督学习阶段:为指令微调,利用少量高质量数据集合,包含用户输入的提示词(Prompt)和对应的理想输出结果。用户输入包括问题、闲聊对话、任务指令等多种形式和任务。该阶段可以理解为使用人工标注的数据集来训练模型,使得大模型具备特定问题生成回复是更加准确和有针对性。

2.3 奖励建模阶段

奖励建模阶段:目标是构建一个文本质量对比模型,对于同一个提示词,SFT模型给出的多个不同输出结果的质量进行排序。奖励模型(RM 模型)可以通过二分类模型,对输入的两个结果之间的优劣进行判断。该阶段可以理解为用户区分模型生成内容质量的高低,引导模型向好的方向靠齐。

2.4 强化学习阶段

强化学习阶段:根据数十万用户给出的提示词,利用在前一阶段训练的 RM 模型,给出 SFT 模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到更好的效果。该阶段和奖励模型一起,不断的优化大模型自己的生成策略,是的大模型能够生成更加流畅、准确的回复内容。

由上述的四个阶段,也衍生出不同的使用者的四个阶段。一般情况下对于纯粹的使用者来说,可以使用prompt快速使用入门;对于应用开发人员,可以使用langchain等工具快速开发出一个智能体,从而完成特定流程的实现;对于算法人员来说,额外关注大模型的落地应用,这块往往需要掌握大模型微调技术;对于深度算法使用人员来说,一般更关注于底座大模型的训练,从而提成底座能力。对于大模型感兴趣的人员,可以从prompt指令入手,开始用起来,可以参考prompt指令入门。本次主要分享微调技术,其他的技术阶段待后续更新。
在这里插入图片描述

3.大语言模型参数微调方法

在了解微调方法之前,我们先了解下为什么需要微调大模型,而不是直接预训练模型?首先是预训练模型的成本比较高,其次提示工程存在一定的限制,不能够完全解决下游问题,此外对于下游任务,特别是特定领域数据,大模型在预训练时,并没有见到过,所以这部分场景往往需要微调从而实现下游任务。
大模型的微调一般包含 全量微调方式微调其他
全量微调方式:全量微调(Full Fine-Tune,FFT)
其他微调方式

  • 高效微调方式(Parameter-Efficient Fine-Tune,PEFT)
  • 有监督微调(Supervice Fine-tune,SFT)
  • 基于人类反馈的强化学习(RLHF)
  • 基于AI反馈的强化学习(RLAIF)
    在这里插入图片描述
    一般情况下,对于个人来说,PEFT为当下主流的应用方式,如上图所示,PEFT高效微调方法可以按照如下结果方面划分:
    (1)围绕Token做文章:语言模型不变,额外添加token
  • Prompt tuning
  • Prefix tuning
  • P-tuning
    (2)特定场景任务:训练“本质”的低秩模型
  • Lora
  • QLora
  • AdaLora
    (3)少量数据类等
  • IA3
  • UniPELT
    为了方便进一步理解上述微调方法,接下来使用图例进行解释。对于输入x 和输入y,模型需要做的就是建立输出y与x之间的映射关系,即y = f(x) = Wx
    在这里插入图片描述
    对于上述的图示中,W表示模型参数,X表示输入,Y表示输出,上述的高效微调方法可以分为改变输入X(如prompt-tuning),额外替代W参数(如lora)以及对于W进行参数存储量化。

3.1 BitFit

3.2 Prefix Tuning

在这里插入图片描述

3.3 Prompt Tuning

在这里插入图片描述

3.4 P-Tuning & P-Tuning V2

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/017a48f7979e4223be8d9f9b35cd5b9f.png
在这里插入图片描述

3.6 Adapter Tuning

3.7 Lora

在这里插入图片描述

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

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

相关文章

驶向成功:如何选择适合国际拓展的完美CRM

一、出海企业应该怎么选择CRM? 出海企业在选择CRM系统时,需要考虑行业特性以及在对外业务过程中可能遇到的问题。接触了一些出海企业客户,总结了以下出海企业在选择CRM时的诉求。 1、合法合规风险 出海企业的业务遍布不同国家地区&#xff…

sso-oauth2单点登录功能笔记

场景:最近公司2个系统需要做单点登录,A系统作为服务器,认证方式是sso-oauth2方式,B系统作为客户端,token方式是ta-token,先来张sso-oauth2认证方式的图 前置准备工作 第一步:要确认谁是服务提…

AI+PS快捷键大全!

hello,我是小索奇, 你会用Photoshop(PS)或者(Illustrator)AI吗?相信很多人都会接触到吧,但有一部分人很少用快捷键,仅凭借鼠标点击来实现功能,殊不知快捷键能…

如何添加所有未跟踪文件到暂存区?

文章目录 如何将所有未跟踪文件添加到Git暂存区?步骤与示例代码1. 打开命令行或终端2. 列出所有未跟踪的文件3. 添加所有未跟踪文件到暂存区4. 验证暂存区状态 如何将所有未跟踪文件添加到Git暂存区? 在版本控制系统Git中,当我们首次创建新文…

2024HW ---->内网横向移动

在蓝队的面试过程中,如果你会内网渗透的话,那是肯定的一个加分选项!!! 那么从今天开始,我们就来讲一下内网的横向移动!!! 目录 1.域内任意用户枚举 2.Password-Sprayi…

Java基础之JVM对象内存分配机制简介

一 对象内存分配 1.1 运行时数据区域 1.2 常见java应用启动JVM参数: -Xss:每个线程的栈大小(单位kb)-Xms:堆的初始大小,默认物理内存的1/64,示例:-Xms:4g -Xms:10m-Xmx:堆的最大可用大小,默认物…

STM32单片机C语言模块化编程实战:LED控制详解与示例

一、开发环境 硬件:正点原子探索者 V3 STM32F407 开发板 单片机:STM32F407ZGT6 Keil版本:5.32 STM32CubeMX版本:6.9.2 STM32Cube MCU Packges版本:STM32F4 V1.27.1 之前介绍了很多关于点灯的方法,比如…

数电期末复习(一)数制和码制

数制和码制 1.1 概述1.2 几种常用的数制1.2.1 十进制(Decimal)1.2.2 二进制(Binary)1.2.3 二-十进制之间的转换1.2.4 十六进制和八进制1.2.5 任意进制之间的转换 1.3 二进制代码1.3.1 二-十进制码(BCD Binary Coded Decimal)1.3.2…

Go诊断工具

Go 提供了一些出色的诊断工具,可帮助我们深入了解应用程序的执行情况。 1. 分析工具 分析工具可观测应用程序执行的各种指标。它使我们能够解决性能问题、检测争用、定位内存泄漏等。这些指标可以通过以下几个配置文件收集: CPU--确定应用程序将时间花在了哪里Goroutine--报…

SpringBoot集成Sleuth

引入Maven依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId></dependency> 配置yml文件 bootstrap.yml文件增加如下配置 注&#xff1a;这个配置不是必须要&#…

【结构型模式】装饰器模式

​一、装饰器模式概述 装饰器模式&#xff08;装饰者模式&#xff09;定义&#xff1a;装饰器模式动态地将责任附加到对象上。若要拓展功能&#xff0c;装饰者提供了比继承更有弹性地替代方案。&#xff08;对象结构型模型&#xff09;通俗点来说&#xff1a;动态的给一个对象增…

LCR 039

. - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/0ynMMM/ 给定非负整数数组 heights &#xff0c;数组中的数字用来表示…