ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

解码CogVideoX生成大脑:Expert Transformer架构与3D RoPE位置编码

解码CogVideoX生成大脑:Expert Transformer架构与3D RoPE位置编码 解码CogVideoX生成大脑Expert Transformer架构与3D RoPE位置编码【免费下载链接】CogVideo-codetext and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023)项目地址: https://gitcode.com/zai-org/CogVideo-codeCogVideoX 是智谱AI开源的文生视频Text-to-Video与图生视频Image-to-Video大模型支持 5~10 秒、最高 1360×768 的视频生成。本文带你零基础看懂它的生成大脑Expert Transformer专家Transformer如何将文字和视频捏合成一条序列以及3D RoPE 位置编码如何为每个视频块赋予时空坐标让画面运动既流畅又符合物理直觉。全程少公式、重直觉附完整源码路径指引 一、先认识主角CogVideoX 能做什么简单说给它一句提示词prompt它还你一段视频或者给它一张图 一句提示词它让图片动起来。模型视频规格位置编码CogVideoX1.5-5B最高 1360×7685/10秒3D RoPECogVideoX-5B720×480约6秒3D RoPECogVideoX-2B720×480约6秒3D Sincos完整规格见 README.md 的 Model Introduction 表格。下面我们把模型拆开来看。二、Expert Transformer把看文字和画画塞进同一个大脑2.1 传统做法的痛点两条流水线多数早期视频模型采用双通道结构文本一路走 cross-attention视频一路走 self-attention两条流水线来回传话。问题在于视频 token 数量巨大49 帧 × 数百个空间块cross-attention 计算量爆炸而且理解文字和生成像素两个能力被强行拆开各练各的。2.2 Expert Transformer 的巧思一条序列打天下CogVideoX 的做法是3D Full Attention3D 全注意力文本先由 T5-XXL 编码器变成 226 个 token见 sat/configs/cogvideox_5b.yaml 中max_length: 226视频潜变量被切成 3D 小块patch压平成视频 token 序列两者首尾拼接成一条超长序列交给同一个 Transformer 做全注意力。关键代码就在拼接这一步emb torch.cat((text_emb, emb), dim1) # 文本在前视频在后对应源码 sat/dit_video_concat.py 的ImagePatchEmbeddingMixin。文件名叫dit_video_concatconcat正是这个拼接思想的体现。2.3 为什么叫Expert专家因为这一个 Transformer 同时是语言专家和视觉专家前半段 token文本序列模型在这里读懂提示词后半段 token视频 token模型在这里画出每一帧全注意力机制让每个视频 token 都能直接看到每个文字 token语义对齐一步到位无需中间传话层。5B 模型用了42 层、3072 维、48 个注意力头来支撑这种一心二用配置详见 sat/configs/cogvideox_5b.yaml。三、3D RoPE 位置编码给每个视频块发一张时空身份证3.1 为什么视频位置编码这么难文本是一维的只要知道第几个字就够了。视频不同——每个 token 同时有时间第几帧、高度第几行、宽度第几列三个坐标。早期模型包括 CogVideoX-2B用的是3D Sincos 加法编码把三个维度的正弦余弦位置向量拼好直接加到 token 上实现见 sat/dit_video_concat.py 的get_3d_sincos_pos_embed。它能用但天花板明显位置信息是贴上去的静态标签模型要自己学会从标签推断这两帧是连续的这两个物体在画面里相对位置没变泛化能力有限。3.2 RoPE把位置旋转进向量里CogVideoX-5B 和 1.5 版换上了3D RoPE旋转位置编码核心实现是 sat/dit_video_concat.py 的Rotary3DPositionEmbeddingMixin。一句话原理不往向量上贴标签而是根据位置把向量本身旋转一个角度。旋转的妙处在于两个 token 做注意力打分点积时结果只依赖它们的相对位置天然携带隔几帧、隔几格的距离感。这就像钟表——看绝对时刻不如看两个时刻相差几小时直观。3.3 头维度三分法时间、高、宽各管各的注意力头维度被切三段各管一个空间维度维度占比用途时间 (T)1/4编码第几帧管运动高度 (H)3/8编码第几行管画面上下宽度 (W)3/8编码第几列管画面左右三个维度用同一套theta10000的频率基高频管近距离细节低频管远距离趋势最后拼接成完整的旋转参数。5B 模型头维度是 64即 16 维管时间、24 维管高、24 维管宽配置见 sat/configs/cogvideox_5b.yaml。3.4 两个细节文本不旋转、I2V 加可学习编码文本 token 跳过旋转旋转只施加在text_length之后的视频 token 上见 attention_fn。文字没有画面坐标硬旋转反而乱套I2V 版加 buff图生视频模型在 3D RoPE 之外再叠加一个可学习位置编码帮助模型精确锚定参考图与生成画面的对应关系。3.5 数据侧的另一半高质量 Caption架构再强也离不开训练数据。CogVideoX 用多模态模型 CogVLM2-Caption 为海量视频生成富细节的图文描述示例如下源码 tools/caption/video_caption.py四、一分钟跑起来从推理代码看架构落地想亲眼验证推理入口在 inference/cli_demo.py核心就三步加载 pipeline → 写提示词建议先参考 inference/convert_demo.py 用大模型扩写提示词效果立竿见影→ 生成视频。依赖安装遵循 requirements.txt推荐 Python 3.10~3.12。五、核心源码地图 ️模块路径说明主干模型 3D RoPEsat/dit_video_concat.pyDiffusionTransformerL661、Rotary3DPositionEmbeddingMixinL2553D Sincos 位置编码sat/dit_video_concat.py2B 模型使用的加法式编码模型超参数sat/configs/cogvideox_5b.yaml层数、头数、位置编码类型一目了然官方推理示例inference/cli_demo.py文生视频 / 图生视频入口提示词扩写inference/convert_demo.py让生成质量提升的关键技巧总结CogVideoX 的生成大脑只有两个核心机关Expert Transformer——文本与视频 token 拼成一条序列共享全注意力让读题和作画在同一个网络里完成3D RoPE——把时间、高度、宽度三个坐标旋转进注意力向量让模型天生懂得相对时空关系。一拼一旋就构成了从一句话到一段流畅视频的完整通路。顺着上文给出的源码路径你可以在本地把每个设计细节逐一验证。【免费下载链接】CogVideo-codetext and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023)项目地址: https://gitcode.com/zai-org/CogVideo-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表