当前位置: 首页 > news >正文

AI大模型探索之路-训练篇20:大语言模型预训练-常见微调技术对比

系列篇章💥

AI大模型探索之路-训练篇1:大语言模型微调基础认知
AI大模型探索之路-训练篇2:大语言模型预训练基础认知
AI大模型探索之路-训练篇3:大语言模型全景解读
AI大模型探索之路-训练篇4:大语言模型训练数据集概览
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化
AI大模型探索之路-训练篇6:大语言模型预训练数据准备-预处理
AI大模型探索之路-训练篇7:大语言模型Transformer库之HuggingFace介绍
AI大模型探索之路-训练篇8:大语言模型Transformer库-预训练流程编码体验
AI大模型探索之路-训练篇9:大语言模型Transformer库-Pipeline组件实践
AI大模型探索之路-训练篇10:大语言模型Transformer库-Tokenizer组件实践
AI大模型探索之路-训练篇11:大语言模型Transformer库-Model组件实践
AI大模型探索之路-训练篇12:语言模型Transformer库-Datasets组件实践
AI大模型探索之路-训练篇13:大语言模型Transformer库-Evaluate组件实践
AI大模型探索之路-训练篇14:大语言模型Transformer库-Trainer组件实践
AI大模型探索之路-训练篇15:大语言模型预训练之全量参数微调
AI大模型探索之路-训练篇16:大语言模型预训练-微调技术之LoRA
AI大模型探索之路-训练篇17:大语言模型预训练-微调技术之QLoRA
AI大模型探索之路-训练篇18:大语言模型预训练-微调技术之Prompt Tuning
AI大模型探索之路-训练篇19:大语言模型预训练-微调技术之Prefix Tuning


目录

  • 系列篇章💥
  • 前言
  • 一、各大语言模型对比
    • 1、因果语言模型
    • 2、条件生成模型
    • 3、序列分类模型
    • 4、文生图模型
    • 5、图片分类模型
    • 6、图生文模型
  • 二、LoRA技术对比
    • 1)优点
    • 2)缺点
  • 三、P-Tuning V2技术对比
    • 1)优点
    • 2)缺点
  • 总结


前言

随着人工智能的迅猛发展,自然语言处理(NLP)在近年来取得了显著的进展。大型语言模型(LLMs)在多种NLP任务中展现了卓越的性能,这得益于它们在大规模文本数据集上进行的预训练和随后的微调过程。这些模型不仅能够理解和生成自然语言,还能在特定任务上通过微调达到令人印象深刻的精度和鲁棒性。本文将深入探讨几种重要的预训练模型,并细致比较目前广泛使用的两种先进微调技术——LoRA和P-Tuning V2。我们将从专业角度分析各自的优势和局限性,并提供一个全景视角,以助开发人员和实践者在选择适合其特定需求的微调策略时做出明智的决策。

一、各大语言模型对比

开发人员可以通过Github和Hugging Face平台访问和了解各种由PEFT支持的预训练语言模型。

通过Github平台,开发者可以访问到PEFT的源代码,深入了解其内部工作原理,并参与到模型优化和改进的过程中。此外,Hugging
Face提供的用户友好界面,不仅使得获取由PEFT支持的预训练语言模型变得异常简单,还提供了丰富的文档和教程,帮助开发者快速上手并应用这些模型。

在这里插入图片描述

在Hugging Face平台上,开发者可以轻松地浏览各种由PEFT支持的预训练模型,包括它们在不同的自然语言理解任务上的表现。这些模型覆盖了从通用语言理解到特定领域任务的广泛应用,并且通常包含了详细的模型规格、预训练数据来源以及优化策略的描述。

1、因果语言模型

在这里插入图片描述
Causal Language Modeling(因果语言模型)主要的任务是根据当前的上下文预测下一个单词。它是一种生成模型,能够生成类似人类的文本。因果语言模型在处理序列数据时,会考虑前面的上下文信息,但是不会看到未来的信息。

例如,给定一句话的前半部分 "The quick brown fox jumps over ...", 因果语言模型的任务是预测接下来可能出现的词,比如 "the"。这个预测是基于给定上下文的条件概率分布来进行的。

这种模型在很多应用中都非常有用,比如机器翻译、语音识别和文本生成等。

2、条件生成模型

在这里插入图片描述
Conditional Generation(条件生成)的模型,主要是在给定一定条件或上下文的情况下,生成特定的输出。在自然语言处理中,条件生成模型常常用来生成符合特定条件的文本。

以**机器翻译**为例,给定一个源语言(例如英语)的句子,条件生成模型的任务就是生成目标语言(例如中文)的句子。这里的“条件” 就是源语言的句子,而生成的目标就是目标语言的句子。 又如**文本摘要**任务,给定一个长篇文章,条件生成模型的任务就是生成该文章的摘要。这里的“条件”就是原始的长篇文章,生成的目标就是简短的摘要。

条件生成模型的一个关键特性是它能够根据不同的输入条件生成不同的输出,因此它在许多需要个性化输出的场景中有广泛的应用,如推荐系统、个性化新闻生成等。

3、序列分类模型

在这里插入图片描述
Sequence Classification(序列分类)模型的主要任务是对整个序列进行分类。在这个上下文中,序列可以是一系列的单词(文本数据)、声音信号、时间序列数据等。模型的目标是将输入的序列映射到预定义的类别标签上。

一个典型的例子是情感分析任务。在这个任务中,给定一个文本序列(如一句话或一段评论),序列分类模型会判断这段文本的情感倾向,比如将其分类为“正面”、“负面”或“中立”。这里的序列就是文本中的单词序列,而分类的目标是情感倾向的类别。

其他序列分类的例子还包括:
1)垃圾邮件检测:将邮件序列分类为“垃圾邮件”或“非垃圾邮件”。
2)文本主题分类:将新闻文章、科学论文或其他文档分类到预设的主题类别,
如“体育”、“政治”、“科技”等。
3)蛋白质功能分类:将蛋白质序列根据其生物学功能分类到不同的功能类别
中。

4、文生图模型

在这里插入图片描述

文本到图像(Text-to-Image)模型能够将文字描述转化为相应的图像。在这类模型中,一个预训练好的语言模型被用来理解文本内容,并提取关键信息。然后,这些信息被传递至一个图像生成网络,该网络负责根据解析出的文本内容合成图像。这种跨模态的能力使得文生图模型在创意设计、游戏开发、在线教育以及提供视觉障碍人士的辅助技术等领域展现出巨大潜力。

5、图片分类模型

在这里插入图片描述

图像分类(Image Classification)模型负责将图像归入预定的类别。通常,这涉及到一个复杂的卷积神经网络(CNN),它能够从图像中提取特征,并将这些特征映射到一个或多个类别标签上。图像分类技术已广泛应用于面部识别、物体识别、医学影像分析以及自动驾驶车辆中的环境感知等领域。

6、图生文模型

在这里插入图片描述

图像到文本(Image-to-Text)模型旨在描述或解释给定的图像内容。逆向于文生图模型,图生文模型首先通过一个图像识别网络识别和解析图像中的关键元素和场景语境,接着用语言模型生成描述这些元素的文本。这种技术在视觉受损辅助工具、社交媒体图像的自动化标注以及在法律和医疗领域的文档编录中有着至关重要的应用。

二、LoRA技术对比

在这里插入图片描述

1)优点

LoRA(Low-Rank Adaptation)技术以其对大型语言模型进行高效微调的能力而受到关注。以下是LoRA的几个专业层面的优点:

  • 参数化效率:LoRA通过引入低秩分解的矩阵,将原始的密集参数矩阵分解为两个低秩矩阵的乘积。这种方法大幅减少了微调过程中所需优化的参数数量,从而降低了模型的内存占用和训练成本,同时加速了训练过程。这对于硬件资源有限的场景尤其有利。

  • 推理时间优化:LoRA允许在不牺牲推理速度的前提下进行微调。它通过将训练时引入的低秩因子与冻结的原始参数矩阵结合,避免了额外的推理延迟,这对于需要实时响应的应用至关重要。

  • 通用性和兼容性:LoRA的设计使其能够与多种预训练模型以及各类任务兼容,这意味着它可以应用于不同的NLP场景而无需重大改动。此外,LoRA可以与其他微调技术叠加使用,进一步提升模型性能。

2)缺点

尽管LoRA提供了一种高效的微调方法,但它也有一些局限性:

  • 超参数选择:确定最优的矩阵秩是一个挑战,因为它与模型的参数规模、微调数据集的大小和任务类型紧密相关。选择较小的秩可能会限制模型的容量,导致次优的微调效果;而较大的秩可能会增加计算开销并导致过拟合。这通常需要通过实验来平衡和确定。

  • 稳定性与鲁棒性:虽然LoRA可以提高模型的适应性,但在某些情况下,低秩结构可能影响模型的稳定性和泛化能力。因此,在关键任务中采用LoRA时,需要仔细评估其对模型鲁棒性的影响。

  • 调优复杂度:为了获得最佳性能,开发人员可能需要针对特定任务进行多次实验,以找到最佳的低秩分解策略和超参数设置,这可能增加开发和维护的复杂性。

三、P-Tuning V2技术对比

在这里插入图片描述

1)优点

P-Tuning V2是一种先进的微调技术,它在P-Tuning的基础上进行了改进,具有以下优点:

  • 性能提升相比于P-Tuning和Prefix-Tuning,P-Tuning V2通过更精细的Prompt设计和调整,实现了更稳定的性能提升。它通过增加Prompt的可学习参数,使模型能够更好地适应微调任务,从而提高了模型的准确性和鲁棒性。

  • 灵活性:P-Tuning V2的设计允许在不同任务中灵活地调整Prompt的长度和结构,这为各种规模的模型和任务提供了更多的定制选项。

  • 通用性:虽然P-Tuning V2仍然需要考虑不同任务的特点来设计Prompt,但其改进的结构使得它能够适用于更广泛的任务类型,提高了技术的普适性。

2)缺点

尽管P-Tuning V2在多个方面展现了优势,但它仍然面临一些挑战:

  • 任务适配:为了达到最佳效果,P-Tuning V2需要针对每个新任务设计合适的Prompt,这可能涉及大量的实验和调整。这一过程对于某些快速变化或特定的任务来说可能是时间和资源上的负担。

  • 规模调整:对于不同的模型规模和任务类型,需要精心设计Prompt的长度和结构。这不仅增加了微调的复杂性,也可能影响到模型的扩展性和可迁移性。

  • 资源消耗:尽管P-Tuning V2在参数效率上有所提高,但对于大规模模型和数据集,Prompt调整和优化过程仍然可能需要大量的计算资源和时间。

总结

在本文中,我们深入探讨了大型语言模型的预训练和微调技术,特别是LoRA和P-Tuning V2两种先进的参数高效微调方法。通过对比分析,我们发现这些技术在减少计算和存储成本的同时,能够保持或接近全参数微调的性能。此外,我们还提供了实际应用案例,展示了这些技术在具体任务中的应用和效果。

微调技术的选择应基于具体任务的需求、可用资源以及性能目标。LoRA和P-Tuning V2各有优势,适用于不同的场景和需求。随着NLP领域的不断发展,未来可能会出现更多创新的微调技术,为开发者提供更多的选择和可能性。同时,我们也应关注技术的跨领域应用和跨模态学习,以进一步扩展大型语言模型的应用范围和能力。

在这里插入图片描述

🎯🔖更多专栏系列文章:AIGC-AI大模型探索之路

如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我,让我们携手同行AI的探索之旅,一起开启智能时代的大门!

相关文章:

AI大模型探索之路-训练篇20:大语言模型预训练-常见微调技术对比

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…...

现代 c++ 一:c++11 ~ c++23 新特性汇总

所谓现代 c,指的是从 c11 开始的 c,从 c11 开始,加入一些比较现代的语言特性和改进了的库实现,使得用 c 开发少了很多心智负担,程序也更加健壮,“看起来像一门新语言”。 从 c11 开始,每 3 年发…...

【c++】全面理解C++多态:虚函数表深度剖析与实践应用

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,通过本篇文章,来详细理解多态的内容 目录 1.多态的定义及实现1.1多态的构成条件1.2虚函数的重写1.3 C11 override 和 final1.4重载、覆盖(重写)、隐藏…...

分享四种免费获取SSL的方式

SSL证书目前需要部署安装的网站很多,主要还是基于国内目前对证书的需求度在不断的升高,网站多了、服务器多了之后。网络安全问题就成为了大家不得不面对的一个重要的问题了。SSL证书的作用有很多,这里就不一一详述了,本期作品主要…...

2024.5.14晚训题解

非线性结构没懂的同学多去看看课程回放。 A题Overall Winner 题解 很基础的题目&#xff0c;输入字符串&#xff0c;用计数器去统计一下就好了。 因为赢的次数一样的时候优先判断前面的那个人赢&#xff0c;所以说两个人赢的次数相同的时候我们不必 去记录胜者。 #include<…...

jQuery的选择器与自带函数详解

在前端开发中&#xff0c;jQuery是一个广泛使用的JavaScript库&#xff0c;它极大地简化了HTML文档遍历、事件处理、动画以及AJAX交互等操作。本文将通过一个示例页面&#xff0c;详细介绍jQuery的选择器和一些常用的自带函数。 示例代码优化 首先&#xff0c;我们来优化和完…...

Next.js与SSR:构建高性能服务器渲染应用

1. 创建项目 通过create-next-app脚手架创建一个新的Next.js项目&#xff1a; npx create-next-app my-app cd my-app2. 自动SSR 在Next.js中&#xff0c;每个.js或.jsx文件的组件都会被自动处理为SSR页面。例如&#xff0c;创建一个pages/index.js文件&#xff1a; // pag…...

什么是MVC?什么是SpringMVC?什么是三层架构?

文章目录 应用分层什么是MVC?什么是 SpringMVC&#xff1f;三层架构三层架构和MVC的关系 应用分层 在讲解什么是MVC之前&#xff0c;先来理解一下什么是应用分层。 应用分层是一种软件开发设计思想&#xff0c;将应用程序划分成N个层次&#xff0c;每个层次都分别负责自己的…...

基于springboot+vue+Mysql的在线答疑系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

ssl证书免费申请指南

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、购买证书二、创建证书三、 验证证书等待出现如下页面&#xff0c;说明申请成功&#xff1a; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6b6c1dd11d4c467687318552da7cdbb2.png) 总结 前言 今天为大…...

Java构造方法详解

在Java方法内部定义一个局部变量时&#xff0c;必须要初始化&#xff0c;否则就会编译失败&#xff0c;如下&#xff1a; 要让上述代码通过编译&#xff0c;只需在使用a之前给a赋一个初始值即可 如果是对象&#xff1a;下面用一个日期类演示 我们没有给年月日赋值&#xff0c;…...

Spring WebFlux:响应式编程

在软件开发领域&#xff0c;随着互联网应用的规模和复杂性不断增加&#xff0c;传统的编程模型逐渐暴露出一些局限性&#xff0c;尤其是在面对高并发、大规模数据流处理等场景时。为了应对这些挑战&#xff0c;响应式编程&#xff08;Reactive Programming&#xff09;应运而生…...

uniapp、web网页跨站数据交互及通讯

来来来&#xff0c;说说你的创作灵感&#xff01;这就跟吃饭睡觉一样&#xff0c;饿了就找吃的&#xff0c;渴了就倒水张口灌。 最近一个多月实在是忙的没再更新日志&#xff0c;好多粉丝私信说之前的创作于他们而言非常有用&#xff01;受益菲浅&#xff0c;这里非常感谢粉丝…...

2024-05-10 Ubuntu上面使用libyuv,用于转换、缩放、旋转和其他操作YUV图像数据,测试实例使用I420ToRGB24

一、简介&#xff1a;libyuv 最初是由Google开发的&#xff0c;主要是为了支持WebRTC项目中的视频处理需求。用于处理YUV格式图像数据的开源库。它提供了一系列的函数&#xff0c;用于转换、缩放、旋转和其他操作YUV图像数据。 二、执行下面的命令下载和安装libyuv。 git clo…...

怎么给视频加水印?2招轻松搞定

在数字媒体时代&#xff0c;视频水印作为一种有效的版权保护手段&#xff0c;被广泛应用于各种场景。给视频添加水印不仅可以防止内容被恶意盗用&#xff0c;还能增加视频的辨识度&#xff0c;提升品牌形象。本文将为您介绍2种简单易行的方法&#xff0c;教您怎么给视频加水印&…...

SpringBootWeb 篇-深入了解请求响应(服务端接收不同类型的请求参数的方式)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 请求响应概述 1.1 简单参数 1.2 实体参数 2.3 数组集合参数 2.4 日期参数 2.5 json 参数 2.6 路径参数 3.0 完整代码 1.0 请求响应概述 当客户端发送不同的请求参…...

实验十 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 完成以下页面设计。 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; Wxml <view class"container"> <view class"header"> <view class"logo"…...

Python图形复刻——绘制母亲节花束

各位小伙伴&#xff0c;好久不见&#xff0c;今天学习用Python绘制花束。 有一种爱&#xff0c;不求回报&#xff0c;有一种情&#xff0c;无私奉献&#xff0c;这就是母爱。祝天下妈妈节日快乐&#xff0c;幸福永远&#xff01; 图形展示&#xff1a; 代码展示&#xff1a; …...

【算法优选】 动态规划之子数组、子串系列——壹

文章目录 &#x1f38b;前言&#x1f38b;最大子数组和&#x1f6a9;题目描述&#x1f6a9;算法思路&#x1f6a9;代码实现 &#x1f334;环形子数组的最大和&#x1f6a9;题目描述&#x1f6a9;算法思路&#xff1a;&#x1f6a9;代码实现 &#x1f332;乘积最大子数组&#x…...

PXE+Kickstart无人值守安装安装Centos7.9

文章目录 一、什么是PXE1、简介2、工作模式3、工作流程 二、什么是Kickstart1、简介2、触发方式 三、无人值守安装系统工作流程四、实验部署1、环境准备2、服务端&#xff1a;关闭防火墙和selinux3、添加一张仅主机的网卡4、配置仅主机的网卡4.1、修改网络连接名4.2、配IP地址4…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...