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

【NLP】语言模型的发展历程 (1)

语言模型的发展历程系列博客主要包含以下文章:

  • 【NLP】语言模型的发展历程 (1)
  • 【NLP】大语言模型的发展历程 (2)

本篇博客是该系列的第一篇,主要讲讲 语言模型(LM,Language Model) 的发展历程。

文章目录

  • 一、统计语言模型
    • 1.1 N-gram模型
  • 二、神经网络语言模型
    • 2.1 NNLM模型
  • 三、基于Transformer的大语言模型
    • 3.1 Transformer模型
    • 3.2 大语言模型发展历程
  • 参考资料

语言模型(LM,Language Model)的发展历程可以清晰地划分为三个主要阶段:统计语言模型、神经网络语言模型以及基于Transformer的大语言模型。每个阶段的模型都在前一个阶段的基础上进行了改进和优化,使得语言模型的性能得到了显著提升。

在这里插入图片描述

一、统计语言模型

统计语言模型是早期自然语言处理(NLP)中的重要工具,它们主要通过分析词序列的出现频率来预测下一个词。这种方法基于统计学的原理,利用大规模语料库中的词频信息来建模语言的概率分布。

代表模型:N-gram模型、隐马尔可夫模型(HMM)

  • N-gram模型:这是最常见的统计语言模型之一,它基于马尔可夫假设,认为一个词出现的概率仅与其前面的n-1个词有关。N-gram模型简单易用,但存在数据稀疏和无法捕捉长距离依赖关系的问题。

  • 隐马尔可夫模型(HMM):另一种重要的统计语言模型,通过引入隐藏状态来捕捉序列数据中的潜在结构。

1.1 N-gram模型

(1)模型定义

N-gram模型是一种基于统计语言模型的文本分析算法,它用于预测文本中下一个词出现的概率,基于前面出现的n-1个词的序列。这里的n代表序列中元素的数量,因此称为N-gram。

  • Unigram:N=1,每个单词的出现概率独立计算,不考虑上下文。

  • Bigram:N=2,基于前一个单词预测当前单词的联合概率模型。

  • Trigram:N=3,考虑前两个单词来预测当前单词的联合概率模型,更复杂但可能更准确。

在这里插入图片描述

(2)工作原理

N-gram模型通过统计语料库中n-gram序列的频率,估计给定前n-1个元素后下一个元素出现的概率,从而实现文本预测。

  1. 语料库准备:首先,需要有一个大型的文本语料库,用于训练N-gram模型。

  2. 计算频率:然后,计算语料库中所有可能的n-gram序列的频率。

  3. 概率估计:根据这些频率,可以估计出给定n-1个词后,下一个词出现的概率。

  4. 预测:在预测阶段,给定一个词序列的前n-1个词,模型可以输出下一个词的概率分布,从而可以选择最可能的词作为预测结果。

二、神经网络语言模型

随着深度学习技术的发展,神经网络开始被应用于语言建模任务中。神经网络语言模型通过引入神经网络结构来捕捉词与词之间的复杂关系,从而提高了语言模型的性能。

代表模型:NNLM、RNN、LSTM、GRU

  • 神经网络语言模型(NNLM):由Bengio等人提出,通过嵌入层将单词映射到连续的向量空间中,并通过多个隐藏层来学习语言的内部结构。NNLM能够捕捉词与词之间的语义关系,提高了语言模型的预测能力。

  • 循环神经网络(RNN)及其变体(LSTM、GRU):RNN通过引入循环连接来处理序列数据中的长期依赖关系。LSTM和GRU是RNN的改进版本,通过引入门控机制来解决梯度消失或梯度爆炸问题。

在这里插入图片描述

2.1 NNLM模型

(1)模型定义

NNLM是一种基于神经网络的方法来建模自然语言中的词语序列。与传统的统计语言模型(如n-gram模型)相比,NNLM能够捕捉更复杂的语言结构和语义信息,因为它利用了神经网络强大的非线性建模能力。

  • 原理:利用神经网络来预测文本序列中下一个词或字符出现的概率的模型。

  • 目的:通过建模词汇之间的概率关系,实现自然语言文本的生成或理解。

在这里插入图片描述

(2)工作原理
NNLM通过嵌入层将输入的固定长度前文单词序列转换为连续向量表示,然后利用一个或多个隐藏层学习这些向量的语言结构,最后由输出层输出下一个单词的概率分布,以最大化给定前文条件下的单词预测准确性。

  • 输入:NNLM的输入是一个固定长度的前文单词序列,用于预测下一个单词。每个单词通常由其词嵌入(word embedding)表示,即将单词映射到连续的向量空间中。

  • 结构:NNLM通常包含一个嵌入层(embedding layer),用于将输入的单词转换为连续向量表示;一个或多个隐藏层(hidden layers),用于学习输入序列的语言结构;以及一个输出层(output layer),输出下一个单词的概率分布。

  • 训练目标:最大化给定训练数据中序列的联合概率,即最大化给定前文单词的条件下,下一个单词出现的概率。这通常通过最小化负对数似然(negative log-likelihood)来实现。

三、基于Transformer的大语言模型

基于Transformer的大语言模型在预训练阶段利用大规模语料库进行训练,然后在特定任务上进行微调,取得了惊人的效果。

代表模型:BERT、GPT系列

  • BERT:由Google提出的一种基于Transformer的双向编码器表示模型。BERT在预训练阶段采用了遮蔽语言模型(Masked Language Model)和下一句预测(Next Sentence Prediction)两个任务来训练模型,提高了模型的语言表示能力。

  • GPT系列:由OpenAI开发的基于Transformer的生成式预训练模型。GPT系列模型在预训练阶段采用了自回归语言建模任务来训练模型,能够生成连贯、自然的文本。随着模型规模的增大(如GPT-3、GPT-4等),GPT系列模型在多个NLP任务上取得了优异的表现。

在这里插入图片描述

3.1 Transformer模型

Transformer模型由Vaswani等人在2017年提出,是一种基于自注意力机制的深度学习模型。它彻底摒弃了传统的循环神经网络结构,通过自注意力机制和位置编码来处理序列数据中的长期依赖关系和位置信息。
在这里插入图片描述

3.2 大语言模型发展历程

大语言模型发展历程参见博客:【NLP】大语言模型的发展历程 (2)

参考资料

  • 一文彻底搞懂大模型 - 语言模型的发展历程

http://www.kler.cn/a/500374.html

相关文章:

  • fitz获取pdf内容
  • YangQG 面试题汇总
  • 基于单片机的智能楼宇门禁系统的设计
  • 《拉依达的嵌入式\驱动面试宝典》—计算机网络篇(二)
  • 计算机视觉算法实战——吸烟人员检测
  • 基于Springboot的社区医院管理系统【附源码】
  • Monorepo设置:新手指南
  • 【Word_笔记】Word的修订模式内容改为颜色标记
  • [人工智能自学] Python包学习-numpy
  • Unity热更新 之 Addressables(2) 本地/远端打包 流程测试
  • 【Powershell】Windows大法powershell好(二)
  • 个性化图书商城推荐系统 协同过滤余弦函数推荐图书 Springboot Vue Element-UI前后端分离
  • 汽车供应链关键节点:物流采购成本管理全解析
  • 有一台服务器可以做哪些很酷的事情
  • 使用conda出现requests.exceptions.HTTPError 解决方案
  • 网络安全-RSA非对称加密算法、数字签名
  • Gateway 网关
  • Lua语言的网络编程
  • 机器学习全流程解析:数据导入到服务上线全阶段介绍
  • SQL进阶实战技巧:LeetCode2201. 统计可以提取的工件?
  • CentOS 系统中防火墙相关命令
  • linux 内核OOM问题定位-SLAB_DEBUG