alchemy tricks

alchemy tricks

​ 本文用于记录炼丹过程中的各种心得经验,长期更新

computer vision

  • Transformer 架构主要关注全局的,低频信号信息(就是一个近视眼);CNN 架构主要关注局部的,高频信号,对细节信息敏感但是缺乏全局的语义信息。如果想把两种架构的优点都用上,可以考虑以下几种技巧:
    • 在生成多尺度特征图时,用 transformer 架构生成低分率的,具有更强语义信息的低分辨率特征图;而用 CNN 架构生成高分辨率的,更具有细节信息的特征图
    • 在局部范围(局部窗口)内使用 self-attention 而不是全局范围的 self-attention(计算开销又大效果又不好)
  • 感觉 self-attention 并不是非常适合 CV 任务,以后希望能够出现一种 CV 专用的更强的架构,感觉在 CV 里面改进 transformer 是一个很好的方向(softmax 函数只会让信息的方差变小)
  • 使用 group 技巧可以很好地降低参数量,包括但不限于 Conv2d 的 group,还有 group q,k,v 等等经典技巧
  • 虽然前几年在空域内的卷积的方法(CNN)的效果一直比使用傅里叶分析的方法(频域内的分析)效果好,但是近几年工作来看频域分析的方法又开始杀回来了,可以观察到空域的操作并不能完全代替频域的操作,以后说不定能开发一个结合空域和频域的优点的算子

natural language processing

  • 大力出奇迹,没什么好说的,堆钱上去就可以了,RAG 和知识图谱都被大力出奇迹的方法给干掉了
  • 从 chatgpt4-o1 来看,模型的训练技巧可能往强化学习方向转变一点

multimodal learning

  • 还不是特别深入了解这个方向,目前这个方向看到的论文都是工程性的工作,感觉没有什么很理论性的东西(说实话感觉纯纯是大力出奇迹),无非是模态融合和模态对齐。训练多模态大模型的时候,是否有高质量的,对齐的数据非常影响模型的效果。模态融合方法无脑使用 cross-attention 就行了
  • 对于不同模态的数据要考虑不同模态的数据特点,虽然有很多声音说想要一个与数据模态无关的一个通用模型架构(例如 VIT),但我个人看法是对于不同的模态使用更加适合特定模态的架构会比较好
  • 对齐不同模态的数据要考虑不同模态数据特点,例如想让语音模态数据对齐文本模态,需要把序列化的语音数据下采样再和文本模态进行对齐(反之输出的时候要把语音模态的序列数据进行上采样),因为相对于文本模态,语音模态数据往往噪声更多,数据的信息量密度更低

reinforcement learning

  • 纯强化学习方向很久没有什么大的突破性发展了,算法无脑选择 PPO(可能 rainbow DQN 也可以),其他的算法效果都不是很好,2017 年的算法过来这么多年还能是 SOTA 本身就能说明很多问题了
  • 现在强化学习的一个方向方向是和深度学习结合起来,比如 transformer RL 等工作就是想用深度学习序列建模(decision, reward, action 的序列)的方式去代替 MLP 来进行决策(感觉就是把深度学习的那一套给无脑搬过来用一下)

deep learning theary

  • 门槛很高啊,如果想跟上前沿研究方向还要学实分析,泛函分析,无穷维分析,群论,高等概率论,随机过程(主要是偏分析和概率方向,代数方向见的不是很多)

generalized tricks