news 2026/4/23 10:29:59

【LLM基础教程】统计语言模型N-gram

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【LLM基础教程】统计语言模型N-gram

​ 在深度学习语言模型(LSTM、Transformer)出现之前,统计语言模型(Statistical Language Model, SLM)长期占据 NLP 主流地位。它们通过对大量语料进行统计,来估计词序列的概率,是最早被广泛应用于机器翻译、语音识别等系统的语言模型形式。

​ 其中最经典、最重要的统计语言模型就是n-gram 模型

1. n-gram 的基本思想

​ 根据概率论中的链式法则,长度为TTT的词序列x1,⋯ ,xTx_1, \cdots, x_Tx1,,xT的联合概率可以写成:
p(x1,⋯ ,xT)=∏t=1TP(xt∣x1:t−1) p(x_1, \cdots, x_T)=\prod_{t=1}^{T} P(x_t \mid x_{1:t-1})p(x1,,xT)=t=1TP(xtx1:t1)
​ 也就是说,如果我们能够正确建模每一个词在给定前文的情况下出现的概率,就能计算整句的概率。然而,这里会遇到一个致命问题:条件依赖长度太长!xtx_txt要依赖前面所有词,但真实语料根本不可能覆盖如此巨大的组合空间。

​ 于是,n-gram 模型引入了简化假设:马尔可夫假设

(1) 马尔可夫假设

  • 一个词的出现只依赖它前面的n−1n-1n1个词,而不是整个历史。

  • 基于这一假设,我们将复杂的条件概率近似为:
    P(xt∣x1:t−1)≈P(xt∣xt−n+1:t−1) P(x_{t}|x_{1:t-1}) \approx P(x_t|x_{t-n+1:t-1})P(xtx1:t1)P(xtxtn+1:t1)
    这样,原本需要完整上下文的模型就简化成了只依赖固定长度窗口的模型,也就是n-gram 模型

(2) n-gram 的概率估计

Maximum Likelihood Estimation

​ n-gram 的核心是计算:
P(xt∣xt−n+1,⋯ ,xt−1) P(x_t|x_{t-n+1}, \cdots, x_{t-1})P(xtxtn+1,,xt1)
​ 用最大似然估计(MLE)可以直接通过计数求得:
P(xt∣xt−n+1,⋯ ,xt−1)=Count(xt−n+1,⋯ ,xt−1,xt)Count(xt−n+1,⋯ ,xt−1) P(x_t|x_{t-n+1},\cdots,x_{t-1}) = \frac{\mathcal{Count}(x_{t-n+1}, \cdots, x_{t-1}, x_{t})}{\mathcal{Count}(x_{t-n+1}, \cdots, x_{t-1})}P(xtxtn+1,,xt1)=Count(xtn+1,,xt1)Count(xtn+1,,xt1,xt)
nnn的阶数越高,对应的依赖关系就越长。

  • 1-gram(Unigram)

    Unigram 假设所有词独立出现,因此整句概率为:
    P(x1,⋯ ,xt)=∏i=1tP(xi) P(x_1, \cdots, x_t) = \prod_{i=1}^t P(x_i)P(x1,,xt)=i=1tP(xi)
    此模型忽略了所有上下文信息,效果通常最差。

  • 2-gram(Bigram)

    基于一阶马尔可夫假设

    Bigram 是最常用的基础 n-gram 模型,它假设每个词只依赖前一个词:
    P(x1,⋯ ,xt)=P(x1)∏i=2tP(xi∣xi−1) P(x_1, \cdots, x_t) = P(x_1)\prod_{i=2}^t P(x_i|x_{i-1})P(x1,,xt)=P(x1)i=2tP(xixi1<

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:31:41

高效TTS解决方案:GPT-SoVITS开源语音合成系统应用案例

高效TTS解决方案&#xff1a;GPT-SoVITS开源语音合成系统应用案例 在内容创作日益个性化的今天&#xff0c;越来越多的播客作者、有声书制作者甚至教育工作者开始思考一个问题&#xff1a;能否让AI用“我自己的声音”来朗读我写的内容&#xff1f;过去&#xff0c;这需要录制数…

作者头像 李华
网站建设 2026/4/22 18:40:55

PaddlePaddle语音识别套件实践:集成github镜像提升模块加载效率

PaddlePaddle语音识别套件实践&#xff1a;集成GitHub镜像提升模块加载效率 在中文语音识别项目的开发过程中&#xff0c;你是否曾因一个模型下载卡住整个流程&#xff1f;凌晨两点&#xff0c;CI/CD流水线又一次因为 github.com 连接超时而中断——这种场景对国内开发者来说并…

作者头像 李华
网站建设 2026/4/23 10:29:58

Qwen3-32B大模型调用与鉴权指南

Qwen3-32B大模型调用与鉴权指南 在构建现代AI应用的过程中&#xff0c;如何高效、安全地接入高性能大模型已成为开发者面临的核心挑战之一。随着企业对推理准确性、响应实时性和系统可控性的要求不断提升&#xff0c;选择一个兼具强大能力与灵活接口的模型变得尤为关键。Qwen3-…

作者头像 李华
网站建设 2026/4/23 11:46:16

LobeChat能否实现AI生成周报?职场人士减负必备

LobeChat能否实现AI生成周报&#xff1f;职场人士减负必备 在每周五下午的工位上&#xff0c;你是否也经历过这样的场景&#xff1a;一边翻着零散的会议记录、邮件往来和任务看板&#xff0c;一边绞尽脑汁拼凑一份“看起来像样”的周报&#xff1f;明明做了不少事&#xff0c;写…

作者头像 李华
网站建设 2026/4/23 11:46:16

LobeChat前端性能优化技巧:加载速度提升60%以上

LobeChat前端性能优化实践&#xff1a;如何实现加载速度提升60%以上 在AI聊天应用日益普及的今天&#xff0c;用户早已不再满足于“能用”&#xff0c;而是追求“好用”——尤其是打开即响应的流畅体验。尽管大语言模型的能力突飞猛进&#xff0c;但一个卡顿、闪屏、等待超过三…

作者头像 李华
网站建设 2026/4/23 11:47:39

VSCode远程开发调试GPT-SoVITS模型技巧

VSCode远程开发调试GPT-SoVITS模型技巧 在语音合成技术飞速发展的今天&#xff0c;个性化音色克隆正从实验室走向消费级应用。只需一段一分钟的录音&#xff0c;就能复刻一个人的声音特征——这不再是科幻情节&#xff0c;而是 GPT-SoVITS 这类开源模型已经实现的能力。然而&am…

作者头像 李华