视频生成模型:Sora/CogVideo
视频生成是生成式 AI 的前沿方向,Sora 和 CogVideo 分别代表了闭源和开源视频生成模型的最高水平,通过扩散模型和 Transformer 架构实现了从文本描述生成高质量视频的能力。
Sora:OpenAI 的视频生成模型
Sora 是 OpenAI 推出的文本到视频生成模型,能够生成长达 1 分钟的高质量视频:
核心技术
- 时空 Patch(Spacetime Patch):将视频压缩到潜空间后,切分为时空 Patch 作为 Transformer 输入
- 扩散 Transformer(DiT):用 Transformer 替代 U-Net 执行去噪过程
- 视频压缩网络:将视频编码到时空潜空间,类似 VAE 但处理 3D 数据
python
# Sora 的时空 Patch 化概念
class SpacetimePatchEmbedding(nn.Module):
"""视频的时空 Patch 嵌入"""
def __init__(self, patch_size_t=2, patch_size_h=4, patch_size_w=4, embed_dim=768):
super().__init__()
self.proj = nn.Conv3d(
in_channels=4, # 潜空间通道
out_channels=embed_dim,
kernel_size=(patch_size_t, patch_size_h, patch_size_w),
stride=(patch_size_t, patch_size_h, patch_size_w)
)
def forward(self, latent_video):
# latent_video: [B, C, T, H, W]
patches = self.proj(latent_video) # [B, embed_dim, T/Pt, H/Ph, W/Pw]
patches = patches.flatten(2).transpose(1, 2) # [B, num_patches, embed_dim]
return patchesSora 的能力
- 长视频生成:最长 60 秒,1080p 分辨率
- 物理模拟:模拟简单的物理交互(碰撞、流体)
- 视频扩展:对已有视频进行时间或空间扩展
- 视频编辑:基于文本指令编辑视频内容
Sora 的世界模型解读
Sora 被一些研究者解读为"世界模型"的雏形——通过生成视频隐式学习了物理世界的规律。但 Sora 仍存在物理理解错误(如物体穿透、重力方向错误),距离真正的世界模型还有差距。
CogVideo:开源视频生成
CogVideo 是智谱 AI 推出的开源视频生成模型系列:
CogVideoX
CogVideoX 的核心架构包括:
- 3D RoPE 位置编码:在时间、高度、宽度三个维度使用旋转位置编码
- 3D 全注意力:在时空 Patch 上计算全注意力
- 文本-视频联合训练:使用 T5 编码文本条件
| 模型 | 分辨率 | 帧数 | 参数量 |
|---|---|---|---|
| CogVideoX-2B | 480×720 | 49 帧 | 2B |
| CogVideoX-5B | 480×720 | 49 帧 | 5B |
CogVideoX 训练策略
python
# CogVideoX 的 3D 注意力示意
class SpacetimeAttention(nn.Module):
def __init__(self, dim, num_heads):
super().__init__()
self.qkv = nn.Linear(dim, 3 * dim)
self.proj = nn.Linear(dim, dim)
self.num_heads = num_heads
# 3D RoPE
self.rope_t = RotaryEmbedding(dim // num_heads)
self.rope_h = RotaryEmbedding(dim // num_heads)
self.rope_w = RotaryEmbedding(dim // num_heads)
def forward(self, x, t_pos, h_pos, w_pos):
q, k, v = self.qkv(x).chunk(3, dim=-1)
# 应用 3D RoPE
q = apply_3d_rope(q, t_pos, h_pos, w_pos, self.rope_t, self.rope_h, self.rope_w)
k = apply_3d_rope(k, t_pos, h_pos, w_pos, self.rope_t, self.rope_h, self.rope_w)
# 标准注意力
attn = F.scaled_dot_product_attention(q, k, v)
return self.proj(attn)视频生成评估
视频生成质量的评估维度:
- 视觉质量:帧的清晰度、色彩、细节
- 时序一致性:帧间过渡是否自然流畅
- 文本对齐:生成内容是否符合文本描述
- 物理合理性:是否符合物理规律
- 运动多样性:运动模式是否多样自然
评估挑战
视频生成缺乏统一的自动评估指标。FID/IS 仅评估单帧质量,无法衡量时序一致性。人工评估仍是金标准,但成本高、效率低。