前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

怎么定义世界模型,Sora/Genie/JEPA 谁是世界模型呢?(1)

qiguaw 2024-11-19 09:16:17 资源文章 15 ℃ 0 评论

说这个问题之前先看一下什么是世界模型,它的定义是什么?

首先世界模型的起源是咋回事呢?

其实世界模型在ML领域不是什么新概念,远远早于Transfomer这些东西被提出来,因为它最早是强化学习RL领域的,在20世纪90年代由 Juergen Schmiduber实验室给提出来的。

2018年被Ha和Schmiduber发表了用RNN来做世界模型的论文,相当于给他重新做了一次定义。

然后就是最近跟着Sora,Genie,还有JEPA一起火了起来,这里面有杨丽坤的功劳,因为他就是一直想研究这东西,而且坦率说,他虽然带着Meta的team弄了Llama,但是心里一直很不爽,他对于现在世界流行的类GPT这种的Transformer的概率模型打心眼里是看不起的。


世界模型东西太多,这里我就总结了3个重要的点:

1- 必须符合因果论

2- 必须符合物理定律

3- 基于离散动作和奖励信号来训练,这个有点牵强,但是姑且加在里面,因为生物体对这个世界的认知,主要靠的就是这个模式。

其实看到这这篇文章基本就可以结束了....

但是我们还是细致分析一下吧,毕竟水我也争取水他一两千字...

我们先看看几个模型的实现轨迹,关于Sora,Genie, JEPA的。

Sora我就不讲了,感兴趣的可以看这个系列:

上一篇的链接: 多模态MLLM都是怎么实现的(7)-Sora (qq.com)

上上一篇的链接:多模态MLLM都是怎么实现的(6)-Dit Diffusion Transformer (qq.com)

上上上一篇的链接:多模态MLLM都是怎么实现的(5)-Backbone, Unet or Transformer?从0搭建一个SD (qq.com)

上上上上一篇的链接:多模态MLLM都是怎么实现的(4)-去噪声 (qq.com)

上上上上上一篇的链接: 多模态MLLM都是怎么实现的(2)-DDPM (qq.com)

上上上上上上一篇的链接:多模态MLLM都是怎么实现的(2) (qq.com)

上上上上上上上篇的链接:多模态MLLM都是怎么实现的(1) (qq.com)

Genie和JEPA我没讲过,在这个文章里面先扫扫盲

这篇文章估计只够讲完Genie的。

Genie就有点像生成8bit任天堂游戏的一个模型

我们不关注画面,主要看它的能力,这个模型根据已有的数据和论文,大概能推出来用3万小时时长的无标注视频(应该基本都游戏),给一个11B左右的模型灌进去,进行无监督的学习,没有label标注。

Genie的训练是有3个模型完成的。第一个就是蓝色的video embedding,就是字面的意思,第二个是黄色的Latent action model,它的任务是学习连续帧之间的潜在动作(潜空间表征),红色那个dyanamics model就是整合两个模型的输出作为输入,用这个来预测下一帧的action。


这三个东西用的都是ST-Transfomer,spacial-temporal如果没看过,就当它是Transfomer就可以了,有点像sora的Dit,但是不同的是它创建了Spatial attention专注于空间的注意力计算,还有Temporal attention专注于时间的注意力计算,这么做的好处是什么呢?

比如下图的一个WH的矩阵,然后乘以T就是来了T时间步的这些step,进入到网络里,Saptial attention就关心WH维度就可以了,它算一个1*H*W的Teansor 注意力,而Temporal就关心T时间步,它就算 T*1*1的一个Tensor(就是个向量了),然后一加,就不再需要算T*H*W了,有好事的观众是不是看出来了,有点像Lora,虽然不相同,但是逻辑就是一个低秩分解,这么做的好处,训练起来会非常快。


然后就是Genie 的LAM,第一眼看上去有点像VAE,传统的VAE是压缩么,来做表空间到隐空间latent的降维,这个LAM,你要硬说算降维也没错,但是它的实际能力主要是要通过i到t帧+一个t+1时刻的帧来通过LAM的encoder去生成一个下一帧动作的action的概率at,然后用at+LAM Decoder去预测帧(xt+1)'

接下来正牌的VAE上场了,它的视频分词器(蓝色的)叫SVT,就是基于VQ-VAE的一个VAE


这两个模型讲完了,我们要的是什么呢?不是decoder过后的东西,而是中间的隐变量。也就是at和z1:T

归于好单位,从video tokenizer里面拿到Z1:t-1然后从LAM里拿到a'1:t-1,一起输入给Dyanamics Model,这个model就是个decoder only的架构,被maskGIT过后的ST-Transformer,过了它以后和就能算出来下一帧的预测 Z‘t,然后拿真实的帧 Zt做比较算出Loss,这样一个训练步就完成了。(不要看图上画的变量角标,看我写的这些角标好理解)


推理流程就有意思了,把LAM给去掉了,这个时候action的输入不是LAM model给的,而是玩家输入的a't, 所以就有了打游戏的效果。

Genie为啥强调自己是世界模型呢?

第一它标榜可以和环境交互,虽然画面挫,但是能交互,嗯....

第二,实实在在的无监督,不是用标注的,而是在学习潜在的动作,进而开展自己的推理,这倒是符合Ha他们的其中一个定义。

那说了它牛逼的地方,我们再看一下悬而未决的问题:

1- 它这个3万小时还是太小了,模型也小11B,它能follow scaling law以后究竟是啥样子?论文没给说

2- 训练数据是游戏画面,游戏画面是真实物理世界吗?所以和世界模型没啥关系

3-让我振聋发聩的最牛B的点是我第一次了解到动作空间,action 也可以作为一个模态来学习,这个也是我未来想研究的方向,我过一阵还是回去整RL去,深度学习没啥意思了。

4-剩下的就是算力啥的了,以后如果都玩多模态的话,大家可以买点CPU和专用DPU的股,因为整视频,大家想想,压缩,解压缩视频这些得消耗多大的CPU算力或者专用DPU算力(别一提到DPU就想到networking...)。

本节完,估计会写2到3篇把。不定期更新这个系列,这个对于目前的我来讲,写这些内容算写休闲书了,我主航道还没写完,最近疯狂赶稿中...

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表