【大模型基础_毛玉仁】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=n∏NC(wi−n+1:i−1)C(wi−n+1:i),(1.1)
-
C ( w i − n + 1 : i ) C(w_{i−n+1 : i}) C(wi−n+1:i)为词序列 { w i − n + 1 , . . . , w i } \{w_{i−n+1},...,w_i\} {wi−n+1,...,wi}在语料库中出现的次数;
-
C ( w i − n + 1 : i − 1 ) C(w_{{i−n+1}: {i−1}}) C(wi−n+1:i−1) 为词序列 { w i − n + 1 , . . . , w i − 1 } \{w_{i−n+1},...,w_{i−1}\} {wi−n+1,...,wi−1}在语料库中出现的次数。
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(长颈鹿, 脖子, 长)=52⋅62=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}\} {wN−n,...,wN−1}有关,即:
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(wN∣w1,w2,...,wN−1)≈P(wN∣wN−n,...,wN−1)(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=1∏Np(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=1∏Np(xi;θ)(1.7)
离散型随机变量的极大似然估计旨在找到θ使得L(θ|x)取最大值。
n-grams 语言模型总结:
n-grams 语言模型通过统计词序列在语料库中出现的频率来预测语言符号的概 率。其对未知序列有一定的泛化性,但也容易陷入“零概率”的困境。
基于各类神经网络的语言模型不断被提出,泛化能力越来越强。基于神经网络的语言模型不再通过显性的计算公式对语言符号的概率进行计算,而是利 用语料库中的样本对神经网络模型进行训练。
.
其他参考:【大模型基础_毛玉仁】系列文章
声明:资源可能存在第三方来源,若有侵权请联系删除!
相关文章:
【大模型基础_毛玉仁】1.1 基于统计方法的语言模型
【大模型基础_毛玉仁】1.1 基于统计方法的语言模型 1.语言模型基础1.1 基于统计方法的语言模型1.1.1 n-grams 语言模型1.1.2 n-grams 的统计学原理 1.语言模型基础 语言是概率的。语言模型(LanguageModels, LMs)旨在准确预测语言符号的概率。 将按照语…...
使用 Docker 部署 RabbitMQ 并实现数据持久化
非常好!以下是一份完整的 Docker 部署 RabbitMQ 的博客文档,包含从安装到问题排查的详细步骤。你可以直接将其发布到博客中。 使用 Docker 部署 RabbitMQ 并实现数据持久化 RabbitMQ 是一个开源的消息队列系统,广泛应用于分布式系统中。使用…...
Pandas的数据转换函数
Pandas的数据转换函数:map, apply, applymap 参数描述map只用于Series,实现每个值->值的映射apply用于Series实现每个值的处理,用于DataFrame实现某个轴的Series的处理applymap只能用于DataFrame, 用于处理该DataFrame的每个元素 1. map用于Series值…...
影刀 RPA 实战开发阶段总结
目录 1. 影刀 RPA 官方教程的重要性 1.1系统全面的知识体系 1.2 权威准确的技术指导 1.3 贴合实际的案例教学 1.4高效的学习方法引导 2. 官方视频教程与实战 2.1 官方视频教程:奠定坚实基础 2.2 实战:拓展应用视野 3. 往期实战博文导航 3.1 初级…...
Linux系统上安装kafka
目录 1. 安装Java环境 2. 下载和解压Kafka 3. 配置Kafka 4. 启动ZooKeeper和Kafka 5. 测试Kafka 6. 停止服务 7.常见问题 1. 安装Java环境 Kafka依赖Java运行环境(JDK 8或更高版本): # 安装OpenJDK(推荐) yum…...
DeepSeek如何快速开发PDF转Word软件
一、引言 如今,在线工具的普及让PDF转Word成为了一个常见需求,常见的PDF转Word工具有收费的WPS,免费的有PDFGear,以及在线工具SmallPDF、iLovePDF、24PDF等。然而,大多数免费在线转换工具存在严重隐私风险——文件需上…...
虚拟机 | Ubuntu图形化系统: open-vm-tools安装失败以及实现文件拖放
系列文章目录 虚拟机 | Ubuntu 安装流程以及界面太小问题解决 文章目录 系列文章目录虚拟机 | Ubuntu 安装流程以及界面太小问题解决 前言一、VMware Tools 和 open-vm-tools 是什么1、VMware Tools2、open-vm-tools 二、推荐使用open-vm-tools(简单)1、…...
Mysql-经典故障案例(1)-主从同步由于主键问题引发的故障
故障报错 Could not execute Write_rows event on table test.users; Duplicate entry 3 for key PRIMARY, Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the events master log mysql-bin.000031, end_log_pos 3297这是由于从库存在与主库相同主键值,…...
Linux下学【MySQL】中如何实现:多表查询(配sql+实操图+案例巩固 通俗易懂版~)
每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论: 本章是MySQL篇中,非常实用性的篇章,相信在实际工作中对于表的查询,很多时候会涉及多表的查询,在多表查询…...
ubuntu局域网部署stable-diffusion-webui记录
需要局域网访问,如下设置: 过程记录查看源码: 查看源码,原来修改参数:--server-name 故启动: ./webui.sh --server-name0.0.0.0 安装下载记录: 快速下载可设置: export HF_ENDPOI…...
最基于底层的运算符——位运算符
位运算符是直接对二进制位(bit)进行操作的运算符,它们在底层开发、算法优化和特定场景(如位掩码、数据压缩)中非常高效。以下是常见位运算符的详解、使用技巧及注意事项: 一、六大核心位运算符 1. 按位与&…...
代码随想录算法训练营第三十二天 | 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
509. 斐波那契数 力扣题目链接(opens new window) 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n -…...
3-9 WPS JS宏单元格复制、重定位应用(拆分单表到多表)
************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...
C++ 中前置 `++` 与后置 `++` 运算符重载
C 中前置 与后置 运算符重载的设计原理与使用规范 1. 为什么后置 返回对象而不是引用? 原因: 后置 需要返回自增前的旧值,但旧值在运算后已被修改。为了保存旧值,必须在函数内部创建一个临时对象(拷贝原对象的状态…...
Scala:case class(通俗易懂版)
1. case class 是什么? 想象你要做一个表格,比如学生信息表,每一行需要填:姓名、年龄、成绩。 在代码里,这种“表格的一行”就是一个数据对象,case class 就是帮你快速创建这种“表格行”的工具。 普通方…...
Vue、React、原生小程序的写法对比差异
以下是从 变量、方法、路由、状态管理、父子传值 等多个维度对 Vue、React、原生小程序 的对比表格: 技术对比表格 功能/技术Vue (Options/Composition API)React (Hooks)原生微信小程序变量定义data() { return { count: 0 } }(Options API)const count = ref(0)(Composition…...
【AIGC系列】6:HunyuanVideo视频生成模型部署和代码分析
AIGC系列博文: 【AIGC系列】1:自编码器(AutoEncoder, AE) 【AIGC系列】2:DALLE 2模型介绍(内含扩散模型介绍) 【AIGC系列】3:Stable Diffusion模型原理介绍 【AIGC系列】4࿱…...
java 初学知识点总结
自己总结着玩 1.基本框架 public class HelloWorld{ public static void main(String[] args){ }//类名用大写字母开头 } 2.输入: (1)Scanner:可读取各种类型,字符串相当于cin>>; Scanner anew Scanner(System.in); Scan…...
Android MVC、MVP、MVVM三种架构的介绍和使用。
写在前面:现在随便出去面试Android APP相关的工作,面试官基本上都会提问APP架构相关的问题,用Java、kotlin写APP的话,其实就三种架构MVC、MVP、MVVM,MVC和MVP高度相似,区别不大,MVVM则不同&…...
AI视频领域的DeepSeek—阿里万相2.1图生视频
让我们一同深入探索万相 2.1 ,本文不仅介绍其文生图和文生视频的使用秘籍,还将手把手教你如何利用它实现图生视频。 如下为生成的视频效果(我录制的GIF动图) 如下为输入的图片 目录 1.阿里巴巴全面开源旗下视频生成模型万相2.1模…...
如何通过3个步骤掌握iOS游戏修改神器H5GG
如何通过3个步骤掌握iOS游戏修改神器H5GG 【免费下载链接】H5GG an iOS Mod Engine with JavaScript APIs & Html5 UI 项目地址: https://gitcode.com/gh_mirrors/h5/H5GG 你是否曾想在iOS设备上修改游戏数值却苦于没有越狱?是否觉得传统游戏修改工具操作…...
Pixelle-Video完整指南:如何用AI在3分钟内创建专业短视频
Pixelle-Video完整指南:如何用AI在3分钟内创建专业短视频 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 在当今内容爆炸的时…...
i.MX8MP NPU实战:TensorFlow Lite模型移植与VSI-NPU优化全流程
1. 项目概述与核心价值最近在折腾一块基于NXP i.MX8M Plus的开发板,这块板子最大的亮点就是集成了一个专为边缘AI设计的神经处理单元(NPU)。官方文档里提了一嘴TensorFlow Lite的例程,但真上手去移植,发现坑是一个接一…...
基于Arduino与GPS的物联网数据采集器:从硬件搭建到地图可视化
1. 项目概述:一个硬件极客的万圣节“寻宝图” 又到万圣节了,除了琢磨穿什么奇装异服,你是不是也在头疼怎么规划“不给糖就捣蛋”的路线?每年都像开盲盒,有的门口堆满南瓜灯的人家只给了一根棒棒糖,而某个其…...
初创团队如何利用 Taotoken 以更低成本试用多种大模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创团队如何利用 Taotoken 以更低成本试用多种大模型 对于初创团队和独立开发者而言,在产品原型验证阶段,…...
信息学奥赛刷题技巧:用‘整型转布尔’这道题,教你举一反三理解数据类型隐式转换
从整型转布尔看C隐式类型转换的艺术 在信息学竞赛的刷题过程中,很多同学会止步于"这道题我做对了"的层面,却忽略了题目背后蕴含的语言特性宝藏。以OpenJudge 1.2.09这道经典的整型与布尔型转换题目为例,表面上看只是考察基本数据类…...
快充协议芯片技术解析:从原理到选型与实战应用
1. 市场爆发与资本热潮:快充芯片的“黄金时代”最近两年,如果你关注半导体和消费电子行业,会发现一个很有意思的现象:一批做快充协议芯片的公司,正在扎堆冲刺IPO。从科创板到创业板,再到港交所,…...
Windows平台QT BLE开发避坑指南:从环境搭建到稳定通信
1. Windows平台QT BLE开发环境搭建 在Windows平台上使用QT进行BLE开发,首先需要确保开发环境正确配置。我遇到过不少开发者因为环境问题卡在第一步,白白浪费好几天时间。这里分享几个关键点: 编译器选择是第一个坑。实测发现必须使用MSVC编译…...
如何用nmrpflash拯救你的Netgear路由器:从“变砖“到重生的完整指南
如何用nmrpflash拯救你的Netgear路由器:从"变砖"到重生的完整指南 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 当你的Netgear路由器固件升级失败、意外断电或系统崩溃后无法启动…...
ElevenLabs葡语语音私密训练技巧(仅限白名单客户使用的SSML扩展语法+方言权重微调指令集)
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs葡语语音私密训练的核心价值与白名单准入机制 ElevenLabs 的葡语语音私密训练(Private Voice Fine-tuning for Portuguese)专为高合规性场景设计,面向金融…...
