OpenMOSS/moss-video-preview-base
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

MOSS-Video-Preview-Base

简介

我们推出了 MOSS-Video-Preview-Base,它是 MOSS-Video-Preview 系列中的预训练基础模型 checkpoint。

[!Important] 这是一个预训练模型 checkpoint,未经过有监督指令微调(无离线 SFT/无实时 SFT)。

本仓库包含预训练权重,旨在作为下游任务的起点:

  • 离线 SFT:针对完整视频片段的指令遵循与推理
  • 实时 SFT:低延迟流式视频理解与响应

🌟 核心亮点

  • 🧩 首个交叉注意力基础模型:专为原生视频-语言理解设计的独特基础模型架构,超越了简单的特征拼接方式。
  • 🔄 支持流式处理的骨干网络:底层架构原生支持“静默-发声”切换和实时中断(需后续实时 SFT)。
  • ⚡ 极致效率:针对Flash Attention 2 进行优化,且兼容NPU/CUDA平台,为长视频研究提供高吞吐量起点。

模型架构

MOSS-Video-Preview-Base 作为该系列的基础 checkpoint,采用了首创的图像-视频统一交叉注意力架构:

Model Architecture

  • 原生统一设计:与传统基于投影的模型不同,该架构原生统一支持图像和视频流,确保无缝的时间一致性和视觉-语言解耦。
  • 跨模态投影器:借助专有 VideoMllamaTextCrossAttention 机制,实现时间视觉特征与语言上下文之间的高效语义对齐。
  • 统一时空编码:将视频帧序列与文本 token 对齐,为长上下文多模态推理提供稳健的骨干网络。

有关架构图和完整系统详情,请参见顶层仓库:fnlp-vision/MOSS-Video-Preview。

🚀 快速开始

视频推理
import torch
from transformers import AutoModelForCausalLM, AutoProcessor
checkpoint = "fnlp-vision/moss-video-preview-base"
video_path = "data/example_video.mp4"
prompt = "" # For base model, prompt is set to empty to perform completion task.

processor = AutoProcessor.from_pretrained(
    checkpoint,
    trust_remote_code=True,
    frame_extract_num_threads=1,
)
model = AutoModelForCausalLM.from_pretrained(
    checkpoint,
    trust_remote_code=True,
    device_map="auto",
    torch_dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
)

messages = [
    {
        "role": "user",
        "content": [
            {"type": "video"},
            {"type": "text", "text": prompt},
        ],
    }
]

input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(
    text=input_text,
    videos=[video_path],
    video_fps=1.0,
    video_minlen=8,
    video_maxlen=16,
    add_special_tokens=False,
    return_tensors="pt",
).to(model.device)

with torch.no_grad():
    output_ids = model.generate(**inputs, max_new_tokens=512, do_sample=False)

print(processor.decode(output_ids[0], skip_special_tokens=True))
图像推理
import torch
from PIL import Image
from transformers import AutoModelForCausalLM, AutoProcessor
checkpoint = "fnlp-vision/moss-video-preview-base"
image_path = "data/example_image.jpg"
prompt = "" # For base model, prompt is set to empty to perform completion task.

image = Image.open(image_path).convert("RGB")

processor = AutoProcessor.from_pretrained(
    checkpoint,
    trust_remote_code=True,
)
model = AutoModelForCausalLM.from_pretrained(
    checkpoint,
    trust_remote_code=True,
    device_map="auto",
    torch_dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
)

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image"},
            {"type": "text", "text": prompt},
        ],
    }
]

input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(
    text=input_text,
    images=[image],
    add_special_tokens=False,
    return_tensors="pt",
).to(model.device)

with torch.no_grad():
    output_ids = model.generate(**inputs, max_new_tokens=256, do_sample=False)

print(processor.decode(output_ids[0], skip_special_tokens=True))

✅ 预期用途

  • 研究基础:为专注于视频理解领域中表征学习或模型效率的研究人员提供理想起点。
  • SFT 起点:推荐作为训练您自己的离线 SFT 或实时流处理变体的骨干模型。
  • 架构探索:测试新的多模态对齐技术、时间编码或特定领域适配方法。

⚠️ 局限性与未来展望

  • 基础模型性质:此 checkpoint 仅经过预训练,未进行指令微调。若不进一步进行 SFT,可能会生成重复文本或无法遵循复杂指令。
  • 性能基准:尽管在实时架构创新方面处于领先地位,但与 Qwen2.5-VL 等顶级模型相比仍存在性能差距。缩小这一差距是我们持续迭代的核心重点。
  • 可扩展分布式训练:当前训练 pipeline 针对架构验证进行了优化。我们正迁移至 Megatron-LM 框架,以利用3D 并行(张量并行、流水线并行和数据并行) 进行更大规模的预训练。
  • 开源承诺:在下一个主要版本中,我们将正式向社区开源完整训练代码库(与 Megatron-LM 集成) 以及更多样化的数据集。

🧩 环境要求

  • Python:3.10+
  • PyTorch:1.13.1+(强烈推荐使用 GPU)
  • 已测试配置:Python 3.12.4 + PyTorch 2.4.0(CUDA 12.1)+ DeepSpeed 0.16.1
  • 仅 CPU:PyTorch 2.4.0
  • Transformers:使用此模型系列时需设置 trust_remote_code=True(由于 auto_map 自定义代码)
  • 可选(推荐):FlashAttention 2(attn_implementation="flash_attention_2")
  • 视频解码:
    • 流式演示需导入 OpenCV(cv2)
    • 离线演示依赖处理器的视频加载后端

有关完整环境设置(包括可选的 FlashAttention2 附加组件),请参见顶层仓库的 README.md。

⚠️ 注意事项

  • 这是一个基础模型目录。质量/延迟特性(离线 SFT、实时流等)取决于具体的微调检查点和推理管道。
  • 此目录中的 Python 源文件通过 config.json 中的 auto_map 进行引用。

[!IMPORTANT]

🌟 我们的使命与社区邀请

我们填补了基于交叉注意力的视频理解基础模型的空白。

我们热烈欢迎表示学习和模型效率领域的专家在我们的架构基础上进行探索、实验和创新。让我们共同突破视频智能的边界,推动开源社区的发展!

引用

@misc{moss_video_2026,
  title         = {{MOSS-Video-Preview: Next-Generation Real-Time Video Understanding}},
  author        = {OpenMOSS Team},
  year          = {2026},
  howpublished  = {\url{https://github.com/fnlp-vision/MOSS-Video-Preview}},
  note          = {GitHub repository}
}