字节跳动 Lance:统一多模态模型开源深度教程

字节跳动 Lance 统一多模态模型架构概念图

字节跳动 Lance:统一多模态模型开源深度教程

3B 参数原生统一模型,双流 MoE 架构,图/视频理解 + 生成 + 编辑一体化,128 张 A100 从零训练,代码权重全开源

维度 Lance 3B 对比:Janus-Pro 7B 对比:Show-o2 7B
参数量 3B(激活) 7B 7B
GenEval 总分 0.90 0.80 0.76
DPG-Bench 总分 84.67 84.19 86.14
GEdit-Bench 均值 7.30
训练方式 从零训练(128 A100) 基于已有模型扩展 基于已有模型扩展
开源 ✅ 权重 + 代码 ✅ 权重 + 代码 ✅ 权重 + 代码

【一句话摘要】

Lance 是字节跳动开源的原生统一多模态模型,仅 3B 激活参数,通过双流 MoE 架构 + 分阶段多任务训练,在单个框架内实现图像/视频的理解、生成与编辑,在 GenEval 和 GEdit-Bench 上以 1/2 参数量超越 7B 级竞品。

【实战价值】

– 降低部署成本:3B 激活参数即可跑通图/视频全链路,40GB VRAM 单卡可推理
– 统一架构替代多模型拼接:不再需要 LLM + diffusion + VLM 三套模型协同,一个 Lance 管全
– 视频编辑能力领先:GEdit-Bench 7.30 分,开源统一模型中排第一
– 从零训练路线已验证:128 张 A100 就能训出竞争力模型,中型团队可复现

【核心指令】

“`
安装
git clone https://github.com/bytedance/Lance.git
cd Lance
bash ./setup_env.sh

下载权重
从 https://huggingface.co/bytedance-research/Lance 下载
Lance_3B(图像模型)和 Lance_3B_Video(视频模型)放入 downloads/

统一推理入口(6 种任务全支持)
bash inference_lance.sh

任务列表
t2i – 文生图
t2v – 文生视频
image_edit – 图像编辑
video_edit – 视频编辑
x2t_image – 图像理解
x2t_video – 视频理解
“`

【架构核心理解】

Lance 的双流 MoE 是它区别于其他统一模型的关键设计:

1. 理解流与生成流分离:MoE 层中部分 expert 专攻理解任务,部分专攻生成任务。同一份参数通过路由策略自动分流,避免理解任务和生成任务互相干扰。
2. 原生 Transformer 从零训练:不套用已有 LLM 或 diffusion backbone,自己从头训。好处是架构完全按多模态融合优化,坏处是训练策略需要精细设计。
3. 分阶段训练配方:先训图像理解和生成 → 加入视频数据 → 多任务联合微调。每个阶段后固定部分参数,类似 curriculum learning。

【SOP:6 种任务实操】

【1. 文生图】

“`bash
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
“`

【2. 文生视频】

“`bash
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
“`

【3. 图像编辑】

“`bash
bash inference_lance.sh \
–TASK_NAME image_edit \
–MODEL_PATH downloads/Lance_3B \
–RESOLUTION image_768res \
–SAVE_PATH_GEN results/image_edit
“`

【4. 视频编辑】

“`bash
bash inference_lance.sh \
–TASK_NAME video_edit \
–MODEL_PATH downloads/Lance_3B_Video \
–RESOLUTION video_480p \
–SAVE_PATH_GEN results/video_edit
“`

【5. 图像理解(VQA / 描述 / 推理)】

“`bash
bash inference_lance.sh \
–TASK_NAME x2t_image \
–MODEL_PATH downloads/Lance_3B \
–RESOLUTION image_768res \
–SAVE_PATH_GEN results/x2t_image
“`

【6. 视频理解】

“`bash
bash inference_lance.sh \
–TASK_NAME x2t_video \
–MODEL_PATH downloads/Lance_3B_Video \
–RESOLUTION video_480p \
–NUM_FRAMES 50 \
–SAVE_PATH_GEN results/x2t_video
“`

【核心参数调优表】

参数 默认值 说明
MODEL_PATH downloads/Lance_3B 图像任务用 Lance_3B,视频任务用 Lance_3B_Video
NUM_FRAMES 50 视频帧数,最大 121。帧数越多越流畅但显存占用越高
VALIDATION_NUM_TIMESTEPS 30 去噪步数,30 质量已够,50 质量更高但更慢
CFG_TEXT_SCALE 4.0 CFG 引导强度,值越大越对齐文本但多样性下降
VALIDATION_TIMESTEP_SHIFT 3.5 Flow Matching 时间步偏移,影响生成质量
NUM_GPUS 1 多卡推理,配合 MODEL_PATH 自动分配
VALIDATION_DATA_SEED 42 随机种子,设固定值可复现结果

【Gradio 交互 Demo】

“`bash
python lance_gradio_t2v_v2t.py –gpus 0 –server-port 7860
“`

打开浏览器访问 `http://localhost:7860`,支持文生视频 + 视频理解的交互式演示。

【避坑指南】

1. CUDA 版本必须 >= 12.4,低版本编译会挂,踩坑概率极高
2. 显存最低 40GB(单卡 A100-40G 或 A6000),24GB 的 3090 跑不动 Lance_3B_Video 的视频推理
3. prompt 格式跟着示例走:README 里每个任务都有 JSON 示例文件(`config/examples/`),照着写比自由发挥效果好很多
4. 两个权重包都要下:Lance_3B 管图像相关任务,Lance_3B_Video 管视频相关任务,不要只下一个
5. 视频生成速度预期:3B 模型 121 帧约 2-5 分钟(A100),别期望实时
6. 编辑任务不用设分辨率:`RESOLUTION` 参数会被输入内容的原始尺寸覆盖,设了也白设

【视觉展示】

【评测对比一览】

Benchmark Lance 3B Janus-Pro 7B Show-o2 7B BAGEL 7B InternVL-U 1.7B
GenEval (Overall) 0.90 0.80 0.76 0.88 0.85
DPG-Bench (Overall) 84.67 84.19 86.14 85.07 85.18
GEdit-Bench (Avg) 7.30 6.52 6.66
激活参数量 3B 7B 7B 7B 1.7B

【GenEval 细项分数】

模型 Single Obj Two Obj Counting Colors Position Attr Overall
Lance 3B 1.00 0.94 0.84 0.97 0.87 0.81 0.90
FLUX.1-dev (12B) 0.98 0.93 0.75 0.93 0.68 0.65 0.82
Qwen-Image (20B) 0.99 0.92 0.89 0.88 0.76 0.77 0.87

【总结】

Lance 证明了”小模型+好架构”可以打败”大模型+堆数据”。3B 激活参数在 GenEval(0.90)和 GEdit-Bench(7.30)上跑出开源统一模型最顶尖的成绩,且是唯一一个原生从零训练而非基于已有模型微调的方案。如果你需要一套代码搞定图/视频的”理解+生成+编辑”,Lance 是目前性价比最高的选择。

来源:Hugging Face Papers(https://huggingface.co/papers/2605.18678);360 视界整理编译

发表评论