预训练大语言模型综述来了!中国人民大学教授发表包含了416个参考文献的大语言模型综述

news2024/12/23 6:03:18

尽管大语言模型在最近今年发展十分迅速,但是相关的综述却相对比较落后。本文是由中国人民大学教授Wayne Xin Zhao等人前几天刚公开的关于大语言模型的综述,论文正文部分共32页,包含了416个参考文献。内容十分详实。

这份大模型综述我已经打包好了,还有完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文将简单介绍一下这篇综述。本文综述了LLMs最近在四个主要方面的研究进展,包括预训练(如何预训练能力强的LLM)、适应调整(如何从有效性和安全性两个方面有效地调整预训练的LLM)、应用(如何使用LLMs解决各种下游任务)和能力评估(如何评估LLMs的能力和现有的经验结果)。文章彻底梳理了文献,并总结了LLMs的关键发现、技术和方法。
  • 现有的大模型的总体情况概览
  • 现有大模型使用的语料统计
  • 现有大模型使用的库(开源软件)
  • 现有大模型预训练数据源比例
  • 预训练大模型典型的数据预处理流程
  • 现有大模型使用的架构和训练细节
现有的大模型的总体情况概览

文章的第一部分为我们总结了最近今年发布的大模型。如下图所示。

图片

其中黄色的部分是开源的模型。可以看到,所谓的OpenAI其实基本上没有开源的模型,反而是Meta、Google开源的模型较多。而2021年之后,各家发布的模型也开始增多,其中一眼望去,Google(包括DeepMind)发布的模型相当多(尽管似乎影响力不够)。

下图是所有的模型统计结果:

图片

现有大模型使用的语料统计

当前大模型使用的语料大多数是公开数据集,包括BookCorpus、CommonCrawl、Reddit Links、Wikipedia等都是常用的数据集。下图总结了现有模型使用的数据集情况:

图片

从图中可以看出,LLMs不再依赖单一的语料库,而是利用多个数据源进行预训练。因此,现有研究通常混合几个现成的数据集(例如C4、OpenWebText和Pile),然后进行进一步的处理以获得预训练语料库。此外,为了训练适应于特定应用程序的LLMs,从相关来源(例如维基百科和BigQuery)提取数据以丰富预训练数据中的相应信息也非常重要。

现有大模型使用的库(开源软件)

在这部分中,论文简要介绍了一系列可用于开发LLM的库。

  • Transformers 是一个使用Transformer架构构建模型的开源Python库,由Hugging Face开发和维护。它具有简单且用户友好的API,使得使用和自定义各种预训练模型以及数据集处理和评估工具变得容易。它是一个强大的库,拥有庞大而活跃的用户和开发者社区,他们定期更新和改进模型和算法。
  • DeepSpeed是由微软开发的基于PyTorch的深度学习优化库,已被用于训练多个LLM,如GPT-Neo和BLOOM [66]。它提供各种分布式训练的优化技术,如内存优化(ZeRO技术)、梯度检查点和管道并行。此外,它还提供了微调和评估这些模型的API。
  • Megatron-LM 是由NVIDIA开发的基于PyTorch的深度学习库,用于训练大规模语言模型。它还提供了丰富的分布式训练优化技术,包括模型和数据并行、混合精度训练、FlashAttention和梯度检查点。这些优化技术可以显著提高训练效率和速度,实现跨GPU和机器的高效分布式训练。
  • JAX 是由Google Brain开发的高性能机器学习Python库,允许用户在具有硬件加速支持(GPU或TPU)的数组上轻松执行计算。它支持在各种设备上进行计算,并提供了几个方便的功能,如即时编译加速和自动批处理。
  • Colossal-AI是由EleutherAI开发的用于训练大规模语言模型的深度学习库。它是建立在JAX之上的,支持用于训练的优化策略,如混合精度训练和并行处理。最近,基于LLaMA [57],使用Colossal-AI开发了名为ColossalChat [119] 的ChatGPT模型,公开发布了两个版本(7B和13B)。
  • BMTrain [120] 是由OpenBMB开发的高效库,用于以分布式方式训练具有大规模参数的模型,其强调代码简单性、低资源占用和高可用性。BMTrain已经将几个常见的LLM(例如Flan-T5 [81]和GLM [80])整合到其ModelCenter中,开发人员可以直接使用这些模型。
  • FastMoE [121] 是MoE(即专家混合)模型的专用训练库。它是建立在PyTorch之上的,其设计优先考虑了效率和用户友好性。FastMoE简化了将Transformer模型转换为MoE模型的过程,并在训练期间支持数据并行和模型并行。
现有大模型预训练数据源比例

为了开发一款能力强大的LLM,收集来自各种数据源的大量自然语言语料库是关键。现有的LLM主要利用各种公共文本数据集的混合作为预训练语料库。下图显示了几个现有LLM的预训练数据来源的分布情况。

图片

预训练大模型典型的数据预处理流程

在收集大量文本数据后,必须对其进行预处理以构建预训练语料库,尤其是去除噪音、冗余、无关和潜在有害数据,这可能会极大地影响LLM的容量和性能。在本部分中,作者回顾了详细的数据预处理策略,以提高收集到的数据质量。预处理LLM的预训练数据的典型流程已在下图中说明。

图片

现有大模型使用的架构和训练细节

由于Transformer架构具有出色的可并行性和容量,因此已成为开发各种LLM的事实上的主干,使得将语言模型扩展到数千亿甚至万亿个参数成为可能。一般来说,现有LLM的主流架构可以大致分为三种主要类型,即编码器-解码器、因果解码器和前缀解码器。
下图展示了主流大模型采用的模型架构。

图片

图片

表格四展示了主流模型的一些训练细节,包括批次大小、学习速率等。

这部分论文包含了很多其它的结论,我们不一一列举。

这份大模型综述我已经打包好了,还有完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

【iOS多线程(三)】优先级反转问题

优先级反转 实时操作系统的一个基本要求就是基于优先级的抢占系统。保证优先级高的线程在“第一时间”抢到执行权,是实时系统的第一黄金准则。 但是这种基于优先级抢占的系统,有一个著名的问题需要关注,就是“优先级反转”(Prio…

优思学院:标准化作业在精益管理之屋中的位置

除了两大支柱,我们必须要对整个精益之屋进行理解,才可以知道精益生产的全貌。精益之屋由4部分组成:地基、2个支柱和屋顶。 首先,地基就是5S活动、目视化管理、标准化作业来建立稳定性。 而标准化作业正正是大家都忽略&#xff0…

计算机网络408考研 2020

2020 湖科大教书匠的个人空间-湖科大教书匠个人主页-哔哩哔哩视频 计算机网络408考研 历年真题解析(有字幕无背景音乐版)_哔哩哔哩_bilibili 计算机网络408考研2020年真题解析_哔哩哔哩_bilibili 1 2 3 41 11 1

cmake 编译教程

一、只有一个源文件的程序编译 首先在当前目录下创建两个文件 hello.cpp CMakeLists.txt (注意CMakeLists大小写,不要写错了) cmake_minimum_required (VERSION 2.8)project (learn_cmake)add_executable(hello hello.cpp) 第一行意思是…

基于R语言绘制GGE双标图4

参考资料: https://cran.r-project.org/web/packages/GGEBiplots/GGEBiplots.pdf 1、数据整理 使用GGEBiplots包绘制双标图,分析用数据是二维数据表(行表示品种或基因型,列表示试验点或环境)。当我们的数据表是一维数…

ip地址是公网还是内网?内网电脑ip地址在哪看

在数字化时代,IP地址作为网络设备的唯一标识符,扮演着至关重要的角色。然而,你是否知道IP地址是内网还是外网?对于内网电脑,我们又该如何快速准确地找到其IP地址呢?下面带着这些疑问跟着虎观代理小二一起深…

《python语言程序设计》2018版第6章第37题,随机生成字符,使用RandomCharacter生成100个小写字母,每行15个

一、正常输出方法设计的代码结构 老规矩用正常输出法设计代码结构 def getRandomCharacter(ch1, ch2):return chr(random.randint(ord(ch1), ord(ch2)))def getRandomLowerCaseLetter():return getRandomCharacter(a, z)count 0 for i in range(100):count 1a getRandomLowe…

深度学习实战(1):树叶分类pytorch

Classify Leaves | Kaggle 上面是数据集 数据导入与数据处理 %matplotlib inline import torch from torch.utils import data as Data import torchvision from torch import nn import torchvision.models as models from IPython import display import os import pandas…

leetcode69. x 的平方根,二分法

leetcode69. x 的平方根 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0…

培训第二十三天(mysql主从脚本与mysql详细语句介绍)

上午 在同步时,对删除和修改都比较慎重(监控同步时) mysql主从搭建 前提软件libaio,rsync 1、主2、从3、同步4、测试 注意:先执行从服务器的脚本,再执行主服务器脚本 master-mysql配置脚本 先要在主服务…

企元数智小程序合规分销系统赠送:迎接数字化时代商机

当今时代,随着科技的高速发展和数字化的普及,企业如何抓住数字化时代带来的商机,成为了业界关注的焦点。在这样一个竞争激烈的市场环境下,企业需要不断提高自身的竞争力和应变能力,以应对激烈的市场竞争,开…

Phpstorm实现本地SSH开发远程机器(或虚拟机)项目

适用场景: 1、windows系统想要运行仅支持linux、mac系统的项目,可将项目运行在本地虚拟机,但是在虚拟机里使用vim编辑很麻烦,如何实现在本地用Phpstorm来编辑虚拟机中的代码? 下面的说明都是以本地虚拟机为例&#xff…

java之拼图小游戏(开源)

public class LoginJFrame extends JFrame {//表示登录界面,以后所有跟登录相关的都写在这里public LoginJFrame() {//设置界面的长和宽this.setSize(603,680);//设置界面的标题this.setTitle("拼图登陆界面");//设置界面置顶this.setAlwaysOnTop(true);/…

科研绘图系列:R语言圆形条形图(circular barplot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 介绍 圆形条形图(circular barplot)是一种条形图,其中的条形沿着圆形而不是线性排列展示。这种图表的输入数据集与普通条形图相同:每个组(一个组即一个条形)需要一个数值。(更多解释请参…

linux文件查找--locate和find命令详解

在文件系统上查找符合条件的文件 文件查找:1.非实时查找(数据库查找):locate2.实时查找: find应用:生产环境中查找到系统中占用磁盘空间较大且时间比较久的大日志文件,对这个较大的日志文件做处理(删除移走等),防止它占用更多的磁…

gps 轨迹点如何绘制路径

作为用户,我们进行户外运动后,有的人喜欢分享自己的运动记录。这个时候就比较关注自己的运动轨迹路线了。 一.将经纬度转化为轨迹方法1 1.将gps 打点文件导出。 2.将经纬度点转换成如下格式。 3.将转换后的经纬度填入如下地址: https://ww…

必了解的 20 个 AI 术语解析(下)

AI 领域的基础概念和相关技术有很多,这篇文章里,作者就深入浅出地介绍了相应的内容,感兴趣的同学们,不妨来看一下。 必了解的 20 个 AI 术语解析(下)© 由 ZAKER科技 提供 本文专为非技术背景的 AI 爱…

如何修改360免费wifi热点的频带为2.4G或者5G

有的时候使用电脑广播出热点给嵌入式设备用进而进行抓包,但是他默认广播的是5G Hz的,嵌入式设备扫不到热点。那么如何让他广播2.4G H在呢? CMD控制台使用命令netsh wlan show drivers查看设备驱动: 802.11g 和 802.11n 意味着你的…

Python酷库之旅-第三方库Pandas(071)

目录 一、用法精讲 286、pandas.Series.dt.to_pydatetime方法 286-1、语法 286-2、参数 286-3、功能 286-4、返回值 286-5、说明 286-6、用法 286-6-1、数据准备 286-6-2、代码示例 286-6-3、结果输出 287、pandas.Series.dt.tz_localize方法 287-1、语法 287-2、…

Selenium 自动化测试最佳实践

1 编码前的准备工作与基本指导思想 测试一个网站就是针对该网站测试场景的一次项目开发,所以项目开发中的理念与思想可以借鉴过来。接到测试需求后,不要一开始就陷入按钮、字段、下拉框等页面元素怎么操作的技术细节当中,而要站在最终用户的…