模型微调的两大场景:

  • 把模型变强,学会原来不会做的事
  • 把模型变小:用小模型做大模型的事

大模型看起来很强,但其实只在做一件事情,那就是不停的预测下一个词

分词器和独热编码,就是分别在利用不同的策略对token实施数字化

分词器就是为每个token没配一个独立的ID

独热编码就是把一个二进制里的每一位都对应一个token

利用潜空间

  • 基于分词后的ID去升维
  • 基于独热编码去降维

一个神经网络的隐藏层就是在进行一次空间变换

其中隐藏层中的神经元个数就是你在变换后空间的维度

隐藏层中神经元个数比输入的多就是升维,反之则是降维

数据在进行完线性运算之后,还要经过非线性的激活函数,只有靠激活函数引入非线性,才可以让模型描述更加复杂的情况

潜空间就是一个没有符号、发音等等这些形式上差别的非常纯粹的语义空间

编码就是就是先把文本里的一个token都先编写成独热码,然后进行降维这个过程就是把输入的一句话根据语义投射到一个潜空间中,把高维空间中的对象投射到低维空间,这个过程叫embeding,也就是嵌入,在语言处理领域主要针对的就是单词或者token,所以这个过程也叫词嵌入

对词和词组合后的语义进行理解靠的就是注意力机制

注意力机制:作为一组词向量然后经过三个矩阵相乘之后,分别得到QKV三个矩阵,然后在经过一顿运算,最后还是会输出一组词向量

词嵌入已经解决了单个词单个token词义的问题,注意力机制要解决的就是许多词组合在一起之后,整体体现出来的那个语义。

只有把一句话里多个词同时输入到模型里面,才能解决整体语义问题

得到QKV之后,先把k进行转置,q与转置k相乘,会得到一个txt的矩阵A,即注意力得分,得到A之后要将A中的每一项进行一个缩放,就是除以根号Dout,为了让A矩阵的数值分散,而不是集中在o和1之间的饱和区,在进行softmax计算,softmax之后每一行加起来都是1,得到A‘,最后A’和V相乘

V就是在表示从词典中查出来的token的客观语义,A‘就相当于是这段话因为上下文关联而产生的修改系数。

注意力机制需要做的就是,需要它识别出那些因为上下文关联,而对词典原本客观的语义进行调整和改变的幅度

为什么A’能表示修改系数,关键就是Q和K相乘的过程,q乘k的转置,就是表示向量之间的内积,而内积就是表示一个向量在另一个向量上的投影,某种程度上就是体现在两个向量之间的相关关系

为什么一定要有两个矩阵Q和K呢