【大模型基础_毛玉仁】1.1 基于统计方法的语言模型


【大模型基础_毛玉仁】1.1 基于统计方法的语言模型

  • 1.语言模型基础
    • 1.1 基于统计方法的语言模型
      • 1.1.1 n-grams 语言模型
      • 1.1.2 n-grams 的统计学原理


1.语言模型基础

语言是概率的。语言模型(LanguageModels, LMs)旨在准确预测语言符号的概率。

将按照语言模型发展的顺序依次讲解:

  • 基于统计方法的n-grams 语言模型;

  • 基于循环神经网络(RecurrentNeuralNetwork,RNN)的语言模型;

  • 基于Transformer的语言模型。


1.1 基于统计方法的语言模型

通过对语料库(Corpus)中的语料进行统计或学习,来获得预测语言符号概率。

n-grams是最具代表性的统计语言模型。 它基于马尔可夫假设和离散变量的极大似然估计给出语言符号的概率。

1.1.1 n-grams 语言模型

n-gram指的是长度为n的词序列。

  • 当n=1时, 称之为unigram

  • 当n=2时,称之为bigrams

  • 当n=3时,称之为trigrams

  • 其他时,称之为“数字-grams”(如:当n=4 时,称之为4-grams)

假设,包含N个元素的语言符号可以表示为 w 1 : N = { w 1 , w 2 , w 3 , . . . , w N } w_{1:N} = \{w_1, w_2, w_3, ..., w_N\} w1:N={w1,w2,w3,...,wN} w 1 : N w_{1:N} w1:N 代表文本。

n-grams语言模型,通过依次统计文本中的n-gram及其对应的(n-1)-gram在语料库中出现的相对频率,来计算文本 w 1 : N w_{1:N} w1:N 出现的概率。计算公式如下所示:

P n -grams ( w 1 : N ) = ∏ i = n N C ( w i − n + 1 : i ) C ( w i − n + 1 : i − 1 ) , (1.1) P_{n\text{-grams}}(w_{1:N}) = \prod_{i=n}^{N} \frac{C(w_{i-n+1:i})}{C(w_{i-n+1:i-1})}, \tag{1.1} Pn-grams(w1:N)=i=nNC(win+1:i1)C(win+1:i),(1.1)

  • C ( w i − n + 1 : i ) C(w_{i−n+1 : i}) C(win+1:i)为词序列 { w i − n + 1 , . . . , w i } \{w_{i−n+1},...,w_i\} {win+1,...,wi}在语料库中出现的次数;

  • C ( w i − n + 1 : i − 1 ) C(w_{{i−n+1}: {i−1}}) C(win+1:i1) 为词序列 { w i − n + 1 , . . . , w i − 1 } \{w_{i−n+1},...,w_{i−1}\} {win+1,...,wi1}在语料库中出现的次数。

bigrams语言模型的例子:

图1.1: n-grams 示例语料库。
在这里插入图片描述

假设语料库如图1.1所示,应用bigrams 对文本“长颈鹿脖子长”(其由{长颈鹿,脖子,长}三个词构成)出现的概率进行计算,如下式所示:

P bigrams ( 长颈鹿, 脖子, 长 ) = C ( 长颈鹿, 脖子 ) ⋅ C ( 脖子, 长 ) C ( 长颈鹿 ) ⋅ C ( 脖子 ) 。 (1.2) P_{\text{bigrams}}(\text{长颈鹿, 脖子, 长}) = \frac{C(\text{长颈鹿, 脖子}) \cdot C(\text{脖子, 长})}{C(\text{长颈鹿}) \cdot C(\text{脖子})}。 \tag{1.2} Pbigrams(长颈鹿脖子)=C(长颈鹿)C(脖子)C(长颈鹿脖子)C(脖子)(1.2)

在此语料库中,C(长颈鹿)=5,C(脖子)=6,C(长颈鹿, 脖子)=2,C(脖子, 长) = 2,故有:

P bigrams ( 长颈鹿, 脖子, 长 ) = 2 5 ⋅ 2 6 = 2 15 。 (1.3) P_{\text{bigrams}}(\text{长颈鹿, 脖子, 长}) = \frac{2}{5} \cdot \frac{2}{6} = \frac{2}{15}。 \tag{1.3} Pbigrams(长颈鹿脖子)=5262=152(1.3)

由此可见,n-grams 具备对未知文本的泛化能力。但是,这种泛化能力会随着n的增大而逐渐减弱。应用trigrams对文本“长颈鹿脖子长”出现的概率进行计算,将出现“零概率”的情况。

因此,在n-grams语言模型中,n的值是影响性能的关键因素。

1.1.2 n-grams 的统计学原理

n-grams 语言模型是在n阶马尔可夫假设下,对语料库中出现的长度为n的词 序列出现概率的极大似然估计

定义1.1(n阶马尔可夫假设):

对于序列 { w 1 , w 2 , w 3 , . . . , w N } \{w_1, w_2, w_3, ..., w_N\} {w1,w2,w3,...,wN},当前状态 wN​ 出现的概率只与前 n 个状态 { w N − n , . . . , w N − 1 } \{w_{N-n}, ..., w_{N-1}\} {wNn,...,wN1}有关,即:

P ( w N ∣ w 1 , w 2 , . . . , w N − 1 ) ≈ P ( w N ∣ w N − n , . . . , w N − 1 ) (1.5) P(w_N|w_1, w_2, ..., w_{N-1}) \approx P(w_N|w_{N-n}, ..., w_{N-1}) \tag{1.5} P(wNw1,w2,...,wN1)P(wNwNn,...,wN1)(1.5)

定义1.2(离散型随机变量的极大似然估计): (存疑。。。)

给定离散型随机变量X的分布律为 P { X = x } = p ( x ; θ ) P\{X=x\}=p(x;θ) P{X=x}=p(x;θ)

X 1 , . . . , X N X_1,...,X_N X1,...,XN 为来 自X的样本, x 1 , . . . , x N x_1,...,x_N x1,...,xN 为对应的观察值,θ为待估计参数。

在参数θ下,分 布函数随机取到 x 1 , . . . , x N x_1,...,x_N x1,...,xN 的概率为:

p ( x ∣ θ ) = ∏ i = 1 N p ( x i ; θ ) (1.6) p(x|\theta) = \prod_{i=1}^{N} p(x_i; \theta) \tag{1.6} p(xθ)=i=1Np(xi;θ)(1.6)

构造似然函数为:

L ( θ ∣ x ) = p ( x ∣ θ ) = ∏ i = 1 N p ( x i ; θ ) (1.7) L(\theta|x) = p(x|\theta) = \prod_{i=1}^{N} p(x_i; \theta) \tag{1.7} L(θx)=p(xθ)=i=1Np(xi;θ)(1.7)

离散型随机变量的极大似然估计旨在找到θ使得L(θ|x)取最大值。

n-grams 语言模型总结:

n-grams 语言模型通过统计词序列在语料库中出现的频率来预测语言符号的概 率。其对未知序列有一定的泛化性,但也容易陷入“零概率”的困境。

基于各类神经网络的语言模型不断被提出,泛化能力越来越强。基于神经网络的语言模型不再通过显性的计算公式对语言符号的概率进行计算,而是利 用语料库中的样本对神经网络模型进行训练。

.


其他参考:【大模型基础_毛玉仁】系列文章


声明:资源可能存在第三方来源,若有侵权请联系删除!

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

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

相关文章

IDEA 2025最新版2024.3.3软件安装、插件安装、语言设置

IntelliJ IDEA是一款由JetBrains公司开发的集成开发环境(IDE),主要用于Java语言的开发,它通过提供丰富的功能如智能代码补全、代码分析、版本控制集成等来提高开发效率。 IDEA有社区版和专业版两个版本,社区版是免费开…

springbootWeb入门--创建springbootweb项目

步骤: 1.建立空工程 2.选择项目的jdk版本 3.在工程中建立模块,选择“spring initilazer”,类型勾选“maven” 4.勾选“spring web”之后,就无需再自行写dependcy了。 5.等待联网下载 6.生成的工程文件,如下绿色框中文件&…

Windows10系统构建本地安全私有化的个人知识库——采用DeepSeek+RAGFlow

一、为什么要构建本地私有化个人知识库 1.1、自身需求 1、需要相关隐私资料内容的安全保护可控; 2、需要根据自身的隐私资料内容构建出个性化的知识库; 一些常见的业务场景如:①希望我们的智能助手可以根据公司的管理制度回答问题,让员工可以随时了解公司相关制度内容信息;…

江协科技/江科大-51单片机入门教程——P[3-1] 独立按键控制LED亮灭

本文围绕51单片机开发中的独立按键控制技术展开,系统讲解其硬件结构、电平检测原理与C51编程实现方法。文章从开发板独立按键的物理构造与电路连接入手,剖析按键按下与松开时的电平变化规律,并结合单片机I/O口寄存器操作原理,阐释…

【QGIS二次开发】地图显示与交互-01

1. 系统界面设计 设计的系统界面如下,很好还原了QGIS、ArcGIS等软件的系统界面,充分利用了QT中顶部工具栏、菜单栏、底部状态栏,实现了图层管理器、鹰眼图、工具箱三个工具面板。 菜单栏、工具栏、工具箱集成了系统中实现的全部功能&#x…

第40天:安全开发-JavaEE应用SpringBoot框架JWT身份鉴权打包部署JARWAR

时间轴: 演示案例: SpringBoot-身份鉴权-JWT 技术 SpringBoot-打包部署-JAR&WAR SpringBoot-身份鉴权-JWT 技术 SpringBoot- 身份鉴权 -JWT 技术 JWT(JSON Web Token) 是由服务端用加密算法对信息签名来保证其完整性和不可伪 造; …

计算机毕业设计SpringBoot+Vue.js医院挂号就诊系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

Linux之命令记录【一】

文章目录 前言几个重要的热键1.[Tab]按键2.[Ctrl]-c 按键3.[Ctrl]-d 按键4.[shift]{[PageUP]|[Page Down]}按键 线上求助(查看帮助信息)1. --help2.man page3.info page 用户身份1.su 基础指令1.date2.cal3.bc 系统字符集相关1.locale 文本编辑器1.nano …

Ollama存在安全风险的情况通报及解决方案

据清华大学网络空间测绘联合研究中心分析,开源跨平台大模型工具Ollama默认配置存在未授权访问与模型窃取等安全隐患。鉴于目前DeepSeek等大模型的研究部署和应用非常广泛,多数用户使用Ollama私有化部署且未修改默认配置,存在数据泄露、算力盗…

Sourcetrail 代码分析工具

Sourcetrail 概述 Sourcetrail 是一个代码分析工具,它旨在帮助开发人员理解和导航复杂的代码库。它可以创建代码库的可视化图形,显示代码中的类、函数、变量、依赖关系等信息,从而帮助开发人员更好地理解代码结构和关系,降低维护…

【手撕算法】支持向量机(SVM)从入门到实战:数学推导与核技巧揭秘

摘要 支持向量机(SVM)是机器学习中的经典算法!本文将深入解析最大间隔分类原理,手撕对偶问题推导过程,并实战实现非线性分类与图像识别。文中附《统计学习公式手册》及SVM调参指南,助力你掌握这一核心算法…

《OpenCV》——dlib(人脸应用实例)

文章目录 dlib库dlib库——人脸应用实例——表情识别dlib库——人脸应用实例——疲劳检测 dlib库 dlib库的基础用法介绍可以参考这篇文章:https://blog.csdn.net/lou0720/article/details/145968062?spm1011.2415.3001.5331,故此这篇文章只介绍dlib的人…

ArcGIS操作:07 绘制矢量shp面

1、点击目录 2、右侧显示目录 3、选择要存储的文件夹,新建shp 4、定义名称、要素类型、坐标系 5、点击开始编辑 6、点击创建要素 7、右侧选择图层、创建面 8、开始绘制,双击任意位置结束绘制

用Python+Flask打造可视化武侠人物关系图生成器:从零到一的实战全记录

用PythonFlask打造可视化武侠人物关系图生成器:从零到一的实战全记录 一、缘起:一个程序小白的奇妙探索之旅 作为一个接触Python仅13天的编程萌新,我曾以为开发一个完整的应用是遥不可及的事情。但在DeepSeek的帮助下,我竟用短短…

2025年渗透测试面试题总结- 阿某云安全实习(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 阿里云安全实习 一、代码审计经验与思路 二、越权漏洞原理与审计要点 三、SSRF漏洞解析与防御 四、教…

el-select的下拉选择框插入el-checkbox

el-check注意这里要使用model-value绑定数据 <el-selectv-model"selectDevice"multiplecollapse-tags:multiple-limit"5"style"width: 200px"popper-class"select-popover-class" ><el-optionv-for"item in deviceList…

20250304在Ubuntu20.04的GUI下格式化exFAT格式的TF卡为ext4格式

20250304在Ubuntu20.04的GUI下格式化exFAT格式的TF卡为ext4格式 2025/3/4 16:47 缘起&#xff1a;128GB的TF卡&#xff0c;只能格式化为NTFS/exFAT/ext4。 在飞凌的OK3588-C下&#xff0c;NTFS格式只读。 exFAT需要改内核来支持。 现在只剩下ext4了。 linux R4默认不支持exFAT…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例1:基础表格

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

【Linux】【网络】UDP打洞-->不同子网下的客户端和服务器通信(未成功版)

【Linux】【网络】UDP打洞–>不同子网下的客户端和服务器通信&#xff08;未成功版&#xff09; 上次说基于UDP的打洞程序改了五版一直没有成功&#xff0c;要写一下问题所在&#xff0c;但是我后续又查询了一些资料&#xff0c;成功实现了&#xff0c;这次先写一下未成功的…

C# Unity 唐老狮 No.4 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: 全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体格式,…