掘金 人工智能 07月19日 07:41
ChatGPT与最大似然估计
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了ChatGPT语言模型的内部工作原理,揭示其核心是基于概率模型的数学公式。文章通过一个形象的“饼干失窃案”比喻,详细解释了最大似然估计(MLE)这一统计学概念,说明了如何通过观测数据反推最有可能的模型参数。ChatGPT正是运用MLE,通过调整参数来最大化训练语料库中真实句子出现的可能性,从而学习人类语言的“最可能”模式,实现流畅对话。这种方法使其能像人一样沟通,但也可能出现“正确的废话”。

📊 ChatGPT的语言建模核心是概率模型,其公式是语言模型基础理论的高阶扩展。该模型通过学习上下文窗口内的词语序列,预测下一个最有可能出现的词。公式涉及训练语料库(U)、词语()、上下文窗口大小(k)以及模型参数集合()。

🕵️‍♂️ 最大似然估计(MLE)是ChatGPT模型优化的关键。它是一种统计推断方法,旨在找到最能解释观测数据的模型参数。就像侦探根据现场线索推断嫌疑人一样,MLE通过比较不同模型参数下观测数据出现的可能性(似然值),来选择似然值最大的参数。

🍪 “似然”与“概率”的区别在于视角:概率是给定模型预测数据,而似然是给定数据评估模型。在“饼干碎屑”的比喻中,碎屑是数据,嫌疑人(张三、李四、王五)代表不同模型参数。张三(60%掉碎屑概率)的似然值最高,表明他最可能是“作案者”。

📝 ChatGPT运用MLE来“猜下一个词”的游戏。通过海量文本语料训练,它不断调整内部参数,目标是最大化真实句子中下一个词出现的概率。这使得它能学习到人类语言的“最可能”模式,从而生成自然流畅的文本,但有时也可能输出看似合理但无意义的内容。

本文接着【为文字建立数学模型】一文继续聊。

ChatGPT 虽然复杂,但是它的内部原理其实和我们在【为文字建立数学模型】一文中所讨论的概率模型是一致的。

我们也来简单梳理下。

ChatGPT 的文字建模公式是语言模型基础理论的高阶扩展,它的核心公式是这样:

这里涉及到几个参数:

小伙伴们可以看到,这个公式和我们在【为文字建立数学模型】一文中所讨论的公式基本上一致。如果有小伙伴看过初代 GPT 论文,就会发现这个公式和论文中的公式基本上是一致的:

这里涉及到一个点,最大似然估计,我们来简单说一下。

统计学家(尤其是费歇尔爵士)观察到,很多时候我们不仅观测到现象(数据),我们还想知道背后的原因(模型参数)。既然数据已经发生了,那么最有可能的那个原因,应该就是那个能让该数据发生可能性最大的原因。这是一种基于观测进行反向推断的非常强大且直观的原理。

“似然”不是“概率”: 这点很重要,但容易混淆。

举个简单的例子:

假设你是一个侦探,房间里发生了一起“饼干失窃案”。现场留下了关键的线索:地上撒落了一些碎屑(这就是我们看到的“数据”或“结果”)。

你面前有三个嫌疑人(这代表不同的可能原因或模型):

    张三: 平时吃饼干时最容易掉碎屑,有 60% 的饼干都会被他弄出碎屑。李四: 吃饼干非常小心,只有 5% 的饼干会掉出碎屑。王五: 吃饼干马马虎虎,大约 30% 的饼干会掉出碎屑。

你作为侦探的任务是:根据现场发现的碎屑(数据),推断哪个嫌疑人(模型/参数值) 最有可能是“作案者”,也就是导致这个“碎屑现场”的原因。

最大似然估计(Maximum Likelihood Estimation, MLE)是怎么思考的?

MLE 就像一个聪明的侦探助手,它会问这样一个问题:“假设是某个嫌疑人偷吃了饼干(模型成立),那么我们看到地上有这些碎屑(观测到的数据)这件事,发生的可能性有多大?”

然后,它对每一个嫌疑人都问一遍这个问题:

    假设是张三吃的(模型参数=60%): 那他吃饼干时掉出这些碎屑的可能性非常高(60%)。这个可能性数值(60%)就叫做 “似然”。假设是李四吃的(模型参数=5%): 那她吃饼干时掉出这么多碎屑的可能性非常低(5%)。这个似然值就很低。假设是王五吃的(模型参数=30%): 那掉出这些碎屑的可能性中等(30%)。这个似然值在中间。

MLE 助手比较完所有嫌疑人(所有模型参数)的似然值(每个模型生成所观察数据的可能性)后发现:

张三(60%)对应的似然值是最大的!

于是,MLE 助手报告:在目前看到这些饼干碎屑(数据)的情况下,“张三最有可能是偷吃饼干的人”。换句话说,参数值 60% 是这个模型(吃饼干掉碎屑的概率模型)最有可能产生我们所观察到的碎屑数据的值。

这就是最大似然估计。

回到我们一开始的 ChatGPT 公式。

我们说 U 就相当于整个训练语料库,理论上 U 应该是全人类所有文字语料的合集,但实际上 ChatGPT 在训练时并不能也不可能收集到全人类的所有文字语料。ChatGPT 在训练时采用的语料主要有 Common Crawl、WebText2、书籍语料、维基百科、GitHub 等等,这些语料无法代表全人类的所有文本语料。但是在训练模型时,我们需要假设这些数据约等于全人类所有的文字语料。

ChatGPT 学习了这些语料之后,要学会预测,比如:“今天天气真___” 后面最可能跟什么?“好”?“不错”?“热”?还是“大象”?显然“好”、“不错”、“热”比“大象”可能性大得多。

ChatGPT 里有很多可以调整的参数。这些参数代表了语言的规律,比如哪些词经常一起出现(“天气”和“好”),语法结构,词的含义关联等。MLE 的核心要求是通过调整参数,使得在真实句子中实际出现的下一个词(比如“好”)的可能性,尽可能地大!它希望自己预测“好”的概率很高。这样就把一个比较复杂的语言问题转变为一个数学问题(最大似然估计),工程师们则通过梯度下降算法让计算机去逼近这个目标。

ChatGPT 用最大似然估计 (MLE),就像在玩一个超大型的“猜下一个词”游戏。它通过疯狂阅读人类写的所有文字,不断调整自己的“大脑”,目标只有一个:让它读到的所有真实句子,看起来都是“最顺理成章”、“最不奇怪”的。它学会的,就是人类语言中“最可能”出现的说话模式。所以它能像人一样聊天,但也可能像人一样犯错或说些“正确的废话”。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

ChatGPT 语言模型 最大似然估计 概率模型 人工智能
相关文章