3. ⼤语⾔模型深度学习背景知识

1. LLM⼤语⾔模型⼀般训练过程

Step 1.预训练阶段
Step 2.微调阶段
  1. ⼤模型⾸先在⼤量的⽆标签数据上进⾏训练,预训练的最终⽬的是让模型学习到语⾔的统计规律和⼀般知识。在这个过程中模型能够学习到词语的语义、句⼦的语法结构、以及⽂本的⼀般知识和上下⽂信息。需要注意的是,预训练本质上是⼀个⽆监督学习过程;

    得到预训练模型(Pretrained Model),也被称为基座模型(Base Model),模型具备通⽤的预测能⼒。如GLM-130B模型、OpenAI的A、B、C、D四⼤模型,都是基座模型;

  2. 预训练好的模型然后在特定任务的数据上进⾏进⼀步的训练。这个过程通常涉及对模型的权重进⾏微⼩的调整,以使其更好地适应特定的任务;

    得到最终能⼒各异的模型,例如gpt code系列、gpt text系列、ChatGLM-6B等模型;

2. 关于大模型微调

2.1 什么是⼤模型微调?

感性理解:⼤模型微调指的是“喂”给模型更多信息,对模型的特定功能进⾏“调教”,即通过输⼊特定领域的数据集,让其学习这个领域的知识,从⽽让⼤模型能够更好的完成特定领域的NLP任务,例如情感分析、命名实体识别、⽂本分类、对话聊天等;

2.2 为什么需要微调?

  • 核⼼原因:需要“赋予”⼤模型更加定制化的功能,例如结合本地知识库进⾏检索、围绕特定领域问题进⾏问答等;
  • 例如,VisualGLM是通⽤多模态⼤模型,但应⽤于医学影像判别领域,则需要代⼊医学影像领域的数据集来进⾏⼤模型微调,从⽽使得模型能够更好的围绕医学影像图⽚进⾏识别;
  • 就像机器学习模型的超参数优化,只有调整了超参数,才能让模型更佳适⽤于当前的数据集;
  • 同时,⼤模型是可以多次进⾏微调,每次微调都是⼀次能⼒的调整,即我们可以在现有的、已经具备某些特定能⼒的⼤模型基础上进⼀步进⾏微调;

3. 深度学习基础概念

3.1 预训练模型的核⼼模型特性:⾃回归与⽣成式

⾃回归概念,⼤模型的预训练过程是采⽤了⼀种名为⾃回归(Autoregressive)的⽅法,⾃回归模型是⼀种序列模型,它在预测下⼀个输出时,会将之前的所有输出作为输⼊,然后根据统计规律、结合已经输⼊的样本,预测下个位置各单词出现的概率,然后输出概率最⼤的单词,类似于完形填空;
在这里插入图片描述
⽣成式概念:与之类似的还有⼀个名为⽣成式模型的概念,也就是GPT中的G(Generative),所谓⽣成式模型的预测过程和⾃回归模型类似,都是根据统计规律预测下个单词的概率,所不同的是,⽣成式模型可以根据之前的样本的概率分布⽣成下⼀个词,⽣成式模型预测时会存在⼀定的随机性

  • 不过⾃回归和⽣成式模型并不冲突,例如对于GPT来说,就是⼀个⾃回归⽣成式模型;
  • ⼀个⾃回归⽣成式模型在进⾏预测的时候,会⾸先根据⾃回归模型,在参考到⽬前为⽌已经⽣成的词的情况下确定下⼀个词的概率分布,然后再根据⽣成式的⽅式来根据这个分布⽣成下⼀个词;
  • 从最终的表现上来看,GPT这类⾃回归⽣成式模型在完成预训练之后,就获得了所谓的“Zero-Shot”或“Few-Shot”学习。即使没有针对新任务的训练数据,预训练模型也可以在新任务上有⼀定的表现;

3.2 ⾃回归模型预测过程的极简示例

在这里插入图片描述

  • ⼤模型能够创建语意连贯的句⼦,但其本身并不理解句⼦的含义;
  • 正是因为GPT的⽣成性的特性,所以很多时候会“编造”⼀些事实;
  • 预训练的过程实际上就是“⼤⼒出奇迹”的过程,模型参数越多、输⼊的数据越多,就越能够“读书百遍、其义⾃现

3.3 双向⾃回归与⾃回归

主要的区别就在于⾃回归模型只看前⽂,⽽双向⾃回归模型会同时考虑前⽂和后⽂。

  • ⾃回归预训练:在这种⽅法中,模型在预测下⼀个词时,只会考虑已经看过的词(即前⽂)。例如,如果你正在阅读这个句⼦:“我喜欢吃…”,⾃回归模型会根据“我喜欢吃”来预测下⼀个词。这种⽅式类似于我们⼈类阅读⽂本的⽅式,我们通常是从左到右,⼀次读⼀个词,然后根据已读的内容预测下⼀个词。GPT系列模型就是使⽤⾃回归预训练的;
  • 双向⾃回归预训练:在这种⽅法中,模型在预测某个词时,会同时考虑该词的前⽂和后⽂。例如,如果你正在阅读这个句⼦:“我喜欢吃…苹果”,即使"苹果"这个词是被预测的⽬标,双向⾃回归模型仍会考虑“我喜欢吃”(前⽂)和“苹果”(后⽂)来预测这个词。这种⽅式类似于你同时读到了整个句⼦,然后再去理解每个词的含义。BERT和GLM模型就是采⽤的双向⾃回归进⾏预训练;

3.4 ⽣成式模型与判别模型

很⻓⼀段时间,⽣成模型效果⼀直不如判别模型,直⾄“⼤模型”涌现能⼒出现

  • ⽣成式模型:判别式模型直接学习输⼊到输出的映射,判别模型试图找到输⼊和输出之间的直接关系,⽽不是试图理解输⼊数据或输出数据的整体分布,因此通常在⼩规模数据和模型中能得到更好的性能。此外,判别式模型的训练过程通常⽐⽣成式模型更加稳定和直接;
  • 判别类模型:试图学习数据的整体分布,这通常需要更⼤规模的模型和数据。在⼩规模模型中,学习这种复杂的分布可能会⾮常困难。因此,在深度学习早期,⽣成式模型的应⽤确实相对有限。然⽽,随着计算能⼒的提升和⼤规模数据集的出现,⽣成式模型的潜⼒逐渐得到展现;

⼀个经过预训练的⼤语⾔模型,就具备“⼀定程度的”通⽤能⼒,⽽只有经过微调,才能够让模型具备解决某项具体任务的能⼒

4. 大模型微调

4.1 微调算法基本背景介绍

  • 微调并不是⼤模型领域独有的概念,⽽是伴随着深度学习技术发展,⾃然诞⽣的⼀个技术分⽀,旨在能够有针对性的调整深度学习模型的参数(或者模型结构),从⽽能够使得其更佳⾼效的执⾏某些特定任务,⽽不⽤重复训练模型;
  • 伴随着⼤模型技术的蓬勃发展,微调技术⼀跃成为⼤模型⼯程师必须要掌握的核⼼技术。并且,伴随着⼤模型技术的蓬勃发展,越来越多的微调技术也在不断涌现;

4.2 微调算法核⼼概念介绍

  • 微调数据:不同于⼤模型预训练过程可以代⼊⽆标签样本,深度学习模型微调过程需要代⼊有标签的样本来进⾏训练,微调的本质是⼀个有监督学习过程;
  • 微调的本质:相⽐海量数据在超⼤规模模型上进⾏预训练,微调只需要⼀部分有标签数据、并对模型的部分参数进⾏修改即可使得模型获得某种特殊能⼒;因此,从所需数据量和算⼒消耗来看,相⽐于训练微调的⻔槛和成本都要低很多;
  • 例如:对于⼀个经过预训练的⼤模型,如果我们代⼊诸多标有“垃圾邮件”和“⾮垃圾邮件”的标签⽂本进⾏训练,则可训练其具备垃圾邮件分类这⼀能⼒;
  • 从模型本身⻆度⽽⾔:微调阶段相当于是进⼀步进⾏训练,该过程会修改模型参数,并最终使模型“记住”了这些额外信息;让⼤模型永久记住信息的唯⼀⽅法就是修改参数;
  • 有监督微调:supervised fine-tuning,简称SFT;
  • 数据标注:⾼质量的有标签数据集在微调过程中必不可少, 数据标注⼯作则是⽤于创建这些有标签的数据集;伴随着⼤模型发展,⼈们也在尝试使⽤⼤模型来完成很多数据标注⼯作;

4.3 提示⼯程(prompt)

提示⼯程也能让模型暂时记住⼀些信息

  • 除了微调外,提示⼯程也能通过让⼤模型“暂时记住”某些信息,从⽽影响或优化模型输出结果;
  • 从算法原理层⾯来说,当⼀个模型接收到⼀个输⼊时,它会在内部创建⼀个表示这个输⼊的数字向量,这被称为模型的”隐藏状态"。然后,模型使⽤这个隐藏状态来⽣成⼀个回答。模型的隐藏状态是基于其接收到的所有输⼊⽣成的,因此它包含了模型当前所"知道"的所有信息。这也是为什么模型的输出可能会受到输⼊的所有部分(包括上下⽂)的影响。
  • 不过,⼤模型的隐藏状态是有接受信息的上限的,当超过这个上限,模型就会“遗忘”最开始的信息。这也就是为什么ChatGPT在进⾏对话的时候会有Token上限。也正是因为存在上限,提示⼯程在让模型“记住”信息⽅⾯,作⽤有限;

4.4 ⼤模型时代AI应⽤开发的新范式

  • NLP“⼩模型”时代开发流程:⼀个(类)场景训练⼀个模型。在传统的⾃然语⾔处理(NLP)中,通常会针对每个具体任务(如情感分析、命名实体识别、⽂本分类等)训练⼀个专⻔的模型。这些模型通常需要⼤量的标注数据,并且通常很难泛化到不同的任务或
    不同类型的数据;
  • 通⽤⼤模型时代:⼀个通⽤的⼤模型能够在很多领域完成Zero-Shot。伴随着⼤模型的诞⽣,这些经过海量数据预训练的⼤模型已经能够在预训练阶段学习到了丰富的语⾔知识,包括语法、词汇、⼀般常识和⼀些任务相关的模式。因此,这些模型在许多通⽤的⾃然语⾔处理(NLP)任务上,即使没有接受过特定任务的训练,也能够达到很好的效果
  • ⼤模型时代的开发流程:由于通⽤⼤模型在很多通⽤NLP任务上都有⾮常好的表现,因此针对某项特定的任务,我们只需要选择⼀个⼤模型,然后带⼊特定领域的专业数据集对其进⾏微调,即可⾮常⾼效的完成对应任务;
    一个任务单独训练一个模型
    选择一个大模型围绕具体任务进行微调

如何进行微调后续待更

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

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

相关文章

QML用ListView实现带section的GridView

QML自带的GridView只能定义delegate,没有section,类似手机相册带时间分组标签的样式就没法做。最简单的方式就是组合ListViewGridView,或者ListViewFlow,但是嵌套View时,子级View一般是完全展开的,只显示该…

Mybatis中的sql-xml延迟加载机制

Mybatis中的sql-xml延迟加载机制 hi,我是阿昌,今天记录一下关于Mybatis中的sql-xml延迟加载机制 一、前言 首先mybatis技术本身就不多介绍,说延迟加载机制之前,那要先知道2个概念: 主查询对象关联对象 假设咱们现…

OpenCV 笔记(20):霍夫圆检测

1. 霍夫圆变换 霍夫圆变换(Hough Circle Transform)是一种数字图像处理中的特征提取技术,用于在图像中检测圆形。它将二维图像空间中一个圆转换为该圆半径、圆心横纵坐标所确定的三维参数空间中一个点的过程。因此,圆周上任意三点所确定的圆&#xff0c…

ElasticSearch查询语句用法

查询用法包括:match、match_phrase、multi_match、query_string、term 1.match 1.1 不同字段权重 如果需要为不同字段设置不同权重,可以考虑使用bool查询的should子句来组合多个match查询,并为每个match查询设置不同的权重 {"query&…

二叉树的详解

二叉树 【本节目标】 掌握树的基本概念掌握二叉树概念及特性掌握二叉树的基本操作完成二叉树相关的面试题练习 树型结构(了解) 概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。…

JS-本地文件上传

由于不需要原上传文件的样式&#xff0c;所以自己书写了一个按钮触发文件上传&#xff0c;并将原本的样式隐藏 <!doctype html> <html><head><meta charset"utf-8"><title>文件传输</title> </head><body><inpu…

工业笔记本丨行业三防笔记本丨亿道加固笔记本定制丨极端温度优势

工业笔记本是专为在恶劣环境条件下工作而设计的高度耐用的计算机设备。与传统消费者级笔记本电脑相比&#xff0c;工业笔记本在极端温度下展现出了许多优势。本文将探讨工业笔记本在极端温度环境中的表现&#xff0c;并介绍其优势。 耐高温性能: 工业笔记本具有更高的耐高温性…

安卓动态链接库文件体积优化探索实践

背景介绍 应用安装包的体积影响着用户下载量、安装时长、用户磁盘占用量等多个方面&#xff0c;据Google Play统计&#xff0c;应用体积每增加6MB&#xff0c;安装的转化率将下降1%。 安装包的体积受诸多方面影响&#xff0c;针对dex、资源文件、so文件都有不同的优化策略&…

【极数系列】Flink集成KafkaSource 实时消费数据(10)

文章目录 01 引言02 连接器依赖2.1 kafka连接器依赖2.2 base基础依赖 03 连接器使用方法04 消息订阅4.1 主题订阅4.2 正则表达式订阅4.3 Partition 列分区订阅 05 消息解析06 起始消费位点07 有界 / 无界模式7.1 流式7.2 批式 08 其他属性8.1 KafkaSource 配置项&#xff08;1&…

如何训练自己的模型

无论数据类型或目标如何&#xff0c;用于训练和使用 AutoML 模型的工作流都是相同的&#xff1a; 准备训练数据。 我们需要将需要训练的数据准备为jsonl格式&#xff0c;这种格式的特点就是每一行都是json的格式 {"prompt": "<prompt text>", "…

【初识爬虫+requests模块】

爬虫又称网络蜘蛛、网络机器人。本质就是程序模拟人使用浏览器访问网站&#xff0c;并将需要的数据抓取下来。爬虫不仅能够使用在搜索引擎领域&#xff0c;在数据分析、商业领域都得到了大规模的应用。 URL 每一个URL指向一个资源&#xff0c;可以是一个html页面&#xff0c;一…

配置git环境与项目创建

项目设计 名称&#xff1a;KOB 项目包含的模块 PK模块&#xff1a;匹配界面&#xff08;微服务&#xff09;、实况直播界面&#xff08;WebSocket协议&#xff09; 对局列表模块&#xff1a;对局列表界面、对局录像界面 排行榜模块&#xff1a;Bot排行榜界面 用户中心模块&…

从Kafka系统中读取消息数据——消费

从Kafka系统中读取消息数据——消费 消费 Kafka 集群中的主题消息检查消费者是不是单线程主题如何自动获取分区和手动分配分区subscribe实现订阅&#xff08;自动获取分区&#xff09;assign&#xff08;手动分配分区&#xff09; 反序列化主题消息反序列化一个类.演示 Kafka 自…

软件测试学习笔记-使用jmeter进行性能测试

性能测试&#xff1a;使用自动化工具&#xff0c;模拟不同的场景&#xff0c;对软件各项性能指标进行测试和评估的过程。 性能测试的目的&#xff1a; 评估当前系统的能力寻找性能瓶颈&#xff0c;优化性能评估软件是否能够满足未来的需要 性能测试和功能测试对比 焦点不同&…

基于FPGA的图像最近邻插值算法verilog实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将FPGA数据导入matlab显示图片&#xff0c;效果如下&#xff1a; 2.算法运行软件版本 vivado2019.2&#xff0c;matlab2022a 3.部分核心程序 ti…

【开源】SpringBoot框架开发高校学生管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生管理模块2.2 学院课程模块2.3 学生选课模块2.4 成绩管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学生表3.2.2 学院课程表3.2.3 学生选课表3.2.4 学生成绩表 四、系统展示五、核心代码5.1 查询课程5.2 新…

服务器和CDN推荐

简介 陆云Roovps是一家成立于2021年的主机服务商&#xff0c;主要业务是销售美国服务器、香港服务器及国外湖北十堰高防服务器&#xff0c;还有相关CDN产品。&#xff08; 地址&#xff1a;roovps&#xff09; 一、相关产品

C语言之数据在内存中的存储

目录 1. 整数在内存中的存储2. 大小端字节序和字节序判断什么是大小端&#xff1f;为什么有大小端&#xff1f;练习1练习2练习3练习4练习5练习6 3. 浮点数在内存中的存储浮点数存的过程浮点数取得过程练习题解析 1. 整数在内存中的存储 在讲解操作符的时候&#xff0c;我们已经…

ffmpeg的使用,安装,抽帧,加水印,截图,生成gif,格式转换,抓屏等

实际使用中总结的关于ffmpeg对视频的处理的记录文档 具体信息&#xff1a; http://ffmpeg.org/download.html 官网下载ffmpeg 关于ffmpeg的安装详细步骤和说明 装ffmpeg 方式,Linux和windows下的 http://bbs.csdn.net/topics/390519382 php 调用ffmpeg , http://bbs.csdn.net/t…

(篇九)MySQL常用内置函数

目录 ⌛数学函数 ⌛字符串函数 ⌛聚合函数 ⌛日期函数 &#x1f4d0;获取当前时间 &#x1f4d0;获取时间的某些内容 &#x1f4d0;​编辑 &#x1f4d0;格式化函数 &#x1f4cf;format类型&#xff1a; ⌛系统信息函数 ⌛类型转换函数 数学函数 字符串函数 聚合函…