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

news2024/11/28 0:39:18

LLM 是 “Large Language Model” 的简写,目前一般指百亿参数以上的语言模型, 主要面向文本生成任务。跟小尺度模型(10亿或以内量级)的“百花齐放”不同,目前LLM的一个现状是Decoder-only架构的研究居多,像OpenAI一直坚持Decoder-only的GPT系列就不说了,即便是Google这样的并非全部押注在Decoder-only的公司,也确实投入了不少的精力去研究Decoder-only的模型,如PaLM就是其中之一。那么,为什么Decoder-only架构会成为LLM的主流选择呢?

我们都知道,Transformer 模型一开始是用来做 seq2seq 任务的,所以它包含 Encoder 和 Decoder 两个部分;他们两者的区别主要是,Encoder 在抽取序列中某一个词的特征时能够看到整个序列中所有的信息,即上文和下文同时看到;而 Decoder 中因为有 mask 机制的存在,使得它在编码某一个词的特征时只能看到自身和它之前的文本信息。

一、Encoder 的低秩问题

LLM之所以主要都用Decoder-only架构,除了训练效率和工程实现上的优势外,在理论上是因为Encoder的双向注意力会存在低秩问题,这可能会削弱模型表达能力,就生成任务而言,引入双向注意力并无实质好处。而Encoder-Decoder架构之所以能够在某些场景下表现更好,大概只是因为它多了一倍参数。所以,在同等参数量、同等推理成本下,Decoder-only架构就是最优选择了。(参考:为什么现在的LLM都是Decoder-only的架构?)

二、更好的Zero-Shot性能、更适合于大语料自监督学习

首先,对 encoder-decoder 与 decoder-only 的比较早已有之。咱们先把目光放放到模型参数动辄100B之前的时代,看看小一点的模型参数量下、两个架构各有什么优势——Google Brain 和 HuggingFace联合发表的 What Language Model Architecture and Pretraining Objective Work Best for Zero-Shot Generalization? 曾经在5B的参数量级下对比了两者性能。

NLP论文速读:探索语言模型的最佳架构和训练方法[ICML’22 × 2]

论文最主要的一个结论是:decoder-only 模型在没有任何 tuning 数据的情况下、zero-shot 表现最好,而 encoder-decoder 则需要在一定量的标注数据上做 multitask finetuning 才能激发最佳性能。 而目前的Large LM的训练范式还是在大规模语料上做自监督学习,很显然,Zero-Shot性能更好的decoder-only架构才能更好地利用这些无标注数据。此外,Instruct GPT在自监督学习外还引入了RLHF作辅助学习。RLHF本身也不需要人工提供任务特定的标注数据,仅需要在LLM生成的结果上作排序。虽然目前没有太多有关RLHF + encoder-decoder的相关实验,直觉上RLHF带来的提升可能还是不如multitask finetuning,毕竟前者本质只是ranking、引入监督信号没有后者强。

三、大数据训练+大参数模型的涌现能力替代了multitask finetuning

前面说到,5B参数量+170B token 数据量时,在做 multitask finetuning 后 encoder-decoder 相比 decoder-only 反而在新任务(zero-shot)上会有一定的优势。那么,在参数量再上一个台阶后,我们知道了LLM大模型表现出了涌现能力 (emergent abilities)。关于涌现能力,爱丁堡大学的Yao Fu博士有一篇很好的博客详细阐述:

A Closer Look at Large Language Models Emergent Abilities

简言之,在模型参数量足够大时,模型的能力提升不再遵守以往的log-linear的提升法则,而是突然急速增强性能。
在这里插入图片描述

我们迄今还没有办法解释涌现能力为何出现。涌现能力的一个表现是,参数量达到一定量级后,模型具有了"复杂的推理能力"——譬如从非结构化的文本中自动地提取结构化的知识。

那么,LLM也可以自动地从大数据里面做 “self multitask finetuning”。具体来讲,大数据里面本身天然蕴含了许多任务:比如 双语网页数据-机器翻译、论文(摘要+正文)数据-文本摘要、维基百科数据-命名实体识别等等。

因此,对于常见的NLP任务、LLM可以视为已经self finetuning过了;对于复杂问题,LLM的推理能力可以把这些问题转换成几个基本任务的”和“。譬如Closed-book question-answering任务,模型可以将其转换为 Knowledge Graph Completion + Reading Comprehension + Question Answering的组合。

由此,encoder-decoder在multitask finetuning上的优势在大参数量时被LLM的推理能力给拉平了。

四、In-context learning 对 LLM 有 few-shot finetune 的作用

最后,在实际使用LLM时,我们经常会加入 Chain-of-Thought 或者 In-Context (在in-context learning中,模型不根据下游任务调整参数,而是将下游任务的输入输出接起来之后作为prompt,引导模型根据测试集的输入生成预测结果。该方法的表现可以大幅超越零监督学习,并给大模型高效运用提供了新的思路。)信息来作为prompt进一步激发模型潜力——例如加入一些例句让GPT类模型来模仿、生成更好的结果。

近期有论文指出In-Context信息可以视为一种task finetuning

Why Can GPT Learn In-Context? Language Models Implicitly Perform Gradient Descent as Meta-Optimizers

论文的数学推导是定性的,大体上是将prompt信息归为对Transformer Attention层参数的微调。

按照这篇论文的思路,decoder-only 的架构相比 encoder-decoder 在 In-Context 的学习上会更有优势,因为前者的 prompt 可以更加直接地作用于 decoder 每一层的参数,微调信号更强。也因此,更适合 ChatGPT 这类开放域的对话模型作为基础模型。同理,在总数据量少的情况下,In-Context + Decoder-only 也更具有 few-shot 的优势——Google近期的论文在机器翻译上也观察到了类似现象,即中等量的单语数据+大模型+In context就能学习出很好的翻译效果:
NLP论文阅读:大语言模型的few-shot或许会改变机器翻译的范式

五、目标函数

GPT 模型选择了 Decoder,也正是因为 GPT 的预训练目标函数选取的是标准的语言模型目标函数,使得模型在预测某一个词的时候只考虑上文信息而不参考下文。

BERT 在预训练的时候选择的不是标准的语言模型作为目标函数,而是一种 MLM 的掩码语言模型, 也就是在预测句子中某一个词的时候可以同时看到它前后的所有上下文信息,类似于一种完形填空任务,所以 BERT 选择的是 Transformer 的编码器模块。

Decoder 选择的是一个更难的目标函数,它是根据前面的信息去预测下文,预测未来肯定是比完形填空难度要更大的。这也能从某种程度上解释了为什么相同规模的 GPT 和 BERT 模型,GPT 的效果要比 BERT 差。但是从另一个角度去想,如果能够把预测未来这个事情做好的话,它最终所能达到的效果的天花板一定是更高的,这可能也是 OpenAI 从一开始到现在一直坚持使用标准语言模型目标函数来做预训练模型的其中一个原因吧,当然这只是一种猜想。事实证明,从 GPT-3 开始,到最近的 ChatGPT,OpenAI 所取得的令人惊艳的效果也一定程度上证明了他们的选择的正确性。

六、更高的上限和多样性

模型在scale up之后,尤其是加上instruction tuning之后,其他架构能做的 decoder-only 模型也都能做了(比如一众NLU任务),同时还有更高的上限和多样性(NLG)。

七、总结

总而言之,decoder-only 在参数量不太大时就更具有更强的zero-shot性能、更匹配主流的自监督训练范式;而在大参数量的加持下,具有了涌现能力后、可以匹敌encoder-decoder做finetuning的效果;在In Context的环境下、又能更好地做few-shot任务。

decoder-only 架构符合传统的 Language Model 的模式。 前几年 encoder-decoder 模型的火爆更多是依赖于在特定标注数据上的训练——比如Transformer论文中经典的WMT机器翻译任务。

八、encoder-decoder的未来

在未来,Large Language Model+自监督训练应该还是会继续采用 decoder-only 的架构。encoder-decoder有两个特点可能会使得它在以下两类任务上有优势:

  • encoder 的多样性。许多多模态工作(BLIP、ALBEF、SimVLM)上可以看见 encoder-decoder的影子,因为encoder 可以用来 encoder 多种模态的信息,而decoder-only的多模态工作相对较少(微软近日的visual-ChatGPT更多偏向模型级联pipeline)。
  • Deep Encoder+Shallow Decoder的推理优势。Encoder-decoder架构本来在计算效率上(以FLOPs衡量)就是优于其他LM的,且工业界目前常使用Deep Encoder+Shallow Decoder的组合,由于encoder本身并行度高,这类encoder-decoder的infer速度远超大型的decoder-only。在有较多标注数据的任务上,encoder-decoder还是具有成本优势的。

参考:
为什么现在的LLM都是Decoder-only的架构?
为什么现在的LLM都是Decoder only的架构?

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

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

相关文章

RobotFrameWork环境搭建及使用

RF环境搭建 首先安装python并且配置python环境变量pip install robotframeworkpip install robotframework-ride 生产桌面快捷方式 不行换豆瓣源检查一下pip list RF类库和扩展库 标准库 按F5快捷键查询,可以看到rf自带的库不需要额外安装这些标准库在python的 …

ai智能写作软件哪个好-AI智能写作软件的类型标准

AI智能写作软件能做什么? 节省时间:手动撰写文章和内容可能会非常耗时,而AI智能写作软件可以帮助我们快速生成文字,节省大量时间和精力。 增加生产力:对于内容创作者、营销人员和企业来说,高效地生成文章…

【独家】电视盒子哪个牌子最好?老烧力荐目前性能最强的电视盒子

电视盒子是电视机的最佳拍档,仅需几百元就能让电视机升级换代,身边朋友在挑选电视盒子时不知道电视盒子哪个牌子最好会咨询我的意见,下面我将介绍发烧友们最爱的目前性能最强的电视盒子,如果你近期也想购入电视盒子,记…

sourcetree 配置 gitlab ssh及公钥私钥设置

参考链接:Mac sourcetree 配置 ssh 密钥 - 简书 1.打开sourcetree --新建--从URL克隆,复制你项目的ssh 链接添加进去,如果没有配置就会提示: 这是一个无效的源路径/URL 2.打开sourcetree的设置 3.账户--添加 4.如图输入&#xf…

poi判断excel单元格内容是否为日期

通过cell.getCellType()拿到单元格的数据类型,CellType是一个枚举类型详情如下,能够看到并没有日期类型的code,poi读取到的日期类型的单元格时会认为是NUMERIC类型,然后,poi提供了HSSFDateUtil.isCellDateFormatted(ce…

SEO方案尝试--Nuxtjs项目基础配置

Nuxtjs 最新版 Nuxt3 项目配置 安装nuxtjs 最新版 Nuxt3 参考官网安装安装插件安装ElementPlus页面怎么跳转,路由怎么实现 安装nuxtjs 最新版 Nuxt3 参考官网安装 安装插件 安装ElementPlus 安装 Element Plus 和图标库 # 首先,使用以下命令安装 Eleme…

运用贪心算法实现卡牌游戏-2023年全国青少年信息素养大赛Python复赛真题精选

[导读]:超平老师计划推出《全国青少年信息素养大赛Python编程真题解析》50讲,这是超平老师解读Python编程挑战赛真题系列的第18讲。 全国青少年信息素养大赛(原全国青少年电子信息智能创新大赛)是“世界机器人大会青少年机器人设…

Leetcode 01-算法入门与数组-③数组排序

LeetCode 01-算法入门与数组-③数组排序 一. 冒泡排序 1. 冒泡排序算法思想 冒泡排序(Bubble Sort)基本思想: 经过多次迭代,通过相邻元素之间的比较与交换,使值较小的元素逐步从后面移到前面,值较大的元素…

Spring MVC常见面试题

Spring MVC简介 Spring MVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。简单来说,Spring MVC整合了前端请求的处理及响应。 Servlet 是运行在 Web 服务器或应用…

玩转Nginx

Nginx是什么 Nginx(engine x)是一款的Web服务器、反向代理服务器,能够实现前端Web应用的部署、请求反向代理及负载均衡处理等功能。 特点 轻量,占用内存少高可靠高并发、高性能可扩展性好支持热部署BSD许可证(开源、可修改再发…

药品销售数据分析报告(报告资源-干货篇)

药品分析报告包含了药品研究分析报告、药品审评分析报告、药品市场分析报告、药品专利分析报告、药品上市分析报告、药品原料药分析报告、药品立项分析报告、药品投融资分析报告......所以我们在写作药品分析报告之前一定要明确需求者目的,如此方能针对核心内容进行…

Springboot登录验证的统一拦截处理

在进行Springboot项目开发的时候如何把每次请求都要验证的用户进行提取拦截统一处理 背景 如果不进行统一的拦截处理,其实这是一个非常痛苦的一件事情,因为每次用户请求你都要去进行用户的信息(用户信息存储在session中)的验证&…

【算法练习Day2】有序数组的平方长度最小子数组螺旋矩阵II

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 有序数组的平方暴力求解…

2023/9/20总结

maven maven本质是 一个项目管理工具 将项目开发 和 管理过程 抽象成 一个项目对象模型(POM) POM (Project Object Model) 项目对象模型 作用 项目构建 提供标准的自动化 项目构建 方式依赖管理 方便快捷的管理项目依赖的资源…

【SpringBoot项目】SpringBoot+MyBatis+MySQL电脑商城

在b站听了袁老师的开发课,做了一点笔记。 01-项目环境搭建_哔哩哔哩_bilibili 基于springboot框架的电脑商城项目(一)_springboot商城项目_失重外太空.的博客-CSDN博客 项目环境搭建 1.项目分析 1.项目功能:登录、注册、热销商品、用户管…

2023年8月京东户外鞋服市场(京东数据运营)

当前,户外活动的热潮使得户外鞋服市场备受青睐,带动了整个市场的高增长。 根据鲸参谋电商数据分析平台的相关数据显示,今年8月份,京东平台户外鞋服市场的销量为46万,同比增长约25%;销售额为9500万&#xf…

视觉检测系统可以检测太阳能电池片哪些方面的缺陷?

近年来,随着全球工业化进程的不断加快,能源与环境危机成为一个亟待解决的问题。为此,太阳能作为一种清洁可再生的能源,现已被广泛应用于各领域。太阳能电池片作为太阳能转换为电能的核心载体,其质量的好坏决定着电能的…

Cannot find module ‘core-js/modules/es6.regexp.constructor‘

npm run dev 之后报如下错误 解决方法:npm install core-js2 如果超时或者下载时间慢可以尝试 用cnpm install core-js2

【送书】实现可观测性平台的技术要点是什么?

文章目录 实现可观测性平台的技术要点是什么?兼容全域信号量所谓全域信号量有哪些?统一采集和上传工具统一的存储后台自由探索和综合使用数据总结 实现可观测性平台的技术要点是什么? 随着可观测性理念的深入人心,可观测性平台已经开始进入了落地阶段…

爸妈让我放弃百度,选择东软

作者:阿秀 InterviewGuide大厂面试真题网站:https://top.interviewguide.cn 这是阿秀的第「305」篇原创 小伙伴们大家好,我是阿秀。 目前已经是九月下旬了,秋招已经进入中后期了,很多公司已经开启秋招有一段时间了&…