图解 LLM(AI大模型)的工作原理


图解 LLM(AI大模型)的工作原理

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

在x(原帖链接见文章末尾)上看到有人分享一组图解LLM工作原理的帖子,内容通俗易懂,就搬运过来汉化一下,和大家一起学习!
分享者是Akshay,他是一位AI/ML工程师,在x上的介绍如下图所示:
他提到,在介绍LLM之前,需要先了解一下条件概率(conditionalprobability),应该是与高中、大学学的概率学相关。有一个很形象的例子:
有14个人,他们中的一部分人(7个)喜欢网球、一部分人(8个)喜欢足球、少部分人(3个)同时喜欢网球和足球、也有极少一部分人(2个)都不喜欢网球和足球。用图表示如下:
那什么条件概率呢?
其实就是在另外一件事情发生的前提下,某件事情发生的概率。比如上面的事件A和事件B,如果要表示在事件B发生的前提下,事件A发生的概率,那么表示方法是P(A∣B)。
所以,如果要计算一个人在喜欢足球的情况下,还喜欢网球的概率,计算方法为P(A|B)=P(A∩B)/P(B)=(3/14)/(8/14)=3/8。
再拿阴天和下雨天为例来将条件概率:如果将今天下雨当作事件A,阴天可能下雨作为事件B(按照常识,阴天会有下雨的可能),而且事件B会影响下雨的预测。所以,阴天的时候就可能会下雨,这个时候就可以说条件概率P(A|B)是非常高的。
回到LLM上来说,这些模式的任务就是预测下一个出现的单词。这就和前面讲的条件概率类似:如果给定已经出现过的单词,那下一个最可能出现的单词是哪一个?
所以,要预测下一个单词,模型就要根据之前给定的单词(上下文)来为每一个接下来可能出现的单词进行条件概率的计算,条件概率最高的单词就会被作为预测单词所选中。
而LLM学习的是一个高维度的单词序列概率分布。这个分布的参数就是经过训练的权重。但是这种概率毕竟是一种预测,并不是实际的结果,所以这个过程中就有一个损失计算(Losscalculation)的概念。
以下内容来自ChatGPT。
Losscalculation(损失计算)是指模型在预测过程中产生的误差的度量,通常用来衡量模型预测的结果与实际目标之间的差异。通过最小化损失函数,模型能够不断优化其参数,以提高对新数据的预测能力。
上图中提到的Cross-entropyloss和Negativelog-likehood是两种损失函数。
•Cross-entropyloss
Cross-entropyloss指交叉墒损失,用来度量模型预测的概率分布与真实标签(即实际单词)间的差异。
交叉墒用于计算两个概率分布之间的差异。在语言模型中,一个概率分布是模型对每个可能的下一个单词的预测概率,另一个是实际的单词标签的“真实分布”(通常是一个one-hot分布,即正确单词的概率为1,其他为0)。交叉熵损失的计算公式如下:
•NegativeLog-Likelihood
NegativeLog-Likelihood,负对数似然,简称NLL。是机器学习中常用的一个损失函数,尤其在概率模型和分类问题中广泛应用。
以上内容来自ChatGPT。
这种概率预测并选择最有可能的单词会带来一个问题如果总是选择可能性最大的单词,那么结果就是重复性的,这就让LLM显得缺乏创造性。
所以,这里面就有一个temperature(温度)的概念产生。
LLM中,temperature(温度)是一个调整模型输出概率分布的超参数,通常用于文本生成和采样。它影响生成文本时的多样性和创造性,以及模型在选择下一个单词时的随机性。
因为在LLM中,大模型通常会生成一个概率分布,表示下一词在给定上下文下出现的可能性。例如,模型可能会为每个可能的下一个单词生成一个概率,就像前面图中所画的:

temperature控制如何从概率分布进行采样:
•Lowtemperature(低温度,比如0. 10. 5):模型的输出会更加具有确定性,也就是更倾向于选择概率较高的单词,此时生成的文本更连贯、理性,内容更“保守”,但是也可能缺乏多样性和创意。
•Hightemperature(高温度,比如0. 8
1. 0):模型的输出会更加随机,也就使得低概率的单词有更大的机会被选中。这会增加生成文本的多样性和创造性,但是也可能导致输出不那么流畅或不太符合上下文。
temperature是通过使用softmax函数来调整每个词的logits(即原始的未经过归一化的分数)来对大模型的输出进行影响的。
softmax函数是一个激活函数,用来将向量中的每个值转换成一个概率分布。其输出的每个值都会被转换成一个介于0和1之间的概率,并且所有输出的概率之和等于1。
随后,作者给了两个不同temperature时候的示例来说明差别,第一张图是lowtemperature的,第二张图是hightemperature的。
所以,在softmax函数中,温度引入了一些调整,反过来这种调整又影响了采样过程。
最后作者给了一个很直观的代码示例来对temperature对采样的影响:
看来要学习LLM,还需要深入学习大学的概率分布、统计、线性相关的课程啊。
https ://x. com/akshay_pachaar/status/1919368985092780189


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录