美文网首页
大模型为什么能像人类一样回答问题?

大模型为什么能像人类一样回答问题?

作者: 失落的艺术 | 来源:发表于2025-04-06 19:07 被阅读0次

大模型回答问题的本质上是一个模拟人类的预测能力,但其本质是一个一个字的分类问题,也就是说,它每生成一个词或字都是一次分类。(看你在模型里怎样定义一个向量)

对于自然语言处理(NLP),举一个Transformer模型中机器翻译的例子,把“机器学习”翻译成“machine learning”。

它首先通过将“机”“器”“学”“习”四个字变成4个向量:机=x_1 器=x_2 学=x_3 习=x_4输入模型,然后通过考虑这四个字的信息,生成(输出)一个新的向量,然后将这个向量进行分类,得到machine=y_1(有多少个英文单词就有多少个类,这里假设按英语单词分类),然后生成y_1的这个machine单词继续和前面的“机器学习”做交叉注意力计算,再次输出(生成/分类出)第二个单词“learning=y_2”,然后接着将这个y_2向量和前面的y_1向量做注意力计算,生成新的向量,将这个新的向量作为查询对象再次和前面的“机器学习”4个向量做交叉注意力计算,此时会输出(生成/分类出)第三个单词“end=y_3”这个结束符号,此时程序结束运行。

对于计算机视觉(CV),例如最简单的图片分类任务,你会看到,ViT模型把Transformer的Decoder去掉了,为什么去掉呢?因为输入一张图片后,它只需要分类一次就结束任务了,就相当于上面只生成了一个单词y_1=machine就任务完成了,当然也就不用Decoder来循环通过生成的新向量和输入的原向量进行交叉注意力计算了。也就是说,Decoder部分旨在参考新生成的单词的信息特征,和源输入单词句子进行综合考量,以此进行下一次输出(生成/分类)。

我们再来看,为什么一张图片要分成多个patch,这里有什么玄机?在NLP中,我们很好理解,一个字或一个单词就是一个向量,那么在CV中,我们是否也可以以此对比来看,或许我们能有点启发。例如,一个句子的意思是由多个单词组成的,随着一个个字的增加,这个句子的意义也慢慢地稳定下来,那么一张图片是否也可以是由多个碎片图片拼接而成,随着逐渐增多,这个图片的类别也被确定下来。

一个字词一般和它最相关的字词同时在文本中出现,就比如金庸小说中,“郭靖”和“黄蓉”这两个词最相关,“杨过”和“小龙女”这两个词也最相关,相比较“黄蓉”和“小龙女”反而相关度不高。

同样,一张图片的patch一般和这张图片的其它相邻的patch最相关,并且严格来说,是这个“猫猫”的图片的一个部分和其它部分相关,例如眼睛和鼻子和耳朵相关,而眼睛和这个图片的背景patch则没有什么关系。所以,当一个猫猫的照片出现在不同的地方时,眼睛和鼻子有很强的相关性,而背景因为经常变化,也就没有规律可言,也就是说,眼睛和背景(例如白云)没有什么相关性。

因为每次一张图片都有这种类型的耳朵和鼻子,经过多轮的迭代,在注意力机制上算出的值就越来越大,通过多个Encoder的堆叠,模型越来越会关注更加抽象的特征。只要数据量足够大,就可以找到所有patch中的相关性,而把不相关的排除出去。

在ViT模型中的表现就是,把一张猫咪的图片分成196个patch(14*14个),CLS 这个Token是可学习的变量,就相当于CNN中卷积核,通过它依次与其它patch进行注意力计算(点积),越相关,值越多,即余弦值越大,在坐标轴上表现就是两向量靠的近。

其实这就是一个特征融合的过程,这196个向量因为是一张图片分割开来的,按理说,有猫咪特征的patch,在高维空间的表示更集中。此时,我们可以通过注意力机制的计算,越相似,权重越大,我们越需要这个信息。当参考了所有patch的信息最终融合出了一个向量,这个融合的向量就根据向量的加减来进行更新。在高维空间的坐标轴表示上就是不断移动微调到了最符合它的位置。

什么是注意力机制?

人(Q)查询一张图(K)。每个人关注的重点不同。

也就是说,这个人的查询向量Q的维度里的值的不同决定了后来查询出来的东西,就很像一个的三观,有什么世界观就看到什么世界K,有什么价值观就感受到什么是有价值,还是无价值的,有什么人生观,就认为什么人生是有意义的还是无意义的。

既然这么重要,那么我这个查询向量是是什么呢?我关注的是什么呢?

通过计算我的这个向量和事物的向量之间的相似度,也就是说,我眼中有什么,就只能看到什么。一个事物有多个维度,包含很多维度的信息。例如一个人,有颜值,有身高,有学历,有家境,有修养等等维度,你看重哪个维度呢?如果是公司可能更看重其学历,如果是。

例如我看到这张图片,这里每个像素都算是一维的,更多关注到的是这张图片的红色区域的信息维度,而绿色区域则没有太多的关注,白色区域的信息则被我完全忽略了。当然,如果这张图片像素太多,可以转换(映射)成其他更加低阶的维度。

下面通过举一个向量的例子来说明(Q,K,V这3个向量现在各只有一个向量,如果多个向量,就是批次操作)

通过Q*K,获得关注值,然后通过softmax进行归一化,获得对这张图片每个维度的关注值(权重)

a = Softmax(q_1,q_2,\cdots,q_n)*(k_1,k_2,\cdots,k_n)(Q中的一个向量的有n个维)

然后把这个每个维度上的权重再对应乘上这个值K,获得加权后的值,我们叫注意力,Attention。当然这个这个K可以是V,但是这个K一定和V有一定的关系。

A = (a_1, a_2,\cdots, a_n)*(v_1, v_2, \cdots,v_n) = (a_1*v_1, a_2*v_2,\cdots,a_n*v_n)

此时,我们拿到了最后经过我们的世界观看到的图片(或文本)的信息。

我们用一张猫咪的图片来直观解释 ViT 中的自注意力过程:

假设我们有一张猫咪这样的图片:(请脑补)

步骤一:把图片切成 patch(小块)

比如这张图片是 224 \times 224 像素,我们把它切成 16 \times 16 的 patch,就会得到 14 \times 14 = 196 个 patch。每个 patch 看起来像下面这样:

[Patch 1] [Patch 2] [Patch 3] ... [Patch 14]
[Patch 15] [Patch 16] ...        [Patch 28]
...
[Patch 183] ...                 [Patch 196]

每一个小 patch 就像一个“词”一样,是 ViT 中的信息单位。


步骤二:每个 patch 转成一个向量(进入高维空间)

每个 patch 被展平并映射成一个向量,比如维度为 768。这就相当于你把原图的一个区域,转成了一个点 \mathbf{x}_i \in \mathbb{R}^{768}

\text{Patch}_{i} \Rightarrow \mathbf{x}_i \in \mathbb{R}^{768}

此时,猫耳朵、眼睛、鼻子、背景等都变成了不同的点,分别散布在一个高维空间中。


步骤三:进入自注意力机制

每个 patch 的向量 \mathbf{x}_i 通过矩阵映射生成三组向量:

\mathbf{q}_i = \mathbf{x}_i W^Q,\quad \mathbf{k}_j = \mathbf{x}_j W^K,\quad \mathbf{v}_j = \mathbf{x}_j W^V


通俗解释注意力:假设你是“猫耳朵”patch

你是“猫耳朵”patch(假设是 Patch #35),你需要决定自己在这个图像理解任务中该关注谁?

你会:

  1. 拿自己的 Query 向量(\mathbf{q}_{35});

  2. 去和每个其他 patch 的 Key 向量做点积,看看谁和你“更相关”;

  3. 比如你发现“猫脸”(Patch #44)和“背景”(Patch #180)都和你有关,但猫脸更相关;

  4. 然后你通过 softmax 得到一个注意力分布(比如你给猫脸 0.6,给背景 0.1);

  5. 用这个分布去加权别人提供的信息(他们的 Value 向量):

    \mathbf{z}_{35} = \sum_{j=1}^{196} \text{softmax}(\mathbf{q}_{35} \cdot \mathbf{k}_j) \cdot \mathbf{v}_j


在高维空间的含义

每个 patch 原本是一个向量 \mathbf{x}_i \in \mathbb{R}^{768},经过注意力机制后,它被更新为:

\mathbf{z}_i = \sum_j \alpha_{ij} \cdot \mathbf{v}_j

也就是说,这个 patch 的表示不再只包含它自己,而是融合了全图中相关区域的信息

你可以想象,每个点 \mathbf{x}_i 在高维空间中的位置被“拉动”了——往相关 patch 的方向靠近,从而更新为新的位置 \mathbf{z}_i


直观类比:

每个 patch 向其他 patch 发出“注意力射线”,每个 patch 说:“我是谁?”然后通过“注意力射线”从其他地方收集信息来更新自己。


总结:整个过程在做什么?
阶段 含义
切 patch 把图像离散成局部区域(词)
映射向量 每个 patch 映射成高维点
自注意力 每个 patch 根据 Query 判断自己该向谁要信息(Key),从而更新自己(通过加权 Value)
高维更新 每个 patch 的表示被更新为全局融合后的表示,更懂全局上下文

自注意机制

通过计算我和外部世界这两个事物的相似度,这个人就被我打上了标签,给他进行了某个方面特别的关注。本质上就是两个文本之间的匹配关系。所以,基于这个机制,后面才会有自注意力机制,通过计算这句话中的每个词之间的相关性。这里的自是在句子层面上说的,意思是一句话中内部的。在词与词层面上看,还是两个事物的注意力。

你问,这当然很好,那我的X和Q是什么关系?我又怎么样知道我的原本Q值呢?

其实上面我们一直把Q当成了我的X,其实他们本质就是一回事。所以,才会出现自注意力机制。我的内容是什么,我就和什么最相识,我就关注什么。比如,“我爱你。”这句话,和“我刚出完中午饭。”这两句话,几乎不相关。“我爱你”这句话最相关的一定是“我爱你”,和“我喜欢你”这句话也有点相关,尽管不是那么相关。

所以,我们的自注意机制就是关注我们本身的数据。一切都可以转换成文本(数据,向量),和外界的就没怎么关系了。

没关系,你的Q是经过训练出来的。你的Q一定符合你提供的整个大数据这个数据分布的函数,即y=f(x),只不过你不知道这个函数是什么罢了,而神经网络干的事情就是通过训练,即数据拟合来找出这一个近似的函数。

最后,这个Q和我提供的一张照片,即输入变量X(或一句话)是相等的还是不相等,这里按理说,是相等的,其实Q,K,V都是X的线性变化,我们这里就叫做X的权重了。

把它们看成是一个黑盒子,我们只能看到输入X,然后输出Y。

大模型的注意力机制

而我们的大模型LLM,则是把所有的人类关注都考虑进去了,因为给它提供的数据是世界知识,如果理想情况下,可以把整个互联网产生的数据全部拿来训练,那这个训练出来的函数,当然符合一般人的关注点。

随便给它输入一句话X,它就能生成一段与你这句话很相关的回答。基于给定的句子中的信息,我能知道和你这个句子最相关的信息的句子。

因为句子中的每个词都与它整个句子中的其它的词汇有关系。它能记住这句话中每个词汇之间的细微关系。

如果这句话是整个文本,例如一本金庸小说,它就能计算出整个文本中每个词汇之间的信息。那么你提问关于这个小说的信息,他就能通过它来计算出每句话和它最相关的句子,给你最相关的回答。

在这个函数中(模型中)已经包含了所有句子的相关性,从某种程度上看,它可以说已经掌握了人类语言的语法规则了,不过这个规则很复杂,只能用一个模型还拟合整合这个函数(规则)。

相关文章

  • 20201214阅读营day1感悟

    1、气球回答问题时,往往会运用黄金思维圈先问对方为什么问这个问题2、气球讲格局ABC模型,每个人的时间都一样(A)...

  • 余生不孤独

    我有时候会像思考“人类是哪里来的”这个哲学大问题一样去思考这个问题—— 我为什么要生孩子? ——...

  • 人为什么不吃人

    前提,假设递弱代偿的逻辑模型成立。 问题:人为什么不吃人,即人类为什么不食用人类? 首先,这绝不是人类文明的产物,...

  • AI思维学习

    人工智能是毁灭人类的怪兽,还是解放人类的福音,要回答这个问题,我们如下几个方面来讨论。 智能模型 什么是智能? 智...

  • 创新思维--重塑你的思维从这里开始

    01为什么要学习思维模型? 想让我们自己找到更好解决问题的方式,为什么思维模型能更好的解决问题?通过学习掌握更多知...

  • 3839-0504-Day6

    1、SCQA模型 . S场景、C冲突、Q问题、A回答 2、SQA模型 3、SQAA模型

  • 男性朋友女性朋友

    人类的情感关系是很独特的,像谜一样。特别是男女关系。 处了很长时间的异性朋友到底能越线成为恋人吗?这个问题人类已经...

  • 《超越自卑》第十章:职业

    1.束缚人类的三条系带构成了人类的三大问题:职业(工作)、交友、爱。 2.母亲也像任何人一样,在人类的分工制度中占...

  • 比特币这么值钱,勇气从哪里来?

    比特币为什么这么值钱?这个问题我也不知道怎么回答,就像要回答“人民币为什么这么值钱?”这个问题一样的傻逼。 为什么...

  • 答案之书回答不了

    生活中总是充斥着各种问题,但却不总像试卷一样有答案给你。 不知道《答案之书》会怎样回答。 问:我今晚几点能睡着? ...

网友评论

      本文标题:大模型为什么能像人类一样回答问题?

      本文链接:https://www.haomeiwen.com/subject/gsvsvjtx.html