Skip to main content

Transformer解析

  1. 精细的抽象,记忆空间特别大
  2. 大数据,大算力,大模型

  3. scaling特性,可以训练很大的模型,用很多数据获得更多智能

  4. “硬件彩票”,高强度对着GPU设计,能打满GPU利用率
  5. 在nlp问题里面,通过逐个处理新的token,递归得进行抽象
  6. 使用少量的权重对自然语言逐个token进行计算
    1. 先用kq权重映射到当前token对应的空间,再用v权重映射到输出
    2. 通过多层叠加,使得kqv权重能表达整个sequence的范围
    3. 通过少量权重、大量的计算扩展了表达空间
    4. weight的存储效率非常高,充分的训练,提高了对样本抽象的质量
  7. 语义压缩
    1. LLM难以处理细粒度的语义差异。它们的内部概念结构与人类对类别归属的直觉不相符
    2. LLM侧重于统计压缩,力求最大程度地减少冗余信息;而人类则更注重适应性和丰富性,强调保持灵活性和上下文的完整性
  8. hidden size 7168的向量维度是不是太少?
    1. 要表达所有的语义
    2. 线性表达的表达效率低?
    3. 7168 hidden 向量既要表达当前需要生成的token,还要表达高级的语义总结抽象,短期和长期的目标矛盾
      1. 用于长期的hidden向量专门计算,并缩减维度尺寸(1024?),可以减少KVcache和计算量
      2. 训练模型,自动在sequence中间生成特殊的token,用于表示抽象的高层目标

多层映射(等高线)

image.png

  1. 每一层的所有的hidden status的集合,表示了当前的所有信息(语义)
  2. 每经过一层相当于把一种向量空间的表示,映射到另外一个向量空间
    1. 每一次梯度下降都优化一点映射关系,增加不同类的距离,减少同类的距离
    2. 对输入的hidden status理解得越深刻(抽象得越高级),映射分隔得越准确,输出的结果越好
  3. 经过多次映射之后就能直接得到结果需要的index
  4. 非常大的线性映射的参数:DeekseekV3 671B中,大头(98%)参数是,256专家*60层*44MB=670GB
  5. 每个expert有三个linear,总参数量 = hidden_size * moe_intermediate_size * 3层 = 7168 * 2048 * 3 = 44MB

缺点

  1. 记忆和人类不一致,而且没有统一的表达,不通用
  2. 没有自主意识,还是在算概率,逃不开数学上的特征分割,虽然不能证明当前的数学基础、梯度下降是错误的,但是AGI肯定不是只有这些,AGI更多的是一种复杂的工程,而不是简单几个公式
  3. Transformer架构个在处理长上下文时,会受到二次复杂度(浪费算力),以及长度外推能力弱的限制。

Attention

  1. 每层每个token计算的输入是前面所有token的key和value
    1. 从信息流的角度来看,不是一个树形的拓扑
      1. 实际上一段自然语言通过字、词、短语、句子等层级结构组合出表达的语义
      2. 类比于卷积的空间约束,自然语言语义应该需要树形层级结构的约束
    2. 所以可以采用KV cache进行缓存并加速
  2. 多层之间不能共享权重
  3. 动态性欠缺
  4. 随序列长度增加而变慢的attention机制
    1. 从信息量来说,句子长了,包含的信息肯定是变多了,空间复杂度在O(T)和O(1)之间
      1. Transformer 的时间复杂度为:O (T^2)、空间复杂度为:O (T^2)
      2. RWKV的固定大小的status存储器也是不合理的(不考虑外部记忆),时间复杂度为:O(T)、空间复杂度为 O(1)
    2. 相对于人脑,每个新的token都要重新计算一遍底层的语义,而不是直接根据前面语句的总结进行调整
    3. 缺乏更高维度的动态性
      1. MOE、CoT、稀疏 都能提高动态性能力
  5. 速度显存恒定的FFN全连接网络

接口API

  1. transformer利用了语言的特性,在attention中间,使用自然语言作为通用的输入输出接口和表达
    1. 自然语言离散的Token效率比较低,作为CoT太慢,潜式思维链(Latent Chain-of-Thought)是一个改进方向
  2. attention中间的输入输出都是用于表达语言的一个序列的特征。
  3. 这个序列非常重要,因为序列都是由编码的token组成,可以非常灵活得表示一个非常复杂的语义
  4. 那么这个跟语言其实是有异曲同工的效果,语言也使用
  5. 很多个文字来表达一个语意,每个文字的空间不是很大
  6. 搜索空间
    1. 就比如说汉字也就几千个字  transformer相当于是在模仿语言,
    2. 把整个模型的搜索空间限制为自然语言这个尺度(约束),极大缩小了模型的搜索空间

研究者认为

LLM之所以在简单理解任务中无法提供准确且稳定答案,是因为这些模型缺乏对语言的真正理解:它们生成的词语如同语义「黑箱」,只是近似于语言的表面统计和解析过程中较「自动化」的部分。

此外,LLM并不适合作为语言理论,因为它们的表征能力几乎是无限的,这使得它们的表征既是任意的,又缺乏解释性基础,属于通用函数逼近器这一类别,而后者已被证明能够逼近任何数学函数 。

较自动化部分,表示抽象不够高级,只是对低级别的概念进行抽象,不能进行高级别的抽象。虽然级别低,但是AI的信息容量足够大,和人类比,更像是记忆力很好的书呆子

它们看似合理的表现,隐藏了语言建模方法本身固有的缺陷:智能实际上无法作为统计推断的副产品而自然产生,理解意义的能力也不能由此产生。