因果语言模型、自回归语言模型、仅解码器语言模型都是同一类模型

flyfish

因果语言模型(causal Language Models)
自回归语言模型(autoregressive language models)
仅解码器语言模型(decoder-only language models)

这三个词虽然说的是同一类模型,但为啥会有三个名字?其实是因为研究者从不同角度给它起的——有的从数学逻辑,有的从生成方式,有的从模型结构。

因果语言模型

早年间(2010年以前),研究语言模型的人就发现:生成句子时,后面的词只能由前面的词决定(比如“我吃饭”里,“饭”只能跟着“吃”后面)。这就像“因果关系”——前面是“因”,后面是“果”,没法反过来。但那时候没明确叫“因果”,只是默默按这个逻辑做模型。

2017年,有篇很重要的论文(《Attention Is All You Need》)提出了“Transformer”这个模型框架。里面有个关键技术:给模型加了个“挡板”(专业叫“因果掩码”),让模型算词的时候,只能看到前面的词,看不到后面的。比如算“饭”的时候,只能看到“我”和“吃”,后面的词哪怕已经写好了,也故意挡着不让看。这一下就把“前面决定后面”这个模糊的逻辑,变成了模型里实实在在的规则。

后来GPT系列火了,大家需要一个词来形容这种“只能看前面”的模型。2019年,OpenAI在论文里第一次明确用了“因果语言模型”这个说法,意思就是“模型学的是‘根据前面的词猜下一个词’”。这名字就慢慢传开了。

主要是研究理论的时候用。比如讨论“模型是怎么算概率的”:有的模型能看前后所有词(比如BERT),算的是“某个词在整句话里的概率”;而因果模型只能看前面,算的是“某个词在前面词之后的概率”。又比如解释“为啥模型训练时能一批处理好多词,生成时却得一个一个来”——因为“因果”规则要求必须按顺序,前面的没确定,后面的就没法算。

自回归语言模型

为啥叫“自回归”?因为“自己生成的词,自己接着往下说”
这个词的老家在统计学,几十年前就有了。比如预测明天的气温,不用看湿度、风力,就用过去7天的气温来猜——这就叫“自回归”:“自”是“自己的过去”,“回归”是“用过去猜未来”。
“自” 与 “回归” 的数学溯源

  1. “自”(Auto-):自我引用,用自身历史预测未来
    希腊语前缀 “auto-”,意为 “自我”(self)。在自回归模型中,“自” 特指用变量自身的历史值作为预测依据。
    预测明天的气温,不依赖外部因素(如湿度、气压),仅根据过去 7 天的气温值。

  2. “回归”(Regression):向均值靠拢的统计关系
    19 世纪英国统计学家高尔顿(Francis Galton)提出 “回归均值”(regression toward the mean),指身高异常的父母,子女身高更可能接近平均水平。
    在现代统计学中,“回归” 泛指通过已知变量预测目标变量的函数关系(如线性回归 y=wx+b)。

后来这个思路被用到了语言模型上。2010年左右,RNN这类模型火了,它们生成句子的逻辑就是“接龙”:先用“我”猜“吃”,再用“我吃”猜“饭”,再用“我吃饭”猜“了”……每一步都用自己刚生成的词当素材,接着往下说。这种“自己生成的内容再当输入”的方式,就被叫做“自回归生成”。

早期的生成模型(比如翻译模型)基本都这么干。直到后来出现了“非自回归模型”(比如一次性生成一整句话),大家才更明确地用“自回归”来称呼这种“接龙式”的生成方式。不过要注意:早期的自回归模型可能偶尔会“偷看”后面的词(没加那个“挡板”),直到Transformer加了“因果掩码”,才让“自回归”和“只能看前面”严格绑在了一起。

主要是说生成算法的时候用。比如讨论“怎么让模型生成的句子更靠谱”:可以一次保留几个候选(beam search),或者随机选一个(采样)——这些方法都只适合自回归模型,因为它们都是“一个一个词生成”的。又比如比较模型训练效率:自回归模型得算每个词的“猜对概率”,而非自回归模型算的是“整句话对不对”,这时候就会用“自回归”来区分。

仅解码器语言模型

Transformer框架,它原本有两个核心零件:

  • 编码器:能同时看一句话的前后所有词(比如读“我喜欢苹果”,“苹果”能看到“我”和“喜欢”),适合理解句子意思;
  • 解码器:只能看前面的词(比如读“我喜欢苹果”,“苹果”只能看到“我”和“喜欢”),原本是配合编码器用的(比如翻译时,编码器先理解原文,解码器再生成译文)。

2018年,OpenAI做了个大胆尝试:他们搞了个叫GPT-1的模型,直接把编码器扔了,只留了解码器。结果发现,就靠这一半零件,不仅能生成句子,还能理解意思,而且参数更少、更高效。

后来模型越来越多:有只用编码器的(比如BERT),有编码器解码器都用的(比如T5),还有像GPT-1这样只留解码器的。为了区分这三种,大家就给GPT这类模型起了个名:“仅解码器语言模型”。

选模型、聊工程实现的时候用。比如:
分类模型时会说:“BERT是编码器模型,T5是编码器-解码器模型,GPT是仅解码器模型”;
分析性能时会说:“仅解码器模型参数更集中(全堆在解码器上),处理长文本更厉害(不会被后面的词干扰),训练时随便给一堆文章就行(不用成对的原文和译文)”;
部署模型时会说:“聊天机器人用仅解码器模型更快,因为不用先让编码器处理输入,直接就能从一句话开始生成”。

这三个词并存是因为研究者关心的点不一样:
“因果语言模型”是从数学逻辑角度说的:强调“前面决定后面”的规则;
“自回归语言模型”是从生成方式角度说的:强调“接龙式生成”的过程;
“仅解码器语言模型”是从模型结构角度说的:强调“只留了解码器”的零件。

关键时间线捋一捋

  • 2010年左右:RNN语言模型火了,已经在用“自回归”的方式生成,但“因果”只是默默遵守的规则,还没有“仅解码器”这个说法;
  • 2017年:Transformer论文提出“因果掩码”,解码器第一次有了严格“只看前面”的能力,但解码器还得配合编码器用;
  • 2018年:GPT-1第一次只用了解码器,“仅解码器模型”诞生,OpenAI开始在论文里提“因果语言模型”的训练目标;
  • 2019年:BERT(编码器模型)和GPT(仅解码器模型)对比火了,“仅解码器”这个词开始传开,也就更清楚“自回归”和“非自回归”的区别;
  • 2023年:GPT-4这类仅解码器模型成了主流,能处理超长文本,证明了这种结构的优势,三个词也成了常用词。

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

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

相关文章

jvm架构原理剖析篇

简单题(5道) 考查内容:JVM运行时数据区域 题干:Java虚拟机栈的主要作用是? A. 存储对象实例 B. 存储方法调用和局部变量 C. 存储静态字段 D. 存储字节码指令 正确答案:B 解析:虚拟机栈用于存储方…

智链万物:人工智能驱动的产业智能化革命

当生成式AI在艺术与创意领域掀起风暴,大型语言模型重塑信息交互方式时,一场更为基础、影响更为深远的变革,正在全球实体经济的根基处悄然发生并加速推进——这就是产业智能化。它并非简单的“机器换人”,而是人工智能(…

python中上下文管理器 与 try finally有什么区别

目录 主要区别代码对比何时使用哪种方式 主要区别 语法简洁性 上下文管理器使用 with 语句,语法更简洁优雅try-finally 需要显式编写异常处理代码,更冗长 代码复用性 上下文管理器可以封装为类或函数,便于在多处复用try-finally 通常需要在每…

人体属性识别+跌倒检测:儿童行为监测与安全升级

智慧幼儿园的AI智能检测盒应用实践 背景:传统园区管理的三大痛点 传统幼儿园管理长期面临三大核心挑战:一是安全监控依赖人工巡查,存在视觉盲区与响应延迟,如某连锁幼儿园曾因人工巡查疏漏,导致3起儿童跌倒事故未能及…

【ESP32-IDF笔记】09-UART配置和使用

环境配置 Visual Studio Code :版本1.98.2 ESP32:ESP32-S3 ESP-IDF:V5.4 支持型号:ESP32、ESP32-C2、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-C61、ESP32-H2、ESP32-P4、 ESP32-S2、ESP32-S3 简介 通用异步接收器/发送器 (UART) …

在 .NET Core 和 React 中使用 WebSockets 和 SignalR 进行实时数据传输

对于需要即时更新和通知的应用程序来说,实时数据传输至关重要。在 .NET Core 中,WebSocket 和 SignalR 提供了强大的工具来实现客户端和服务器之间的实时通信。在本指南中,我们将探讨如何在 .NET Core 应用程序中使用 WebSocket 和 SignalR 实…

第八十六篇 大数据排序算法:从厨房整理到分布式排序的智慧

目录一、基础排序算法:生活场景中的计算智慧1.1 冒泡排序:图书馆的书籍整理1.2 插入排序:厨房调料的整理艺术二、高效排序算法:大数据处理的利器2.1 快速排序:音乐APP的智能歌单2.2 归并排序:学校成绩单的合…

开源 | V3.1.1慧知开源重卡运营充电桩平台 - 重卡运营充电桩平台管理解决方案;企业级完整代码 多租户、模拟器、多运营商、多小程序;

【开源免费版】推荐一套企业级开源充电桩平台:完整代码包含多租户、硬件模拟器、多运营商、多小程序,汽车 电动自行车、云快充协议;——(慧哥)慧知开源充电桩平台;https://liwenhui.blog.csdn.net/article/details/148242725?spm…

ONLYOFFICE 协作空间 企业版使用秘籍-8.使用虚拟数据房间,处理机密文档更安全

在当今快节奏的社会中,信息已成为极其关键的资源,因此,保护敏感数据至关重要。ONLYOFFICE 协作空间中的虚拟数据房间(VDR)提供了一个安全便捷的工作空间,确保文档受到严密保护的同时,也能实现轻…

系统架构设计师论文分享-论软件架构复用

我的软考历程 摘要 2023年2月,我所在的公司通过了研发纱线MES系统的立项,该项目为国内纱线工厂提供SAAS服务,旨在提升纱线工厂的数字化和智能化水平。我在该项目中担任架构设计师,负责该项目的架构设计工作。本文结合我在该项目…

虚拟主机与独立服务器如何选择

在搭建和维护网站时,选择合适的服务器套餐至关重要。虚拟主机和独立服务器是两种常见的选择,它们各有优缺点,适用于不同需求的用户。本文将深入探讨这两种服务器类型的特点,以帮助您为您的网站选择最合适的服务器解决方案。虚拟主…

NFC的安全技术体系

NFC(近场通信)技术因广泛应用于移动支付、身份认证、门禁控制等敏感场景,其安全技术体系是保障用户数据与交易安全的核心。该体系涵盖数据传输安全、存储安全、身份认证、防攻击机制等多个维度,通过硬件隔离、加密算法、协议规范等…

Echarts3D柱状图-圆柱体-文字在柱体上垂直显示的实现方法

全部代码 <!DOCTYPE html> <html lang"en" style"height: 100%"> <head><meta charset"utf-8"><title>3D柱状图-圆柱体-文字竖排</title> </head> <body style"height: 100%; margin: 0"…

【算法训练营Day08】字符串part2

文章目录 反转字符串里的单词右旋字符串KMP算法双指针法总结 反转字符串里的单词 题目链接&#xff1a;151. 反转字符串中的单词 双指针法解题逻辑 head指针遍历字符串遍历到单词首单词&#xff0c;生成end指针移动到单词尾部遇到完整单词收集&#xff0c;压入栈中head指针移动…

如何使用backtrace定位Linux程序的崩溃位置

在嵌入式Linux开发中&#xff0c;特别是复杂软件&#xff0c;多人协作开发时&#xff0c;当某人无意间写了一个代码bug导致程序崩溃&#xff0c;但又不知道崩溃的具体位置时&#xff0c;单纯靠走读代码&#xff0c;很难快速的定位问题。 本篇就来介绍一种方法&#xff0c;使用…

十大排序算法汇总

好的&#xff0c;下面为你整理一篇面试全覆盖、极其深入的十大排序算法总结博客&#xff0c;涵盖算法原理、复杂度、稳定性、应用场景、工程实践、C与Python实现&#xff08;含详细注释&#xff09;&#xff0c;并对比分析各种排序的优缺点与适用情境。内容力求结构清晰、讲解透…

零基础 “入坑” Java--- 七、数组(二)

文章目录 一、数组转字符串二、数组的拷贝三、求数组中元素的平均值四、查找数组中指定元素&#xff08;顺序查找&#xff09;五、数组排序&#xff08;冒泡排序&#xff09;六、查找数组中指定元素&#xff08;二分查找&#xff09;七、判断两个数组中的元素是否相等八、填充数…

【C++ 真题】P1104 生日

P1104 生日 题目描述 cjf 君想调查学校 OI 组每个同学的生日&#xff0c;并按照年龄从大到小的顺序排序。但 cjf 君最近作业很多&#xff0c;没有时间&#xff0c;所以请你帮她排序。 输入格式 输入共有 n 1 n 1 n1 行&#xff0c; 第 1 1 1 行为 OI 组总人数 n n n&…

Oracle DB和PostgreSQL,OpenGauss主外键一致性的区别

针对于unique索引在主外键上的表现&#xff0c;o和PG的行为确实不一致&#xff0c;测试样例&#xff1a;PG:测试1&#xff1a;test# CREATE TABLE gdb_editingtemplates ( objectid INTEGER NOT NULL, globalid VARCHAR(38) DEFAULT {00000000-0000-0000-0000-000000000000} …

06.自动化测试概念

自动化测试概念 1. 自动化1.1 回归测试1.2 自动化分类 1.3 自动化测试金字塔2. web自动化测试3.Selenium 1. 自动化 ​ **自动化测试&#xff08;Automated Testing&#xff09;&#xff1a;**是指使用软件工具或脚本来自动执行测试任务&#xff0c;代替人工进行重复性、繁琐的…