Lance:字节跳动推出的3B统一模型,支持图像与视频理解、生成与编辑
字节跳动的Lance是一个3B参数的统一多模态模型,能够处理图像/视频理解、生成与编辑,在多项基准测试中表现优异。
字节跳动开源了Lance,一个拥有3B活跃参数的原生统一多模态模型,可在单一框架内处理图像和视频的理解、生成与编辑。该模型从零开始训练,采用分阶段多任务方案,最多使用128块A100 GPU,尽管参数量相对较小,但在多个基准测试中取得了有竞争力的性能。
Lance的重要性
当前大多数多模态模型要么是专用型(仅生成或仅理解),要么需要庞大的参数量(7B–20B+)才能统一能力。Lance证明了一个3B模型可以在图像生成、图像编辑、视频生成和视频理解任务上匹配或超越更大模型。其重要意义在于:
- 部署效率:更低的显存需求(40GB+ GPU)和更快的推理速度
- 研究可及性:训练和微调所需的计算预算更小
- 统一架构:单一模型处理多种任务,无需任务专用头
架构与训练
Lance是一个原生统一模型,即对理解和生成任务使用单一架构。关键细节:
- 活跃参数:3B(不是总参数,而是推理时激活的参数)
- 训练:从零开始的分阶段多任务方案
- 计算资源:最多128块A100 GPU
- 分辨率:图像最高768×768,视频480p@12 FPS
支持的任务
Lance开箱即支持七种任务类型:
| 任务 | 描述 |
|---|---|
| t2i | 文本到图像生成 |
| t2v | 文本到视频生成 |
| i2v | 图像到视频生成 |
| image_edit | 图像编辑 |
| video_edit | 视频编辑 |
| x2t_image | 图像理解(描述、VQA) |
| x2t_video | 视频理解(描述、问答) |
安装与设置
环境要求
- Python 3.10+
- CUDA 12.4+
- 至少40GB显存的GPU(已在A100上测试)
快速开始
git clone https://github.com/bytedance/Lance.git
cd Lance
conda create -n Lance python=3.11 -y
conda activate Lance
pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu126
pip install -r requirements.txt
pip install flash-attn==2.8.3 --no-build-isolation
从Hugging Face下载模型权重:
from huggingface_hub import snapshot_download
save_dir = "./downloads/"
repo_id = "bytedance-research/Lance"
cache_dir = save_dir + "/cache"
snapshot_download(
cache_dir=cache_dir,
local_dir=save_dir,
repo_id=repo_id,
local_dir_use_symlinks=False,
resume_download=True,
allow_patterns=["*.json", "*.safetensors", "*.bin", "*.py", "*.md", "*.txt", "*.pth"]
)
推理示例
文本到视频
bash inference_lance.sh \
--TASK_NAME t2v \
--MODEL_PATH downloads/Lance_3B_Video \
--RESOLUTION video_480p \
--NUM_FRAMES 121 \
--VIDEO_HEIGHT 480 \
--VIDEO_WIDTH 848 \
--SAVE_PATH_GEN results/t2v
图像到视频(新功能!)
bash inference_lance.sh \
--TASK_NAME i2v \
--MODEL_PATH downloads/Lance_3B_Video \
--RESOLUTION video_480p \
--NUM_FRAMES 61 \
--VIDEO_HEIGHT 480 \
--VIDEO_WIDTH 848 \
--SAVE_PATH_GEN results/i2v
文本到图像
bash inference_lance.sh \
--TASK_NAME t2i \
--MODEL_PATH downloads/Lance_3B \
--RESOLUTION image_768res \
--VIDEO_HEIGHT 768 \
--VIDEO_WIDTH 768 \
--SAVE_PATH_GEN results/t2i
视频编辑
bash inference_lance.sh \
--TASK_NAME video_edit \
--MODEL_PATH downloads/Lance_3B_Video \
--RESOLUTION video_480p \
--SAVE_PATH_GEN results/video_edit
图像理解
bash inference_lance.sh \
--TASK_NAME x2t_image \
--MODEL_PATH downloads/Lance_3B \
--RESOLUTION image_768res \
--SAVE_PATH_GEN results/x2t_image
关键参数
| 参数 | 默认值 | 描述 |
|---|---|---|
MODEL_PATH |
downloads/Lance_3B |
权重路径(Lance_3B或Lance_3B_Video) |
NUM_GPUS |
1 | GPU数量 |
VALIDATION_NUM_TIMESTEPS |
30 | 去噪步数 |
CFG_TEXT_SCALE |
4.0 | 无分类器引导尺度 |
NUM_FRAMES |
50 | 视频最大121帧 |
ENHANCE_PROMPT |
false | 启用提示重写(需要OpenAI API密钥) |
基准性能
Lance在多个基准测试中取得了有竞争力的结果:
图像生成(GenEval)
- 总体:0.90(与TUNA-7B持平,超过Janus-Pro-7B的0.80)
- 颜色:0.97(所有模型中最佳)
- 位置:0.87(与TUNA-7B并列)
图像编辑(GEdit-Bench)
- 平均:7.30(超过InternVL-U 1.7B的6.66和BAGEL的6.52)
视频生成(VBench)
- 总分:85.11(超过TUNA 1.5B的84.06和Hunyuan Video的83.43)
Gradio演示
Lance包含一个本地Gradio界面,可用于交互式使用:
python lance_gradio.py --server-name 0.0.0.0 --server-port 7860
这将为所有支持的任务提供一个Web UI。
路线图
团队计划发布微调代码,支持针对特定领域或任务的定制。
局限性
- 研究项目,非成熟产品
- 输出质量因提示、分辨率和运动复杂度而异
- 训练最高支持768×768图像和480p视频
- 需要40GB+显存的GPU
结论
Lance代表了向高效统一多模态模型迈出的重要一步。凭借3B活跃参数,它证明了当采用精心设计的多任务训练方案时,较小模型也能与更大模型竞争。对于希望尝试统一图像/视频理解与生成的开发者和研究人员,Lance提供了一个实用的开源起点。
开始使用:GitHub仓库 | Hugging Face模型 | 技术报告