当前位置: 首页 > news >正文

大语言模型架构设计

【大模型慢学】GPT起源以及GPT系列采用Decoder-only架构的原因探讨 - 知乎本文回顾GPT系列模型的起源论文并补充相关内容,中间主要篇幅分析讨论为何GPT系列从始至终选择采用Decoder-only架构。 本文首发于微信公众号,欢迎关注:AI推公式最近ChatGPT系列越来越火爆,不只在计算机圈内,其…https://zhuanlan.zhihu.com/p/625184011为什么现在的LLM都是Decoder only的架构? - 知乎相比encoder-decoder架构,只使用decoder有什么好处吗?https://www.zhihu.com/question/588325646/answers/updatedGPT本质是文字接龙。

目前公认的大语言模型具有zero-shot泛化能力,但是大模型各种各样,从模型架构到预训练目标差异巨大,因此通过排列组合来做对比实验。上图就是模型架构、预训练目标、adaptation、multitask finetuning四个变量的排列组合。

训练LM的架构包括:

encoder-decoder,T5,ED。

decoder-only,GPT,主流是causal decoder,简称CD,只有前向注意力。

prefix LM:采样一段文本,然后选择一个随机点将其拆分为前缀和目标部分,前缀作为输入,目标作为输出。又叫non-causal decoder-only,简称ND,输入的前一部分是双向注意力,后一部分是单向注意力。

预训练目标

full language modeling,FLM,完整的一段话从头到尾基于上文预测下一个token,GPT系列,和CD搭配。

prefix language modeling,PLM,一段话分成两部分,前一部分作为输入,预测后一部分,和ED,ND搭配。

masked language modeling,MLM,训练bert时的完形填空,遮盖住文本中一部分token,让模型通过上下文猜测遮盖部分的token,可以像T5一样将任务改造成text2text形式,input和target都是一段文本,可以适配ND和ED,如果将input和target拼接起来,就可以适配CD。

adaptation:

对大模型进行改造,比如T5的预训练目标是MLM,不是一个很好的生成模型,把目标改成PLM或FLM,继续训练,和微调不同,再次训练用的数据不是下游数据,而是额外的无监督文本数据。FLM预训练的CD模型,通过切换掩码变成ND模型,在通过MLM目标改造,可以用于完形填空,前者交language modeling adaptation(LM-A),后者称为non-causal MLM adaptation(NC-A)。

multitask finetuning:

多任务微调,在一百多个已知任务的prompt数据做微调,能极大提升预训练模型在未知任务上的zero-shot能力。

结论:

1.如果大模型只做无监督预训练,CD+FLM的zero-shot效果最佳。

2.无监督预训练+multitask finetuning,ED+MLM效果最佳。

3.CD+FLM获得最佳语言模型,进过ND MLM adaptation,再通过multitask,效果最佳。

为什么只用decoder-only?

苏建林:理论上encoder的双向注意力会存在低秩,带来表达能力下降,decoder-only的attention是满秩的,encoder-decoder在某些场景更好,大概只是因为其多了一倍参数。

http://www.lryc.cn/news/69301.html

相关文章:

  • SpringBoot整合Swagger2,让接口文档管理变得更简单
  • socket | 网络套接字、网络字节序、sockaddr结构
  • golang-websocket
  • Nginx + fastCGI 实现动态网页部署
  • 精彩回顾 | Fortinet Accelerate 2023·中国区巡展厦门站
  • ChatGPT 和对话式 AI 的未来:2023 年的进展和应用
  • Nginx配置WebSocket(WS)和WebSocket Secure(WSS)的完整指南
  • 链表--part 1--链表基础理论(概括)
  • 【V2G】电动汽车接入电网优化调度研究(Matlab代码实现)
  • Excel中时间戳与标准日期格式的互相转换
  • 【Kafka集群】Kafka针对用户做ACL权限控制
  • 国内外数据安全治理框架介绍与分析
  • 【Nodejs】使用Nodejs搭建HTTP服务,并实现公网远程访问
  • 面试题之介绍自己测试的项目,担任的角色和做出的成果
  • HTB靶机012-Valentine-WP
  • 微信小程序nodejs+vue社区居民健康服务系统uniapp
  • 尝试探索水下目标检测,基于yolov5轻量级系列模型n/s/m开发构建海底生物检测系统
  • 大数据Doris(二十四):Doris数据Insert Into导入方式介绍
  • macOS Ventura 13.5beta (22G5027e)发布
  • 基于SpringBoot的财务管理系统的设计与实现
  • 使用OpenCV进行肺炎诊断检测
  • 北华大学第九届程序设计竞赛 题解
  • 【Java算法题】剑指offer_01数据结构
  • 最简单配置jenkins容器使用宿主机的docker方法
  • Android aidl及binder基础知识巩固
  • [日记]LeetCode算法·二十五——二叉树⑤ AVL树(插入+删除)附代码实现
  • flink-1.13.6 例子
  • Go语音基于zap的日志封装
  • 可持续能源技术具有改变世界的潜力,并且已经在多个方面展现出积极的影响。
  • Java常用工具之StringUtils类