CogVideo icon indicating copy to clipboard operation
CogVideo copied to clipboard

文本位置编码的疑问

Open sigma-alpha-beta opened this issue 9 months ago • 8 comments

您好,t2v的diffusers版本中看到了对视频添加rope位置编码,但文本没找到在哪里处理的,请问文本的位置编码是全为0吗?谢谢

Image

sigma-alpha-beta avatar Mar 27 '25 08:03 sigma-alpha-beta

@guoguangchao 看这里,是全0 https://github.com/huggingface/diffusers/blob/de6a88c2d7659c616b44c0856677335110b8ff2e/src/diffusers/models/embeddings.py#L678-L701

OrangeSodahub avatar Mar 27 '25 09:03 OrangeSodahub

还挺奇怪的,有两个地方没想明白: 1、为什么text的位置编码都是0呢 2、在_get_positional_embeddings中对视频添加了sincos位置编码,在CogVideoXAttnProcessor2_0中又对query和key的视频部分添加了rope位置编码,为什么要对视频加两次位置编码呢

sigma-alpha-beta avatar Mar 27 '25 09:03 sigma-alpha-beta

text部分为什么要位置编码(只是作为条件输入,并没有输出)? video的这两个编码肯定是不一样的,也有各自的作用?不是很清楚原理

OrangeSodahub avatar Mar 27 '25 10:03 OrangeSodahub

又看了下,代码中的self.use_positional_embeddings和self.use_learned_positional_embeddings都为False,应该是没有加sincos位置编码,但还是不太明白为什么text不用加位置编码 https://github.com/huggingface/diffusers/blob/de6a88c2d7659c616b44c0856677335110b8ff2e/src/diffusers/models/embeddings.py#L736

sigma-alpha-beta avatar Mar 27 '25 10:03 sigma-alpha-beta

哪里写的self.use_positional_embedding是False?都是True啊;CogVideoX1.5的use_learned_positional_embedding为True,1.0是False

OrangeSodahub avatar Mar 27 '25 11:03 OrangeSodahub

是的,我看的是CogVideoX,不是1.5的

sigma-alpha-beta avatar Apr 01 '25 05:04 sigma-alpha-beta

CogVideoX里self.use_positional_embedding也是True

OrangeSodahub avatar Apr 01 '25 08:04 OrangeSodahub

我读了下代码应该是False,可以参考下这部分

Image

Image

sigma-alpha-beta avatar Apr 02 '25 03:04 sigma-alpha-beta