lucasjinreal / LLaVA-Magvit2

29 stars 2 forks source link

Progress Status #2

Open lucasjinreal opened 1 week ago

lucasjinreal commented 1 week ago

Tracking the model design status and training logs here.

Current status:

Current issue:

Before status:

eisneim commented 1 week ago

有没有计划重新训练magvit2,目前open-magvit2的压缩率还是不够低 256x256 -> 16x16=256个token,字节的titok可以做到256x256压缩到只有32个token,这对于用LLAVA做多图片推理或者视频推理非常有用,当然这样做生成任务画质就不行了 titok

lucasjinreal commented 1 week ago

你说的有道理,但是字节的tiktok开源了吗

eisneim commented 1 week ago

你说的有道理,但是字节的tiktok开源了吗

你说的有道理,但是字节的tiktok开源了吗

unofficial implementation

lucasjinreal commented 1 week ago

看起来titok 是目前最promising的选择。

magvit2 的 codebook较大,且下采样3的效果才ok,带来的是18xhxw的总token数,整体来说还是太大了。

遗憾的是,titok 目前还没有看到开放的权重。

haibo-qiu commented 1 week ago

Hi @lucasjinreal,非常感谢你发起的这个开源project~

Current issue:

  • Seems magvit2 outputs a binary feature, hard to using conditional features for LLM guided generation.

关于你这里提到的问题,你好像要用到MAGVIT2得到的binary feature,我想问一下你是具体打算怎么利用MAGVIT2结合LLAVA来做图像生成呢?

如果是像MAGVIT2原文中那样做,那其生成的binary feature用于计算token Index,然后每个index对应embedding会和LLM里面的vocabulary一同被学习。他们使用的是18维的binary feature,故而需要学习的图像相关embedding的数量为 218.

还是说你想用这些binary feature来初始化那些需要学习的embedding?但是其在维度上差距太大且是binary形式,不知实现起来效果如何

lucasjinreal commented 1 week ago

我目前的想法是,将Magvit2的codebook indices直接丢给LLM。但这个tokenizer实际上输出的token数目还是过多,似乎不太适合用来做理解。

目前我推出了ImageTokenizer,可以尝试基于OmniTokenizer来做token。

haibo-qiu commented 1 week ago

我目前的想法是,将Magvit2的codebook indices直接丢给LLM。但这个tokenizer实际上输出的token数目还是过多,似乎不太适合用来做理解。

目前我推出了ImageTokenizer,可以尝试基于OmniTokenizer来做token。

  1. 哦哦这样谢谢,直接给indices的话,那还要在LLM里面学一个特别大的Embedding,而且我个人感觉目前这种形式一般多用于做生成,其feature不像ViT那样具有高语义性,但是大家希望通过某些方式希望它有这个能力,从而用这种形式统一理解和生成
  2. OmniTokenizer的VQ版本也是有个codebook,如果同样将其得到token index输入进LLM,那还是要在LLM里面学相应的Embedding,那这套codebook就没用上,看起来好像有些割裂(就如yixiao ge在这里说的),不知道目前有没有能将两者联系起来的方法或者想法
lucasjinreal commented 1 week ago
  1. 主要是token数过多容易超过context length,embedding不一定需要进行conditional,SEED就是暴力的学token id;
  2. 基本原理是学习visual token的语义关联,本质上是把图像当作是一种【外语】,我倾向于探索不conditional 视觉embedding的方法。

目前尚未有一种有效的手段或方法,来验证imageTokenizer出来的码本id,具有一定程度的语义关联