【生成式人工智能-七-大型语言模型的可解释性】

大型语言模型的可解释性

今天我们在使用大模型的时候,通常都会说模型具有的上亿个参数,且通常是一个黑盒,根本无法用常规的思维去解释出现这些结果的原因,事实上大型语言模型真的是无法解释么,能否了解模型在想什么呢?要想了解这个问题,我们要先了解大语言模型是如何实现输出的。

语言模型是如何工作的

1.把文字变成Token

现在有一些库是可以切分Token的,一般来说一个汉字可能就是一个Token,NLTK库也是做这个事情的,每个模型会有自己的Token库

2.将Token表示成向量

具体的来说,其实就是把这些Token变成一个多维度的数组,这就叫做Embeding,这样的好处是什么,语义相近的词,可以用表示相近的Embeding,具体的做法就是查找一个Embeding表,这个Embeding表是通过一个简单的神经网络训练出来的,神经网络中的参数就是Embeding的向量。

当然这些Embeding是没有位置关系的,我们要考虑位置关系,就有了Postion Embeding,这个可以用固定的算法,也可以用算法学习出来,这些之前的文章讲过,不再赘述。可以看一下之前讲过的。https://blog.csdn.net/zishuijing_dd/article/details/136416702?spm=1001.2014.3001.5502

3.考虑上下文Attention

这些Embeding的向量没有考虑上下文的信息,但是上下文不同,同一个字的含义也可能是不同的意思,所以就有了通过Attention 来考虑上下文,并把这种关系记录到Embeding中,attention 获得的score分数越高,证明二者相关性越高,这部分也在之前的文档讲过,不再赘述。https://blog.csdn.net/zishuijing_dd/article/details/136416702?spm=1001.2014.3001.5502

4.编码器和解码器

上图是一个形象点的表示,当我们有了token的向量之后,我们就输入模型当中,模型分为Encoder和Decoder,Encoder负责处理输入,同时把生成的向量作为Decoder的输入,然后每次生成一个Token,然后 又把新生成的这个Token和Encoder的输出一起作为输入再次产生输出。最后decoder的输出就作为此次模型的输出

了解模型的整体工作流程之后,我们再次思考这个问题,语言模型无法解释体现在那些方面呢?

语言模型无法解释体现在那些方面?

  1. 参数不公开

    如上encoder和decoder的神经网络,里面的参数众多,但是大多数模型并不公布它的参数

  2. 推导出结论的思维不明确

    当我们采用Decision Tree的时候,我们可以很明确的看到得出这个结论的路径,但是这个大语言模型没有这样明确的路径

  3. 模型是个黑盒子

    模型不是开源的,根本无法知道它内部的运作原理。

但是我们是否真的就完全无法解释大语言模型了么?

答案是否定的

语言模型通过什么方法可以获得解释性

我们有两种方法可以获取这种可解释性,通过语言模型的神经网络进行分析,或者可以直接跟它对话,询问原因。

通过语言模型的神经网络进行分析

通过对语言模型的内部的网络进行分析,我们通常可以做到以下这些:

找出哪些是影响输出的关键输入

比如 遮住某些词,查找对输出的影响

举个例子来说,我们可以遮住某一些词,如果不影响其中某些词的输出,说明这个词对其中这些词不是关键输入,反之则是关键输入

分析attention weight

上面计算attention 计算出来的score越大,我们可以认为这个Token对这个输出的重要性 越大。

分析关键资料,分析Embedding的信息等等

可以把神经网络每一层的输出分析,用它作为一个一个模型的输入来进行分析,看这一层的Embeding是否能具备了词法、文法等等的能力。

直接询问语言模型

除了分析模型内部的神经网络外,现在的语言模型虽然不开源,但是我们可以直接问它,说出回复这个答案的原因。

当然也衍生出了另外一个问题,这个答案究竟是模型胡乱编造接龙出来的,还是对的呢?当然这个也有人专门研究过,比如问它,输出这个字的置信度有多少,它的答案竟然很准确,当然也有很多例子能够说明他有很多真的是胡编乱造的。

找出这些可解释性,有什么作用?

我们费劲的找出可解释的模型,有什么用么,举两个例子:

可以预估模型的能力

比如我们可以可视化模型中每层layer之间对于每个输入的attention是否在变化,如果一直都是很平均,就说明模型还没有收敛的趋势,效果就不会很好

加速模型训练

可以从中观察那些数据对于模型是关键输入,我们就可以减少attention的数量,从而加速模型训练

相关推荐
qzhqbb1 小时前
基于统计方法的语言模型
人工智能·语言模型·easyui
冷眼看人间恩怨2 小时前
【话题讨论】AI大模型重塑软件开发:定义、应用、优势与挑战
人工智能·ai编程·软件开发
2401_883041082 小时前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
AI极客菌3 小时前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭3 小时前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^3 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Power20246664 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k4 小时前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫4 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
沉下心来学鲁班4 小时前
复现LLM:带你从零认识语言模型
人工智能·语言模型