AI 语言模型发展史:统计方法、RNN 与 Transformer 的技术演进
引言
自然语言处理(NLP)是 AI 领域的重要分支,而语言模型(Language Model, LM)是 NLP 的核心技术。语言模型经历了从 统计方法 到 RNN(循环神经网络),再到 Transformer 的演进,每一步都在提升模型的表达能力和计算效率。
本文从技术角度详细分析三种方法的核心原理、优缺点,并探讨 Transformer 如何在 AI 大模型(如 GPT-4)中发挥关键作用。
1. 统计方法(N-gram)
1.1 方法原理
统计方法基于 马尔可夫假设(Markov Assumption),认为当前词的出现仅依赖于前面 n-1 个词,而不是整个句子历史。常见的 N-gram 语言模型如下:
- Unigram(1-gram): 仅考虑每个词的单独概率 P(w)。
- Bigram(2-gram): 仅考虑当前词的前一个词 P(w_t | w_{t-1})。
- Trigram(3-gram): 仅考虑当前词的前两个词 P(w_t | w_{t-2}, w_{t-1})。
语言模型的计算方式如下:
[
P(W) = P(w_1, w_2, …, w_T) = \prod_{t=1}^{T} P(w_t | w_{t-n+1}, …, w_{t-1})
]
1.2 优缺点
✅ 优点:
- 计算简单,易于实现。
- 适用于小型数据集,能快速计算概率。
❌ 缺点:
- 长距离依赖问题:N-gram 只能考虑有限的上下文,忽略远距离词的影响。
- 数据稀疏性:高阶 N-gram 需要大量数据,罕见短语可能无统计数据。
- 无法泛化:仅能处理训练数据中见过的词汇,对新词无能为力。
2. RNN(循环神经网络)
2.1 方法原理
RNN 通过隐藏状态 h_t 记忆过去的信息,解决了 N-gram 只能处理短上下文的问题。RNN 的核心计算公式如下:
[
h_t = f(W_h h_{t-1} + W_x x_t + b)
]
[
y_t = W_y h_t + b_y
]
其中:
- ( h_t ) 是当前的隐藏状态,包含了过去的信息。
- ( W_h, W_x, W_y ) 是权重矩阵,( b ) 是偏置项。
- ( x_t ) 是输入,( y_t ) 是输出。
2.2 变体(LSTM & GRU)
(1) LSTM(长短时记忆网络)
LSTM 通过 遗忘门(Forget Gate)、输入门(Input Gate)、输出门(Output Gate) 控制信息流动,使其能够记住长期依赖信息:
[
f_t = \sigma(W_f [h_{t-1}, x_t] + b_f)
]
[
i_t = \sigma(W_i [h_{t-1}, x_t] + b_i)
]
[
o_t = \sigma(W_o [h_{t-1}, x_t] + b_o)
]
[
c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c_t}
]
[
h_t = o_t \odot \tanh(c_t)
]
其中:
- ( f_t, i_t, o_t ) 分别为遗忘门、输入门和输出门。
- ( c_t ) 是细胞状态,存储长期信息。
(2) GRU(门控循环单元)
GRU 结构比 LSTM 更简单,合并了输入门和遗忘门:
[
z_t = \sigma(W_z [h_{t-1}, x_t])
]
[
r_t = \sigma(W_r [h_{t-1}, x_t])
]
[
\tilde{h_t} = \tanh(W_h [r_t \odot h_{t-1}, x_t])
]
[
h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h_t}
]
2.3 优缺点
✅ 优点:
- 能处理任意长度的序列,比 N-gram 适应更长的上下文。
- LSTM/GRU 解决了普通 RNN 的梯度消失问题。
❌ 缺点:
- 训练速度慢,难以并行化(序列计算依赖前一步)。
- 对长序列仍存在信息遗忘问题。
3. Transformer(自注意力机制)
3.1 方法原理
Transformer 彻底抛弃了 RNN,使用 自注意力机制(Self-Attention) 计算词与词之间的关系,并行处理整个句子。
(1) 自注意力机制
给定输入序列 ( X = [x_1, x_2, …, x_n] ),我们计算每个词的 查询(Q)、键(K)、值(V):
[
Q = XW_Q, \quad K = XW_K, \quad V = XW_V
]
计算注意力权重:
[
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V
]
(2) 多头注意力
多个注意力头(Multi-Head Attention)并行计算:
[
\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, …, \text{head}_h) W_O
]
(3) 位置编码
由于 Transformer 没有 RNN 的时序结构,需要 位置编码(Positional Encoding) 引入位置信息:
[
PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d})
]
[
PE_{(pos, 2i+1)} = \cos(pos / 10000^{2i/d})
]
3.2 优缺点
✅ 优点:
- 并行计算,提高训练速度。
- 处理长序列时效果优于 RNN,没有梯度消失问题。
❌ 缺点:
- 计算量大,对硬件要求高。
- 长文本处理成本较高(注意力计算复杂度为 ( O(n^2) ))。
总结
| 方法 | 核心原理 | 优点 | 缺点 |
|---|---|---|---|
| N-gram | 统计词频概率 | 计算简单 | 不能处理长距离依赖 |
| RNN | 记住前面信息逐步预测 | 适合短文本 | 训练慢,长句信息遗忘 |
| Transformer | 关注整个句子,注意力机制 | 并行计算,高效处理长文本 | 计算量大,训练成本高 |
目前,Transformer 是大模型(如 GPT-4、BERT)的核心技术,未来 NLP 发展仍围绕自注意力机制展开。
📌 如果你想深入学习,可以研究 Transformer 细节,如多头注意力、Feedforward 层等。
相关文章:
AI 语言模型发展史:统计方法、RNN 与 Transformer 的技术演进
引言 自然语言处理(NLP)是 AI 领域的重要分支,而语言模型(Language Model, LM)是 NLP 的核心技术。语言模型经历了从 统计方法 到 RNN(循环神经网络),再到 Transformer 的演进&…...
Pycharm中查找与替换
1、Edit -> Find -> Find 在当前文件中查找 2、Edit -> Find -> Find in Files 在所有文件中查找 3、Edit -> Find -> Replace 在当前文件中执行替换 4、Edit -> Find -> Replace in Files 在所有文件中执行替换...
有向图的强连通分量: Kosaraju算法和Tarjan算法详解
在上一篇文章中, 我们了解了图的最小生成树算法. 本节我们来学习 图的强连通分量(Strongly Connected Component, SCC) 算法. 什么是强连通分量? 在 有向图 中, 若一组节点内的任意两个节点都能通过路径互相到达(例如 A → B A \rightarrow B A→B 且 B → A B \rightarro…...
mac相关命令
显示和隐藏usr等隐藏文件文件 terminal输入: defaults write com.apple.Finder AppleShowAllFiles YESdefaults write com.apple.Finder AppleShowAllFiles NO让.bashrc每次启动shell自动生效 编辑vim ~/.bash_profile 文件, 加上 if [ -f ~/.bashrc ]; then. ~/.bashrc fi注…...
代码随想录算法训练营第六天| 242.有效的字母异位词 、349. 两个数组的交集、202. 快乐数 、1. 两数之和
242.有效的字母异位词 题目链接:242.有效的字母异位词 文档讲解:代码随想录有效的字母异位词 视频讲解:LeetCode:有效的字母异位词 状态:学会了 思路: 数组其实是简单哈希表。 哈希表用来快速判断元素是否在…...
dify实现分析-rag-关键词索引的实现
概述 在dify中有两种构建索引的方式,一种是经济型,另一种是高质量索引(通过向量数据库来实现)。其中经济型就是关键词索引,通过构建关键词索引来定位查询的文本块,而关键词索引的构建是通过Jieba这个库来完…...
【小白学HTML5】一文讲清常用单位(px、em、rem、%、vw、vh)
html5中,常用的单位有px、em、rem、%、vw、vh(不常用)、cm、m等,这里主要讲解px、em、rem、%、vw。 学习了解:主流浏览器默认的字号:font-size:16px,无论用什么单位,浏览器最终计算…...
Fastgpt学习(5)- FastGPT 私有化部署问题解决
1.☺ 问题描述: Windows系统,本地私有化部署,postgresql数据库镜像日志持续报错" data directory “/var/lib/postgresql/data” has invalid permissions ",“ DETAIL: Permissions should be urwx (0700) or urwx,gr…...
ubuntu下安装TFTP服务器
在 Ubuntu 系统下安装和配置 TFTP(Trivial File Transfer Protocol)服务器可以按照以下步骤进行: 1. 安装 TFTP 服务器软件包 TFTP 服务器通常使用 tftpd-hpa 软件包,你可以使用以下命令进行安装: sudo apt update …...
深入解析 iText 7:从 PDF 文档中提取文本和图像
在现代开发中,PDF 文件的操作是不可避免的一部分。无论是生成报告、解析文档,还是从文件中提取信息,我们常常需要处理 PDF 文件。iText 是一个非常强大的库,广泛应用于 PDF 文件的创建、修改和解析。自 iText 7 发布以来ÿ…...
Rust编程语言入门教程 (六)变量与可变性
Rust 系列 🎀Rust编程语言入门教程(一)安装Rust🚪 🎀Rust编程语言入门教程(二)hello_world🚪 🎀Rust编程语言入门教程(三) Hello Cargo…...
事务--实操演示
目录 一、准备工作 二、在MySQL中操作事务(重点) 第一种方式:使用命令的方式 第二种方式:设置MySQL事务不默认提交的方式 结 三、在JDBC中操作事务(掌握) 第一种方式:使用命令的方式 第…...
PHP是如何并行异步处理HTTP请求的?
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
【Spring详解一】Spring整体架构和环境搭建
一、Spring整体架构和环境搭建 1.1 Spring的整体架构 Spring框架是一个分层架构,包含一系列功能要素,被分为大约20个模块 Spring核心容器:包含Core、Bean、Context、Expression Language模块 Core :其他组件的基本核心ÿ…...
在 Vue 3 中使用 Lottie 动画:实现一个加载动画
在现代前端开发中,动画是提升用户体验的重要元素之一。Lottie 是一个流行的动画库,它允许我们使用 JSON 文件来渲染高质量的动画。本文将介绍如何在 Vue 3 项目中集成 Lottie 动画,并实现一个加载动画效果。 如果对你有帮助请帮忙点个&#x…...
深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作
一、问题背景(传统爬虫的痛点) 数据采集是现代网络爬虫技术的核心任务之一。然而,传统爬虫面临多重挑战,主要包括: 反爬机制:许多网站通过检测请求头、IP地址、Cookie等信息识别爬虫,进而限制…...
MySQL 主从复制原理及其工作过程
一、MySQL主从复制原理 MySQL 主从复制是一种将数据从一个 MySQL 数据库服务器(主服务器,Master)复制到一个或多个 MySQL 数据库服务器(从服务器,Slave)的技术。以下简述其原理,主要包含三个核…...
计算机网络抄手 运输层
一、运输层协议概述 1. 进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络边缘部分的两台主机使用网络核心部分的功能进行端到端的通信时&…...
字符串函数和结构题内存对齐
图下为函数使用: #include <ctype.h>int main() {int ret isdigit(Q);printf("%d\n", ret);return 0; }int main() {printf("%c\n", toupper(a));printf("%c\n", tolower(A));return 0; }...
【嵌入式Linux应用开发基础】特殊进程
目录 一、守护进程(Daemon Process) 1.1. 概念 1.2. 特点 1.3. 守护进程的命名 1.4. 创建守护进程的步骤 1.5. 守护进程的实例 1.6. 守护进程的管理 1.7. 影响与处理 二、僵尸进程(Zombie Process) 2.1. 僵尸进程的定义…...
神经网络训练核心挑战与实战解决方案
1. 神经网络训练的本质挑战训练神经网络就像教一个刚出生的婴儿认识世界——你需要提供足够多正确的例子,但又不能过度保护。这个过程的复杂性源于多个相互交织的因素。我在过去五年里训练过上百个不同架构的神经网络,发现即使是经验丰富的从业者也会在某…...
B站下载神器BiliTools:跨平台免费开源工具终极使用指南
B站下载神器BiliTools:跨平台免费开源工具终极使用指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...
C语言核心知识完全回顾:从数据类型到动态内存管理
引言 C语言是一门古老而强大的编程语言,它诞生于1972年,至今仍是计算机科学教育的重要基石。无论是操作系统、嵌入式系统,还是游戏开发,C语言都扮演着不可或缺的角色。 在学习C语言的过程中,最深的体会是:…...
技术债务:是什么?如何管理?
技术债务:是什么?如何管理? 在软件开发中,技术债务是一个常见却容易被忽视的问题。它类似于金融债务,如果长期不处理,利息会不断累积,最终拖累整个项目。技术债务可能源于快速交付的压力、设计…...
基于GAM全局注意力机制的YOLOv10多层次特征融合改进:从原理到实践
摘要 在目标检测领域,YOLO系列模型凭借其出色的速度与精度平衡,始终占据着重要地位。然而,传统YOLOv10模型在处理复杂场景下的多尺度目标时,仍存在特征表达能力不足、关键信息丢失等问题。本文提出一种基于GAM(Global Attention Mechanism,全局注意力机制)的YOLOv10改进…...
中国县域金融机构网点统计1949-2021年
01、数据简介县域金融机构主要是指人民银行县支行、农村信用社及国有商业银行在县乡设立的分支机构无论从地理位置还是服务区域来说都与农民、农村、农业。数据名称:中国县域金融机构网点统计数据年份:1949-2021年02、相关数据指标本数据整理全国区县级金…...
大模型微调速成:20天入门,1个月精通,附完整学习路线!
上次分享的AI路径规划学习路线,小点在后台收到了不少学员的好评!还有不少人私信小点:“大模型微调怎么入门?”“看了很多资料,还是不知道先学啥”“学了半个月,连环境配置都没搞定”…… 那么今天ÿ…...
SM2证书链验证失败?SM3摘要跨平台不一致?——Python国密工程化中那3个没有文档记载的ASN.1 DER编码陷阱
更多请点击: https://intelliparadigm.com 第一章:SM2/SM3国密算法工程化落地的现实困境 在金融、政务及关键基础设施领域,SM2(椭圆曲线公钥密码算法)与SM3(密码杂凑算法)已成强制合规要求&…...
M2CL模型如何实现多LLM协作的性能突破
1. M2CL模型在多LLM协作中的性能突破最近在ICLR 2026会议上提交的一项研究展示了M2CL模型在多LLM协作中的显著性能提升。作为一名长期从事AI系统研发的工程师,我深入研究了这项工作的技术细节和实际意义,下面将分享我的专业解读和实践经验。多LLM协作系统…...
RT-Thread下MPU6050的I2C驱动避坑指南:从硬件连接到DMP解算全流程
RT-Thread下MPU6050的I2C驱动避坑指南:从硬件连接到DMP解算全流程 在嵌入式开发领域,姿态传感器已成为无人机、平衡车、VR设备等智能硬件的核心组件。MPU6050作为一款集成6轴运动跟踪的经典传感器,凭借其高性价比和丰富功能,在RT-…...
