Google DeepMind 学习系列笔记(1) Build Your Own Small Language Model
简单来说,语言模型是通过根据当前给出句子,结合语境进行计算下一个词出现的概率分布,然后从中选择一个作为输出结果 比如: 输入: Jide was hungry so she went looking for... 可能的预测结果: food(0.75) snacks(0.2) leftovers(0.05) 最终大概率输出: Jide was hungry so she went looking for food N-grams 模型简单来说就是先统计一个词在与其他词进行组合的概率,也就是它们一起出现的概率,然后在给定的一个句子去生成完整的一段话时,就是基于前面进行统计计算的概率进行预测; 比如说,你经常会见到"这座山很高"的描述,但你很少见到"这座山很早上"的描述,那么在给定"这座山"这个上下文去生成完整的一段话时,预测得到"很高"接在后面的概率就比"早上"要高 N-grams 模型的统计方式就是一个简单的条件概率公式 比如: $$ 表示在"山清"一词在前面出现的前提下,"水秀"一词它一起组合的概率 这个概率的计算结果根据条件概率公式 $$ 得到: $$ 其中 N-grams 中的"N"表示一个预测上下文窗口大小(由几个字组合) 当 现在换个例子,我们假设"白云山"在文本集中出现了600次,"白云"在文本集中出现了900次,而"白云下"只出现了10次,那么 "白云"和"山"一起出现的概率是 $$ 而"白云"和"下"一起出现的概率是 $$ 当在给定"白云"时,预测下一个出现的词相比于"下","山"的出现概率会更高,即输出"白云山"的概率将远大于"白云下"  相比于 N-grams 模型, Transformer 模型生成的内容比前者更流利、上下文更相关的原因主要是以下两方面: 微调(Fine-tune): 根据特定目的和期望行为进行微调,此步骤包括 author: Smoothcloud润云-Zpekii语言模型是如何进行预测下一个词的?
为什么采用概率进行预测?
N-grams 模型
概述
统计公式
P( 水秀 | 山清 )
$$
P(B|A) = \\frac{Count(A B)}{Count(A)}
$$
P( 水秀 | 山清 ) = \\frac{Count(山清水秀)}{Count(山清)}
$$Count(山清水秀)表示在文本集中"山清水秀"出现的次数,Count(山清)就是在文本集中出现的次数,P( 水秀 | 山清 )就是相对于其它词与"山清"进行组合出现的概率(在文本集中不只是"水秀"和"山清"一起组合出现)N 词统计
P(山|白云) = \\frac{Count(白云山)}{Count(白云)} = \\frac{600}{900} = 0.66
$$
P(下|白云) = \\frac{Count(白云下)}{Count(白云)} = \\frac{10}{900} = 0.011
$$图例
N-grams 模型的局限性
Transformer 模型
训练一个模型的过程
机器训练简单过程描述
机器学习开发流程