关于大模型学习的一些随想

1. 大模型前夕————自然语言处理中的问题:如何让机器理解人类语言

a. 词袋法

  1. 根据词构造词典,句子中有这个词表示为 1,没有这个词表示为 0
  2. 如果这个词出现多次,在1)当中没有区别,因而,将句子的表示中出现这个词的次数写在上面

缺点:无法识别关键词

b. TF-IDF(词频-稀有性)

1)词频: 该词出现次数/所有词 来表示这个词
2) 稀有性:log(总文档数/该词出现的文档数)

缺点:没有语义

c. Word Embedding(词嵌入,word2vec)

建立词表矩阵 -> 根据文本和词表转换成词向量 -> 神经网络 -> 预测词(计算loss)
反向传播修改神经网络和词表矩阵的词向量,最后需要的是词向量,神经网络不重要
在GPT-2中词向量的维度有768维

缺点:不能根据上下文语境理解不同语义

d. BGE, BAAI General Embedding (Transformer Encoder, self-Attention 根据上下文捕捉语义)

注:Attention注意力机制在RNN和LSTM时代就有了,只是那时候依赖复杂的循环或者卷积操作。
文本 -> Embedding模型(BGE) -> 不同语义
应用在RAG中

2. Transformer Decoder部分

自然语言 -> 嵌入层 -> Transformer层 -> 输出层
Transformer层展开 -> 多头注意机制 -> FFN前馈神经网络 前后还有归一化和残差连接等操作

  1. 训练不稳定:归一化 ( 减 均值 除 标准差 )
  2. 梯度消失:残差连接 (上一层的输出除了给当前层还传输到下一层,使得链式法则求导之后权重至少为1,将梯度传过来,而不是0)
  3. 过拟合:dropout (训练的时候舍弃一定百分比的神经元输出)

自注意力机制

考虑三个词向量,x1, x2, x3,考虑自注意力则是希望他们能够根据上下午语境改变向量得到新的 z1, z2, z3。那么transformer是这么做的:
考虑x2的情况: z2 = a1·x1+a2·x2+a3·x3, 其中,ai是softmax后的权重 ai = e^Ai/(e^A1+e^A2+...), 原始权重 Ai = xi·x2
可以看到对于x2来说,权重A1 = x1·x2 中 x1 表示的是x1能提供的信息,x2表示x2想要的信息,而最后参与z2计算的x2表示实际的价值。
这样xi身兼多职,于是考虑使用Q,K,V分开仔细这三个功能:Q是想要什么,K是提供什么,V是实际内容,于是公式变成:
考虑x2的情况: z2 = a1·v1+a2·v2+a3·v3, 其中,ai同样的softmax,A1 = q2·k1
QKV矩阵:Q = X·wq (word_dim, ebed_dim)·(ebed_dim, k_dim) ; K = X·wk (word_dim, ebed_dim)·(ebed_dim, k_dim) ; V = X·wv (word_dim, ebed_dim)·(ebed_dim, ebed_dim) 可以代入ebed_dim=768,word_dim=3

思考

大模型,也叫大语言模型,主要代表GPT(Generative Pre-trained Transformer), 生成式预训练Transformer模型。现在当下的“人工智能”的主流,采用Transformer的Decoder,多层堆叠Transformer层,变成超大规模的参数模型,从而训练得出智能化。chatGPT在做的事情:
聊天:用户的请求文本+提示词文本作为上下文计算每个词的自注意力,然后推测下一个词,然后再将这个词和之前所有文本重新计算自注意力(自回归模型),如此反复,生成用户的答案
上下文长度:然后现在为什么聊天会提示新开,就是因为上下文长度太长会导致计算量越来越大,因为每一个词都要计算前面所有词,因而设定了一个上下文上限
失忆:在一些地方发现GPT会失忆,也是因为采用了一些类似topK的注意力选择机制而忽略的词就是你想要的就变笨了
幻觉:同样在一些地方发现GPT会产生幻觉,也就是假的不实的消息,也可以理解成他生成的新的东西,但是可能是错误的,一个是说明他有创造性,第二个就是要避免错误,比如参考文献往往就是错的,但是编程coding和数学计算上貌似不存在这个问题,那些也是精细的文本,应该是用了什么技术达到的
所谓的智能,也只是不断在猜测下一个词是什么,包括今年火的小龙虾,claude code, 就只是写了一个程序代替用户与大模型交互达到用户的目的,包括调用程序和返回程序结果给大模型,然后大模型再告诉程序怎么做。
这么多年的发展,transformer层的各个部分都被各种优化了,各个厂商的大模型能力从开始的巨大差距到现在几乎持平,也在告示着通过优化网络组件带来的优化接近上限的,下一代人工智能究竟指向何方,大模型工程师的热门程度能持续多久。