浅谈AI的历史

on 2024-04-09

本文会简单介绍下个人对于AI历史的理解, 主要着重于目前已经产生较为广泛的影响并且有较好的创新性(Novel)的工作的方面, 尝试对于目前AI发展的脉络进行梳理

时间线

深度神经网络的再崛起,起源于视觉

一切的起源还需要追述到李飞飞创建ImageNet,并且举办挑战赛说起。

AlexNet(ImageNet2012)

AlexNet当时参加了2012年的挑战赛,并且一举大幅减少了图像识别的错误率。(26.2% -> 15.3%)(Alex,Ilya,Hinton三个作者都是大神)

具体的可以通过沐神的这个视频来了解下。

主要的点:

  • 观察到使用更深的网络效果会更好
  • 使用卷积神经网络
  • 使用GPU
  • 使用较多的参数(60M)
  • DropOut防止过拟合

ResNet (ImageNet2015)

  • 问题:深的神经网络很难训练,比如会出现梯度爆炸或消失的问题无法收敛
  • 结果:使用残差神经网络使得网络更容易训练收敛,让更深的网络效果更好得以实现

思路:

  • 即使新层都是identity mapping,效果不应该更差
  • 新的层不再直接学习X,而是学习 H(X)-X,即是学习残差

从有监督到无监督

RNN Seq2Seq 的Encoder/Decoder使用RNN来作为序列的预测器

Transformer (Attention Is All You Need) 当时主要用于翻译领域

(CNN / RNN 终结者?)

  • 把Encoder/Decoder 中 RNN/CNN 转为只使用 Attention
  • 对比RNN
    • RNN的H(t)需要依赖H(t-1)的结果,难以并行
    • 深度较深之后,前后关联性会消失
  • 对比CNN
    • 较难跨较大区域进行关联
    • CNN有多输出通道,可以同时关注多个区域(MultiHead来源)
  • Attention
    • 可以并行
    • 更好的结果
    • 前身Seq2Seq,引入了Encoder/Decoder+RNN
      • Encoder使用RNN依次将词的影响嵌入到隐藏层中
      • Decoder使用Encoder的state作为上下文输入,再结合每个步骤已产生的内容,来预测下一个字符
      • 编码器与通过<eos>结束,解码器开始为<bos>
    • Attention
      • Q(查询,意志线索)x K(键,非意志线索)x V(值,感觉输入)
      • Q x K (注意力评分函数,如高斯核)
      • 加性注意力,注意力评分函数中具备Wq,Wk的可学参数
    • SelfAttention,看起来是QKV都等于X,只学一个Wq,Wk?
    • MultiHead: 因为没有使用Additive Attention,将QKV以可学习参数W投影到低纬度进行Attention计算,再加和,使得反向传播的时候可以学习到不同的主题
    • Softmax,转换成概率分布(人话,和为1)
    • 位置编码
  • 根据Karpathy的分享,只是预测下个单词的Transformer其实没有办法完成问答,需要一些User/Assitant的预料进行第一步的FineTune,再经过HFML进行第二步的强化学习的过程
  • 较为适应翻译类型的任务

GPT 2018/06

  • OpenAI
  • decoder only
  • 类似于视觉中所做的那样,先训练通用的预测下个语句的模型
  • 再进行FineTune,即添加一个线性层和前面的模型一起梯度更新,对于下游任务进行适配,分类,蕴含,相似,多选

BERT 2018/10 Bidirectional Encoder Representations from Transformers

  • Google,主要用于分类问题
  • encoder only, 深
  • 预训练模型(后续可以再训练/Finetune)
  • 双向,遮掩语句的一部分而不是预测下个Token(完形填空)
  • 受GPT和ELMo启发
  • 数据集是GPT 4倍数据,参数大三倍
  • 放入 [CLS] [SEP]标识
    • [CLS]+[POS0] 用于最终的分类输出
  • pre-training: 无标号数据进行参数训练
  • fine-tuning: 预训练初始化参数,有标号的数据进行训练
  • 所属句子,位置信息都是学习得到的

GPT-2 2019/02 (Language Models are Unsupervised Multitask Learners)

  • WebText, 1M text, 1.5B params
  • ZeroShot,泛化性更强,多任务学习(不给到下游应用样例)
    • 下游任务使用时不需要调整模型,不需要FineTune
    • 增加Prompt,提示当前是在做什么任务
    • 使用Common Crawl,TB级别数据,信噪比较低,转而使用reddit,8M txt,40GB txt

GPT-3 2020/05 (给到比较少的下游用例)

  • 175B, params
  • 下游任务时不做主模块的梯度更新(不再进行FineTune)

Instruction GPT

ChatGPT(GPT-4)

弱监督的视觉模型

ViT

  • 使用Transformer来处理图片
  • 需要降低序列长度,这里将16x16合并为一个
    • patch embedding:Linear Projection of Flattened Patches
    • 它是个全连接层
  • CNN,先验信息,locality和平移不变性
  • 但是如果数据提升后,可以超过CNN
  • 借鉴BERT的[CLS] classification当做第一个HEAD,用于分类

CLIP

3D

这块比较独立,后续计划单独放一个

NeRF

  • 体渲染隐式表达,空间每个点的不同方向,透明度,颜色

3DGS

  • 高斯表达

其他的一些思考

AI对于可以从头搭建的人的意义在于,设计它的过程是一个设计一个可以自我学习的系统(无论是有监督或无监督)。

这个系统一旦设计完成,确认在数据集上可以稳定的进行收敛,就可以通过GPU【加速+重复+复用】这一过程。

纵观整个发展历程,预训练模型完成了有监督到无监督,针对性模型到泛用性模型,小模型到巨型模型的转变。

这一转变,从视觉发起,在Transformer发明后在文字的补全、预测上逐渐扩大影响力。把Transformer重新应用回视觉,再加上对比学习的预训练,看起来还可以继续突破图片+视频的限制。

将来大模型会发展到哪个地步(IQ特别高?),小模型是否还有生存空间,大小模型是否可以协作,大模型是否可能产生小模型,都是很有趣的问题。

MLi ReadPapper