GPT3, llama2, InternLM2技术报告对比

GPT3(September 22, 2020)是大语言应用的一个milestone级别的作品,Llama2(February 2023)则是目前开源大模型中最有影响力的作品,InternLM2(2023.09.20)则是中文比较有影响力的作品。

今天结合三篇技术汇报,尝试对比一下这三个方案的效果。

参考GPT3,关于模型(Model and Architectures)的介绍分为了几个部分,包括Training Dataset, Training Process,而InternLM2包括了Pretrain和Alignment,LLama包括预训练,微调和安全。针对这个大致的划分,我们可以对比模型的具体细节效果。

1. 预训练

2. 微调,对齐

2.  模型结构及大小

模型大小

GPT3是175B参数,此外也提供了一些小版本。模型结构与GPT2一致。是一个纯decoder的transformer架构(没有深究了)。

LLama2则是70--700B参数

InternLM2则是1.8B到20B的参数量。

模型结构

GPT-3和GPT-2模型结构一致,都是采用了decoder形式的transformer架构。

LLama2则是基于LLama,增加了Context Length(from 2048 tokens to 4096 token),将Grouped-Query Attention替代MHA(multi-head attention)。

而LLama的架构则是基于Transformer,然后采用了其他方案的改进:RMSNorm(gpt3),Relu -> SwiGLU activation function(PaLM), absolute positional embeddings ->Rotary Embeddings (GPTNeo]),

而 InternLM2技术报告中,强调了它们很大参考了 LLama,但是还做了如下调整。

to better support diverse tensor parallelism (tp) transformations, we have reconfigured the matrix layout. Rather than stacking the Wk , Wq, and Wv matrices in a straightforward manner, we adopt an interleaving approach for each head’s Wk , Wq, and Wv, as depicted in Figure 2.

按我的理解,就是基于qkv三个权重矩阵的合并实现加速。

预训练

GPT-3论文对于训练策略的介绍比较简单,具体可以参考【5】,但是,它强调了pretrain,one-shot,zero-shot这几种任务的难度截然不同,

而关于数据集,主要介绍了Common Crawl dataset,而关于训练策略,不管是正文,还是附录,都没有多余的介绍了。

LLama,它使用English CommonCrawl以及github,wiki等大量数据进行训练。

相比于前两者,InternLM2则详细介绍了数据的准备过程,但是有趣的点,似乎没有。

Tokenize

GPT3使用的tokenize方式为reversible tokenization, 和GPT2一致。·

LLama2的tokenize的方式采用bytepair encoding (BPE) algorithm。训练集包含了1.4T个Token。

InternLM的Tokenize则采用了GPT-4所使用的tokenize方式。

finetune

在GPT-3的论文中强调了finetuning可以增加LLM针对特定任务的表现,但是也会影响模型的泛化性,并且,夸大了它的实际效果。作者把finetune和few shot,one-shot,zero-shot这几种方式对比,fine-tune显然是相对笨拙的方式。即使这样,他依然可以优化在各个场景中llm的效果。在GPT-3中,特定任务的使用都提到了finetune,但是finetune的细节并没有提及,在llama中,finetune也没有看到细节的介绍。而在InternLM中,则有alignment一大个章节来讲述finetune。

其中提到,为了对齐,他使用了 supervised fine-tuning (SFT) 和 reinforcement learning from human feedback (RLHF) 。针对RLHF,具体提出了coolRLHF,值得注意的是,在TR中,有大量篇幅用于介绍coolRLHF这一方案。

参考文档

[1] https://arxiv.org/pdf/2403.17297.pdf

[2] https://arxiv.org/pdf/2005.14165.pdf

[3] https://arxiv.org/pdf/2307.09288.pdf

[4] The Illustrated GPT-2 (Visualizing Transformer Language Models) – Jay Alammar – Visualizing machine learning one concept at a time.

[5] https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

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

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

相关文章

Linux文件搜索工具(gnome-search-tool)

opensuse下安装: sudo zypper install gnome-search-tool 操作界面:

JNews Theme最新版本:新闻网站首选的WordPress主题,功能强大且灵活

JNews Theme最新版本:新闻网站的首选WordPress主题 在当今数字化时代,新闻网站扮演着至关重要的角色。为了打造一个吸引读者、功能齐全的新闻平台,选择一款合适的WordPress主题显得尤为关键。而JNews Theme最新版本正是新闻网站的首选WordPr…

MacOS - brew 和 brew cask 有什么区别?

brew 是 ruby 的包管理,后来看 yangzhiping 的博客介绍了 brew cask,感觉 cask 是更好的关联关系管理,但是,我后来使用过程中,发现很多软件 brew cask 里没有,但是 brew 里面倒是挺多!今天来给说…

java面试题(Redis)

事情干的差不多了,开刷面试题和算法,争取在短时间内快速成长,理解java面试的常见题型 一、redis使用场景: 缓存:穿透、击穿、雪崩 双写一致、持久化 数据过期、淘汰策略 分布式锁:setnx、redisson 计数…

【JavaScript】函数 ⑦ ( 函数定义方法 | 命名函数 | 函数表达式 )

文章目录 一、函数定义方法1、命名函数2、函数表达式3、函数表达式示例 一、函数定义方法 1、命名函数 定义函数的标准方式 就是 命名函数 , 也就是之前讲过的 声明函数 ; 函数 声明后 , 才能被调用 ; 声明函数的语法如下 : function functionName(parameters) { // 函数体 …

计算机网络:数据链路层 - 可靠传输协议

计算机网络:数据链路层 - 可靠传输协议 可靠传输概念停止-等待协议 SW回退N帧协议 GBN选择重传协议 SR 可靠传输概念 如下所示,帧在传输过程中受到干扰,产生了误码。接收方的数据链路层,通过真伪中的真检验序列 FCS 字段的值&…

ROS 2边学边练(13)-- 创建一个功能包

前言 功能包是啥 简单理解,功能包就是一个文件夹,一个具备一定功能的文件夹,一个有组织有结构的文件夹,一个能方便分享给其他人使用的文件夹,比如我们的小海龟功能包,它就是一个文件夹,名字叫t…

WPS 不登录无法使用基本功能的解决办法

使用wps时,常常有个比较让人烦恼的事,在不登录的情况下,新建或者打开文档时,wps不让你使用其基本的功能,如设置字体等,相关界面变成灰色,这时Wps提示用户登录注册或登录,但我又不想登…

【QT入门】 无边框窗口设计之综合运用,实现WPS的tab页面

往期回顾: 【QT入门】 无边框窗口设计之实现窗口阴影-CSDN博客 【QT入门】 无边框窗口设计之实现圆角窗口-CSDN博客 【QT入门】 无边框窗口设计综合运用之自定义标题栏带圆角阴影的窗口-CSDN博客 【QT入门】 无边框窗口设计之综合运用,实现WPS的tab页面 …

Nexus的docker安装,maven私服

文章目录 前言安装创建文件夹设置文件夹权限docker创建指令制作docker-compose.yaml文件 查看网站访问网页查看密码 前言 nexus作为私服的maven仓库,在企业级应用中,提供了依赖来源的稳定性,为构建庞大的微服务体系,打下基础 安…

算法——分治(快速排序)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享分治算法关于快速排序的专题 对于快速排序在我个人主页专栏 <排序> 有详细的介绍,此专题对快排进行了优化操作,并介绍了优化后的快排的几种运用 如果有不足的或者错误的请…

【正点原子探索者STM32F4】TFTLCD实验学习记录:FSMC控制 TFTLCD的寄存器配置

FSMC控制 TFTLCD的寄存器配置 异步模式 A控制 TFTLCDFSMC寄存器配置ILI9341电平持续时间要求 参考 异步模式 A控制 TFTLCD LCD以ILI9341为例 FSMC寄存器配置 对于异步突发访问方式&#xff0c; FSMC 主要设置 3 个时间参数&#xff1a;地址建立时间(ADDSET)、 数据 建立时间…

Unity之PUN实现多人联机射击游戏的优化(Section 2)

目录 &#x1f3ae;一、准备工作 &#x1f3ae;二、实现手雷投掷动作 &#x1f3ae;三、手雷投掷同步 &#x1f4a4;3.1 photonView.RPC &#x1f3ae;四、同步手雷伤害 这几周都给我布置任务了&#xff0c;最近可忙。现在终于有机会更新了&#xff0c;也谢谢大家的阅读&a…

JavaSE-11笔记【多线程2(+2024新)】

文章目录 6.线程安全6.1 线程安全问题6.2 线程同步机制6.3 关于线程同步的面试题6.3.1 版本16.3.2 版本26.3.3 版本36.3.4 版本4 7.死锁7.1 多线程卖票问题 8.线程通信8.1 wait()和sleep的区别&#xff1f;8.2 两个线程交替输出8.3 三个线程交替输出8.4 线程通信-生产者和消费者…

Tailwind 4.0 即将到来:前端开发的“速度与激情”

随着前端开发技术的不断进步&#xff0c;我们每天都在寻找更快、更简洁的解决方案来提升我们的开发效率和用户体验。今天&#xff0c;我要为大家介绍一项令人振奋的新技术进展——Tailwind 4.0的来临&#xff01; 对于经常使用Tailwind的朋友们来说&#xff0c;这个消息无疑是激…

阿里云短信服务业务

一、了解阿里云用户权限操作 1.注册账号、实名认证&#xff1b; 2.使用AccessKey 步骤一 点击头像&#xff0c;权限安全的AccessKey 步骤二 设置子用户AccessKey 步骤三 添加用户组和用户 步骤四 添加用户组记得绑定短信服务权限 步骤五 添加用户记得勾选openApi访问 添加…

Educational Codeforces Round 162 (Rated for Div. 2) ----- E. Count Paths --- 题解

E. Count Paths&#xff1a; 题目大意&#xff1a; 思路解析&#xff1a; 根据题目中定义的美丽路径&#xff0c;我们可以发现路径只有两种情况&#xff1a; 当前结点作为起始结点&#xff0c;那我们只需要知道它的子树下有多少个相同颜色的结点&#xff0c;并且相同颜色的结…

使用 HTMX 和 Bun 进行全栈 Web 开发

将 HTMX 放在前端&#xff0c;Bun 放在后端&#xff0c;然后将它们与 Elysia 和 MongoDB 连接起来&#xff0c;形成快速便捷的技术栈&#xff0c;使开发 Web 应用程序变得轻而易举。 Bun 和 HTMX 是目前软件领域最有趣的两个事情。 Bun 是一个速度极快的一体化服务器端 JavaSc…

如何创建一个TCP多人聊天室?

一、什么是TCP&#xff1f; TCP&#xff08;Transmission Control Protocol&#xff09;是一种可靠的 面向连接的协议 &#xff0c;可以保证数据在传输过程中不会丢失、重复或乱序。 利用TCP实现简单聊天程序&#xff0c;需要客户端和服务器端之间建立TCP连接&#xff0c;并通…

MATLAB近红外光谱分析技术应用

郁磊副教授&#xff0c;主要从事MATLAB编程、机器学习与数据挖掘、数据可视化和软件开发、生理系统建模与仿真、生物医学信号处理&#xff0c;具有丰富的实战应用经验&#xff0c;主编《MATLAB智能算法30个案例分析》、《MATLAB神经网络43个案例分析》相关著作。已发表多篇高水…