【LLM知识】笔记

为什么现在的LLM以decoder-only为主

为什么现在的LLM都是Decoder only的架构?

回答一

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

回答二

  • encoder-decoder
    • 常用于处理需要对输入和输出建立精确的映射关系的任务(机器翻译、文本摘要等),更具有专业性
    • 优势
      • 输入的语义理解会更好
    • 劣势
      • 一般只能适用于某种特定的任务中,不易迁移到其他任务中(需要根据不同任务进行训练)
      • 数据预处理:Encoder-Decoder模型通常对于输入和输出之间的精确对齐要求非常严格,这也就意味着需要复杂的数据预处理过程。而且对于不同类型的输入和输出数据,可能需要用到不同的预处理方法,比如机器翻译中的双语对齐;比如图像字幕识别任务中的图像预理和文本预处理等等。
      • 输入数据难以获取:Encoder-Decoder架构通常高度依赖于输入和输出之间的关系,这就要求收集到的输入和输出数据具备精确的映射关系,增大了数据收集的难度,大大减少了符合要求的数据量。
      • 训练时间更长:由于结构的复杂性,Encoder-Decoder模型可能需要很长的训练时间。尤其是处理长序列时,为了理解和编码整个序列的上下文,为了计算序列中每个元素与其他所有元素间的关系,为了储存更多的数据点和中间计算结果,仅在Encoder阶段,就需要消大量的时间和内存,增加训练难度。
      • 模型应用受限:而最令人恼火的,还是费劲力气训练得到的模型,仅对特定类型的任务表现良好,比如谷歌翻译不能用于进行语音识别,每涉及到一种新的功能,便需要重新训练一个模型,耗时耗力,很不灵活。
  • decoder-only
    • 只能根据前面的文本来生成后面的内容,可以处理多种不同的文本生成任务,更灵活
    • decoder-only的zero-shot效果是最好的;而且此框架有对应的scale-laws作为一种理论支撑
    • 优势
      • 灵活的输入格式:由于decoder-only模型本质上是根据给定的文本串生成输出,因此它们可以接受各种格式的输入。包括问题和回答、提示和续写、以及代码和其执行结果等。也就是说,无需特意对输入数据集进行”清洗”。
      • 无需特定的任务架构:与encoder-decoder架构不同,decoder-only模型Q不需要为不同类型的任务构建特定的encoder部分。也就是说,同一个模型可以在没有或仅需要少量修改的情况下,处理多种任务。
      • 简化的预训练和微调过程:在预训练和微调阶段,没有繁琐的encoder过程,decoder-only模型可以更加容易的进入训练过程。此外,由于训练过程主要关注如何基于给定的上下文生成文本,因此既不需要用户提供复杂的输入输出编码关系,也不需要专门处理这些复杂的映射。
      • 易于扩展性:由于结构的简单和统一,decoder-only模型通常更容易扩展到更大的模型尺寸,有助于提升模型的性能和适应性。这也就是去年涌现出的众多M,参数数量能够不断攀上新高的主要原因之一
    • 劣势
      • 对于输入的理解不如encoder-decoder,因此更可能出现幻觉问题(因为没有从完整的原始输入中来获取信息,可靠性可能不如encoder-decoder)
      • 处理长序列时面临长期依赖的问题,在长文本中维持上下文的一致性和相关性可能表现不佳

比较Causal decoder、Prefix decoder和encoder-decoder

  • causal decoder
    • decoder-only
    • 采用单向注意力掩码,以确保每个输入标记只能关注过去的标记和它本身,输入和输出的token通过Decoder以相同的方式进行处理
    • 代表:GPT
  • prefix decoder
    • decoder-only
    • 是Encoder-Decoder模型变体,Encoder和Decoder则共享了同一个Transformer结构,在Transformer内部通过Attention Mask机制来实现
    • 输入部分采用双向注意力(即前缀序列中任意两个token都相互可见),而输出部分采用单向注意力(即待生成的token可以看到Encoder侧所有token(包括上下文)和Decoder侧已经生成的token,但不能看未来尚未产生的token)
    • 代表:UniLM、T5、GLM
  • encoder-decoder
    • 非decoder-only
    • 包含两部分Encoder和Decoder,两部分参数独立
    • Encoder部分采用双向注意力,对应的prompt的每个token都可以互相看到;而Decoder部分仍然采用单向注意力,对应的completion仍然保证前面的token看不到后面的token
    • 代表:Flan-T5
      在这里插入图片描述

LLM中的智能涌现

大语言模型的涌现能力:现象与解释

  • 什么是智能涌现
    • 表现出涌现能力:当模型规模大到一定程度时,效果才会急剧增长,在模型规模小于某个临界值之前,模型基本不具备任务解决能力。这就是典型的涌现能力的体现。这类任务呈现出一种共性:大多数是由多步骤构成的复杂任务
  • 智能涌现的表现
    • In Context Learning(“Few-Shot Prompt”):给出几个例子,大模型不需要调整模型参数,就能够处理好任务
    • 思维链:CoT本质上是一种特殊的few shot prompt,就是说对于某个复杂的比如推理问题,用户把一步一步的推导过程写出来,并提供给大语言模型(如下图蓝色文字内容所示),这样大语言模型就能做一些相对复杂的推理任务。任务:数学问题、符号推理问题
  • 把模型做小会影响智能涌现吗
    • 在训练模型的时候,可以考虑先增加训练数据,降低模型参数量,把模型做小,先把模型参数利用充分,在这个基础上,再继续增加数据,并推大模型规模。也即是说,目前看,我们先把模型做小,再把模型做大,看上去是可行的
  • 模型训练过程中的顿悟现象(grokking)
    在这里插入图片描述
    • 顿悟现象:(对于一个训练数据较少的任务)训练可分为动态的3部分:
      • 记忆期:对应的训练数据指标突然走高,代表模型记住了50%的训练数据的结果,而绿线对应的验证集指标接近0,说明模型完全没有泛化能力,就是说没有学会这个任务的规律。所以这个阶段模型只是在单纯地记忆训练数据
      • 平台期:这个阶段是记忆期的延续,体现为验证集合效果仍然很差,说明模型仍然没有学会规律(在学会前需要经历这样一个过程)
      • 泛化期:这个阶段验证集合效果突然变好,这说明突然之间,模型学会了任务里的规律,也就是我们说的,出现了顿悟现象,突然就学明白了
  • 涌现能力的可能原因
    • 猜想一:任务的评价指标不够平滑。对于一些很严格的指标,模型需要学习较长一段时间(或扩大模型规模)后才会学会,从指标反映出来就是突然变好;但是如果把这个指标变得简单一些,那么模型的效果提升就会相对连续、平滑,而不是突然变好
    • 猜想二:复杂任务 vs 子任务。展现出涌现现象的任务有一个共性,就是任务往往是由多个子任务构成的复杂任务。也就是说,最终任务过于复杂,如果仔细分析,可以看出它由多个子任务构成,这时候,子任务效果往往随着模型增大,符合 Scaling Law,而最终任务则体现为涌现现象。比如:假设某个任务 T 有 5 个子任务 Sub-T 构成,每个 sub-T 随着模型增长,指标从 40% 提升到 60%,但是最终任务的指标只从 1.1% 提升到了 7%,也就是说宏观上看到了涌现现象,但是子任务效果其实是平滑增长的。
    • 猜想三:用 Grokking 来解释涌现
      • 第一个事实是 Grokking 现象是描述训练数据量较少的 ML 任务的,但是任务最小训练数据量必须达到一定的量,才会出现 Grokking 现象。这里有两点,一个是本身训练数据量少,另外是最小数据量要达到临界值
      • 第二个事实是 LLM 模型规模越大,记忆数据的能力越强。比如:对于某个任务T,假设预训练数据里包含与任务T相关的训练数据量有100条,那么大模型可以记住其中的70条,而小模型可能只能记住30条
      • 情况一(利用事实一):对于某个任务T,尽管我们看到的预训练数据总量是巨大的,但是与T相关的训练数据其实数量很少。当我们推大模型规模的时候,往往会伴随着增加预训练数据的数据量操作,这样,当模型规模达到某个点的时候,与任务T相关的数据量,突然就达到了最小要求临界点,于是这个任务产生了Grokking现象
      • 情况二(利用事实一、二):假设在预训练数据中,某个任务T有 100 个训练数据,当模型规模小的时可能只记得 30 个,达不到Grokking现象的临界点,而当模型规模推大时,因为模型记忆能力增强,可能就能记住其中的50个,这意味着它可能超过了Grokking的临界点,于是会出现 Grokking 里面的泛化现象。如果从这个角度看,其实也可以从Grokking角度来解释为何只有大模型才会具备涌现现象

LLM复读机问题

LLM面面观之LLM复读机问题及解决方案
大模型(LLMs)算法工程师相关的面试题和参考答案

  • 复读机问题是什么
    • LLMs 复读机问题是指在某些情况下,大型语言模型在生成文本时会重复之前已经生成的内容,导致生成的文本缺乏多样性和创造性
  • 为什么会出现
    • LLMs 复读机问题可能由多种因素引起,包括模型训练数据中的重复模式、模型在处理长序列时的注意力机制失效、或者模型在生成文本时对过去信息的过度依赖等
    • 对于训练
      • 数据偏差:大型语言模型通常是通过预训练阶段使用大规模无标签数据进行训练的。如果训练数据中存在大量的重复文本或者某些特定的句子或短语出现频率较高,模型在生成文本时可能会倾向于复制这些常见的模式。
      • 训练目标的限制:大型语言模型的训练通常是基于无监督学习的方法,通过预测下一个词或掩盖词来学习语言模型。这样的训练目标可能使得模型更倾向于生成与输入相似的文本,导致复读机问题的出现。
      • 缺乏多样性的训练数据:虽然大型语言模型可以处理大规模的数据,但如果训练数据中缺乏多样性的语言表达和语境,模型可能无法学习到足够的多样性和创造性,导致复读机问题的出现。
    • 对于贪心解码(即每次生成的token选择词表中概率最大的token)
      • LLM 趋向于提高重复先前句子的概率。仅出现一条句子级的上下文重复,重复的概率在大多数情况下也会增加。产生这种现象的原因可能是LLM对上下文非常有信心,当先前的token共享同一个句子级的上下文时,模型会学到一条捷径,直接复制该token
      • 自我强化效应(self-reinforcement effect):重复的概率几乎随着历史重复次数的增加而单调增加,最终,重复概率稳定在某个上限值附近。一旦生成的句子重复几次,模型将会受困于因自我强化效应引起的句子循环。
  • 如何缓解
    • 在训练时
      • 构造一些重复的文本(负样例,伪样例),训练时加大对这类数据的惩罚(重复惩罚项通过设计损失函数来达成,其中是惩罚因子λ,论文中提到,对于开放式生成,推荐取值为0.5,对于总结摘要类任务,取值为0.9性能更好)
      • 多样性训练数据:在训练阶段,使用多样性的语料库来训练模型,避免数据偏差和重复文本的问题。这可以包括从不同领域、不同来源和不同风格的文本中获取数据。
      • 引入噪声:在生成文本时,引入一些随机性或噪声,例如通过采样不同的词或短语,或者引入随机的变换操作,以增加生成文本的多样性。这可以通过在生成过程中对模型的输出进行采样或添加随机性来实现。
    • 在解码时
      • 温度参数调整:温度参数是用来控制生成文本的多样性的一个参数。通过调整温度参数的值,可以控制生成文本的独创性和多样性。较高的温度值会增加随机性,从而减少复读机问题的出现。
      • Beam搜索调整:在生成文本时,可以调整Beam搜索算法的参数。Beam搜索是一种常用的生成策略,它在生成过程中维护了一个候选序列的集合。通过调整Beam大小和搜索宽度,可以控制生成文本的多样性和创造性。
    • 后处理
      • 后处理和过滤:对生成的文本进行后处理和过滤,去除重复的句子或短语,以提高生成文本的质量和多样性。可以使用文本相似度计算方法或规则来检测和去除重复的文本。
      • 人工干预和控制:对于关键任务或敏感场景,可以引入人工干预和控制机制,对生成的文本进行审查和筛选,确保生成结果的准确性和多样性。

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

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

相关文章

c#简易学生管理系统

https://pan.baidu.com/s/1kCPvWg8P5hvlf26nGf2vxg?pwdya45 ya45

Linux运维:磁盘分区与挂载详解

Linux运维:磁盘分区与挂载详解 1、磁盘分区的原理2、查看系统中所有的磁盘设备及其分区信息3、进行磁盘分区(对于sdb新磁盘)4、格式化分区5、挂载分区(临时挂载、永久挂载)6、取消挂载分区7、删除分区 💖Th…

立式学习灯有什么讲究?大路灯原来要这样选,五大台灯分享!

立式学习灯作为近年来最适合照明的护眼家电,为用户提供了良好的光线环境,并且还能够减少光线带来的视觉疲劳感。然而,随着其销量的节节攀升商家为了谋取利润,市面上也涌现了很多劣质产品,这些产品普遍没有经过技术调教…

【AnaConda/MiniConda/Linux】使用sudo python或切换root管理员conda环境被绕过解决方案

写在前面 部分机型修改环境变量存在风险,可能用于被覆盖而出现大量命令无法找到的情况 可以输入这个解决 export PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin往期相关内容 探索Miniconda3:简单、灵活的Python环境和…

刷题日记——16进制不进位加法(厦门大学机试)

例题 分析 输入 本题解题关键在于输入的两个数位数不同时候需要尾数对齐,由于是16进制输入,含有字母,需要当作字符串输入,当然输出也要字母,那么就需要我们的两个老伙计了,一个是map,另一个是…

一文带你详解天池医疗数据集

医疗作为和民生健康息息相关的产业,通过天池大赛开放出一批有临床科研价值的数据集,涵盖了预防、辅诊、医学科研等主题。 与此同时,阿里云天池平台也积极推动产学研的共同进步,开源了多个本地生活领域的数据集,如aBea…

数据库类型转换

数据库版本:KingbaseES V008R006C008B0014 简介 数据类型转换是指将一个数据类型的值转换为另一个数据类型的值的过程。数据类型转换通常发生在不同数据类型的比较、计算或赋值操作中。kingbase主要分为隐式转换和显示转换,本篇文章主要介绍这两种转换方…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

摘要:本文深入介绍了一个采用深度学习技术的危险物品识别系统,该系统融合了最新的YOLOv8算法,并对比了YOLOv7、YOLOv6、YOLOv5等早期版本的性能。该系统在处理图像、视频、实时视频流及批量文件时,能够准确识别和分类各种危险物品…

设备点检管理系统的实施

设备点检管理系统的实施包括以下关键步骤: 确定检查对象和范围:根据生产需求和设备重要性,确定需要纳入点检系统的设备范围,以便有针对性地进行后续管理与监控。 制定点检计划:制定详细的点检计划,包括检…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十二)-Multi-RTT定位

前言 3GPP NR Positioning 5G定位标准:3GPP TS 38.305 V18 3GPP 标准网址:Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读(一)-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读(…

NXP Auto HVBMS S32DS 参数配置卡顿解决办法:使用 EB 替代 S32DS Configuration Tools

一、背景介绍 用户在 Automotive Software Package Manager | NXP Semiconductors 可以下载 S32K344 或者是 S32K358 的 HVBMS 捆绑包。 其中包含有 IDE:S32DS,基于 S32DS 的基础软件包以及 RTD 插件包,MCAL 配置工具:EB …

【PHP+代码审计】PHP基础——流程控制

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

QT网络编程之实现TCP客户端和服务端

一.QT5.12实现TCP客户端和服务端功能 1.QT中实现TCP通信主要用到了以下类:QTcpServer、QTcpSocket、QHostAddress 2.基本流程: 使用QTcpServer来创建一个TCP服务器,在新的连接建立时,将新建立连接的socket添加到列表中&#xf…

Ubuntu 安装腾讯会议

1.官网下载 进入腾讯会议下载官网下载腾讯会议Linux客户端 选择x86_64格式安装包下载 若不知道自己的系统架构,输入 uname -a 在命令行结果中查看系统架构信息 2.终端命令安装 cd {你的下载路径} sudo dpkg -i TencentMeeting_0300000000_3.19.0.401_x86_64_default.publi…

mysql对索引的选择简述

概述 在业务中经常会优化一些mysql的慢查询,通常都是使用explain去查看分析,检查扫描行数和索引的命中情况; 但是在具体索引的选择上,explain结果中并没有直接展示出来; 此时可以开启mysql的追踪优化器Trace功能&…

如何进行专利布局与专利规避

一、专利布局 WHY 专利布局是指企业或个人在科研或生产过程中,为了保护和利用自身的技术成果,通过综合产业、市场和法律等因素,对专利进行有机结合,构建严密高效的专利保护网,最终形成对企业或个人有利的专利组合。 …

10、Redis分布式系统之数据分区算法

Redis分布式系统之数据分区算法 1、什么是Redis分布式系统 ​ Redis分布式系统,官方称为Redis Cluster, Redis集群(这个集群和前面的主从复制集群不同,这个集群可以理解为是多个主从复制集群所组成的集群),其实是Red…

C# RAM Stable Diffusion 提示词反推 Onnx Demo

目录 介绍 效果 模型信息 项目 代码 下载 C# RAM Stable Diffusion 提示词反推 Onnx Demo 介绍 github地址:GitHub - xinyu1205/recognize-anything: Open-source and strong foundation image recognition models. Open-source and strong foundation ima…

基于Redis实现分布式锁、限流操作(基于SpringBoot)的实现

基于Redis实现分布式锁、限流操作——基于SpringBoot实现 本文总结了一种利用Redis实现分布式锁、限流的较优雅的实现方式本文原理介绍较为通俗,希望能帮到有需要的人本文的demo地址:https://gitee.com/rederxu/lock_distributed.git 一、本文基本实现…

《MySQL数据库》day2--连接查询、子查询、union、limit、DML语句

文章目录 1.把查询结果去除重复记录 -》distinct2.连接查询2.1什么是连接查询?2.2连接查询的分类2.3笛卡尔积现象2.4内连接2.4.1内连接之等值连接。2.4.2内连接之非等值连接2.4.3内连接之自连接 2.5外连接2.6三张表,四张表怎么连接? 3.子查询…