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.rhkb.cn/news/294326.html

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

相关文章

【漏洞复现】HIKVISION 联网网关userInfoData.php 接口处敏感信息泄露漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

前端、后端上传文件到OSS,简明记录

前端、后端上传文件到OSS,简明记录 上传文件到oss的方式: **后端上传:**文件先要从页面上传到后端存起来,再通过后端发送到oss,然后后端将存起来的文件删除(当然可以不删)。 **前端上传&…

ArcGIS Pro怎么进行挖填方计算

在工程实施之前,我们需要充分利用地形,结合实际因素,通过挖填方计算项目的标高,以达到合理控制成本的目的,这里为大家介绍一下ArcGIS Pro中挖填方计算的方法,希望能对你有所帮助。 数据来源 教程所使用的…

SpringCloud学习(1)-consul

consul下载安装及使用 1.consul简介 Consul是一种开源的、分布式的服务发现和配置管理工具,能够帮助开发人员构建和管理现代化的分布式系统。它提供了一套完整的功能,包括服务注册与发现、健康检查、KV存储、多数据中心支持等,可以帮助开发人…

linux shell命令(进程管理、用户管理)

一、进程的概念 主要有两点: 1.进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)…

用Servlet实现一个简单的表白墙

1. 准备工作 创建项目,引入依赖...... 将静态页面放到项目中(放在webapp目录下): 当前,这个表白墙页面,已经可以输入内容,点击提交之后也能显示内容,后续后端要做的工作即: ①存档 用户点提交的时候,把刚才输入的内容通过网络传输给服务器,由服务器保存这个数据. ②读档 …

计算机网络(第八版)-第1章课后习题参考答案

计算机网络(第八版)-第1章课后习题参考答案 本文是对自己之前文章的格式化:https://blog.csdn.net/qq_46396470/article/details/132788972?spm1001.2014.3001.5502 T1-01 计算机网络向用户可以提供哪些服务? 连通性和共享 ,例如音频&…

微信小程序开发【从入门到精通】——页面导航

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

JavaSE——面向对象高级三(5/5)-泛型方法、泛型的通配符、泛型擦除和注意事项

目录 泛型方法 泛型的通配符 泛型擦除和注意事项 泛型方法 修饰符 <类型变量,类型变量,...> 返回值类型 方法名(形参列表){ } public static <T> void test(T t){} 注意&#xff1a;下面这种不是泛型方法 public E get(int index){return (E) arr[index]; } 具体…

RTOS中临界区嵌套保护的实现原理(基于RT-Thread)

0 前言 什么是临界区&#xff08;临界段&#xff09;&#xff1f; 裸机编程中由于不涉及线程和线程切换&#xff0c;因此没有临界区这一个概念。在RTOS中由于存在线程切换等场景&#xff0c;便有了临界区这个概念。简单来说&#xff0c;临界区就是不允许被中断的代码区域。什么…

代码随想录算法训练营第39天|62.不同路径 |63. 不同路径 II

代码随想录算法训练营第39天|62.不同路径 |63. 不同路径 II 详细布置 62.不同路径 本题大家掌握动态规划的方法就可以。 数论方法 有点非主流&#xff0c;很难想到。 https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84.html 视频讲解&#xff1a;https…

网络钓鱼升级 Darcula如何窃取用户信息

近日&#xff0c;网络安全领域一种名为 “Darcula” 的网络钓鱼欺诈&#xff08;PhaaS&#xff09;悄然兴起。这种新型钓鱼方式不同于传统的手段&#xff0c;它巧妙地利用了谷歌信息和 iMessage 的富通信服务&#xff08;RCS&#xff09;&#xff0c;成为了网络犯罪分子的新手段…

dockerfile制作-pytoch+深度学习环境版

你好你好&#xff01; 以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 文档内容docker相关术语docker常用命令容器常用命令根据dockerfile创建容器dokerfile文件内容 docker问题&#xff1a;可能的原因和解决方法示例修改修改后的D…

vscode调试Unity

文章目录 vscode调试UnityC#环境需求开始调试 Lua添加Debugger环境配置联系.txt文件配置Java环境 添加调试代码断点不生效的问题 vscode调试Unity C# 现在使用vscode调试Unity的C#代码很简单&#xff0c;直接在vscode的EXTENSIONS里面搜索“Unity”&#xff0c;第一个就是&am…

YOLOv8改进 | 细节涨点篇 | 利用YOLOv8自带的RayTune进行超参数调优

一、本文介绍 本文给大家带来的改进机制是利用Ray Tune进行超参数调优,在YOLOv8的项目中目前已经自带了该超参数调优的代码,我们无需进行任何的改动,只需要调用该方法输入我们的一些指令即可,当然了,这些超参数的设置还是比较又学问的,本文的内容也是应群友的需求进行发…

研发设计人员能力级别定义

研发设计人员能力&级别定义 1. 源由2. 级别定义3. 级别能力3.1 助理工程师3.1.1 工作内容3.1.2 级别晋升3.1.3 详细描述 3.2 初级工程师3.2.1 工作内容3.2.2 级别晋升3.2.3 详细描述 3.3 高级工程师3.3.1 工作内容3.3.2 级别晋升3.3.3 详细描述 3.4 资深工程师3.4.1 工作内…

【Entity Framework】EF中的增删改查

【Entity Framework】EF中的增删改查 文章目录 【Entity Framework】EF中的增删改查一、概述二、DbContext数据上下文三、EntityState五个状态值四、EF添加数据4.1 EF Add方式4.2 EF 通过改变对象的状态为 Added4.3 调用方sql4.4 调用存储过程 五、EF修改数据5.1 不查询数据库&…

仿真黑科技EasyGo DeskSim 2022

DeskSim2022的FPGA支持多种solver的混合应用&#xff0c;对于每一种solver可以采用不同的仿真步长&#xff0c;以下图模型为例&#xff0c;模型运行在FPGA上&#xff0c;FPGA解算方式采用的是Power Electronic & FPGA Coder解算&#xff0c;其中电力电子电路部分采用了两种…

ssm013小型企业办公自动化系统的设计和开发+vue

小型企业办公自动化系统的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对小型企业办公信息管理混乱&am…

wps 开发插件

官方文档参考wps官方文档参考 1.环境安装 安装wps https://www.wps.cn/ 安装Node.js https://nodejs.org/en 安装代码编辑器 Visual Studio Code https://code.visualstudio.com/ 环境检查-进入cmd查看 node -v2.demo 2.1 demo下载 打开vscode&#xff0c;新建终端 安装…