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

AI人工智能-语言模型-第六周(小白)

什么是语言模型

语言模型的核心任务是判断一个句子是否“合理”,也就是我们常说的“像人话”。

  • 例如:“今天天气不错” ✅

  • 而“今错不天气天” ❌

数学上,语言模型是计算一个句子的概率,合理的句子概率高,不合理的句子概率低。

  • P(今天天气不错) > P(今错不天天气)

常见问题

1.“合理”是主观的,机器怎么判断

语言模型是通过大量真实文本训练出来的,它学习的是语言的统计规律,而不是主观感受

2.为什么需要计算句子的概率

因为很多任务(如语音识别,输入法)中,机器需要从多个候选结果中选出最可能得一个。

语言模型的种类

语言模型分类

  1. 统计语言模型(SLM):如N-gram,基于词频统计
  2. 神经语言模型(NLM):如RNN,LSTM,用神经网络建模
  3. 预训练语言模型(PLM):如BERT,GPT,在大模型语料上预训练
  4. 大语言模型(LLM):如ChatGPT,参数量极大,能力更强

训练方式

  1. 自回归:从左到右预测,如GPT
  2. 自编码:双向预测,如BERT

N-gram语言模型

核心思想:一个句子的概率,可以分解成其中每个词出现的概率的乘积

为什么这样分解

源于概率论中的链式法则

对于一个句子 S = w_{1} w_{2} w_{3}...w_{n} (w代表词),其概率是:

P(S) = P(w_{1}w_{2}w_{3}...w_{n})

根据链式法则,这个联合概率分解为:

P(S)=P(w_{1})*P(w_{2}|w_{1})*P(w_{3}|w_{1},w_{2})*...*P(w_{n}|w_{1},w_{2},...,w_{n-1})

直观解释

今天天气不错

  • P(w_{1}):第一个词是“今天”的概率
  • P(w_{2}|w_{1}):在第一个词是“今天”的前提下,第二个词是“天气”的概率
  • P(w_{3}|w_{1},w_{2}):在前两个词是“今天 天气”的前提下,第三个词是“不错”的概率
  • ...以此类推

N-gram的“N”与马尔科夫假设

问题来了:链式法则要求考虑前面所有的词,这在实际中是不可能的。

  • 句子长度可变,模型无法处理。

  • 历史组合 w1, w2, ..., wn-1 太多,几乎不可能在训练数据中全部出现,数据会极度稀疏。

解决方案:马尔科夫假设

  • Unigram (1-gram):一个词的出现不依赖任何上文。
    P(S) ≈ P(w1) * P(w2) * P(w3) * ... * P(wn)

  • Bigram (2-gram):一个词的出现只依赖它前面1个词。
    P(S) ≈ P(w1) * P(w2 | w1) * P(w3 | w2) * ... * P(wn | wn-1)

  • Trigram (3-gram):一个词的出现只依赖它前面2个词。
    P(S) ≈ P(w1) * P(w2 | w1) * P(w3 | w1, w2) * P(w4 | w2, w3) * ... * P(wn | wn-2, wn-1)

具体概率的计算

通过统计语料库中的词频。

我们用一个极小的语料库来演示:

假设我们的语料库是:

  1. 今天 天气 不错

  2. 今天 天气 很好

  3. 明天 天气 不错

  4. 今天 是 晴天

我们以 Bigram 模型 为例,计算 P(今天 天气 不错)
根据 Bigram 公式:
P(今天 天气 不错) = P(今天) * P(天气 | 今天) * P(不错 | 天气)

第一步:计算 P(今天)

  • 语料库总词数:4句话 * 3个词/句 = 12个词(我们把“今天”、“天气”等都看作一个词)

  • “今天”出现的次数:在第1、2、4句都出现了,共 3 次。

  • 所以 P(今天) = 3 / 12 = 1/4

第二步:计算 P(天气 | 今天)

  • 这是一个条件概率,意思是“在「今天」出现的情况下,下一个词是「天气」的概率”。

  • 公式:P(天气 | 今天) = Count(今天 天气) / Count(今天)

  • Count(今天 天气):“今天”后面紧跟着“天气”的次数。在句子1、2中出现了,共 2 次。

  • Count(今天):“今天”作为“上文”出现的次数。在句子1、2、4中,“今天”后面都有词,共 3 次。(注意:如果“今天”在句尾,则它后面没有词,不算在内)

  • 所以 P(天气 | 今天) = 2 / 3

第三步:计算 P(不错 | 天气)

  • 公式:P(不错 | 天气) = Count(天气 不错) / Count(天气)

  • Count(天气 不错):“天气”后面紧跟着“不错”的次数。在句子1、3中出现了,共 2 次。

  • Count(天气):“天气”作为“上文”出现的次数。在句子1、2、3中,“天气”后面都有词,共 3 次。

  • 所以 P(不错 | 天气) = 2 / 3

最终概率:
P(今天 天气 不错) = (1/4) * (2/3) * (2/3) = 4 / 36 = 1 / 9

常见问题

  1. P(今天) 的分母是总词数,为什么 P(天气|今天) 的分母是 Count(今天)

    • P(今天) 是无条件概率,衡量的是“今天”这个词在整个语言中的普遍程度,所以用总词数做分母。

    • P(天气|今天) 是条件概率,衡量的是“当「今天」已经出现时,「天气」跟上的可能性”。我们只关心所有出现“今天”的场景,所以分母是“今天”的出现次数。

  2. 如果语料库里没有“今天 天气 不错”这个组合,概率就是0吗?

    • :对于标准的统计方法,是的

http://www.dtcms.com/a/617958.html

相关文章:

  • 找工作经验分享
  • 提供网站建设哪家好佛山外贸seo
  • 建站官网怎么做网页?
  • Qt编写28181推流分发服务/统计访问数量/无人观看超时关闭/等待重新点播/复用点播
  • CodexField Marketplace:重建内容与智能资产的链上市场结构
  • 微网站素材外贸家具网站
  • 后端服务发现工具,Consul与Eureka Consul vs Eureka:后端服务发现工具全面对比
  • 《动手学深度学习》6.5~6.6
  • 初识RabbitMQ
  • 历史数据分析——中国铝业
  • 网站建设设计公司类网站织梦模板 带手机端展厅设计图片
  • Kafka - 4 Kafka的副本同步机制
  • Windows 下 AI工具配置(一):Claude Code Router + Qwen
  • 西安网站设计公司哪家好网站开发怎么在页面上调用高德地图显示位置
  • Python语言设计模式:组合模式详解
  • 操作系统。
  • Kotlinx.serialization 项目集成
  • 使用Rust构建一个完整的DeepSeekWeb聊天应用
  • Kotlinx.serialization 使用指南
  • 后端日志收集与分析
  • 视频网站 php源码潜江资讯网招聘
  • 成都建立网站网站一直百度上搜不到是怎么回事
  • 测试案例拆解:ab测试/可用性测试一步到位
  • 【Android】模板化解决复杂场景的滑动冲突问题
  • LeetCode 热题 100——子串——和为 K 的子数组
  • JVM内存结构深度解析:堆、栈、方法区、元空间、直接内存
  • H-RDT:基于人类操作增强的双臂机器人操作研究
  • hysAnalyser --- UDP实时流分析使用指南
  • 象棋棋理基础
  • 要怎么推广网站全国工程招标信息网