本文档梳理同一套设计哲学,且 Lottie 框架的数据集构造直接复用了 SVG 框架的数据资产。因此整合不仅可行,而且具备天然的对齐基础。
两个框架在 Tokenizer 设计上同构度极高,可以总结为以下六条共同原则:
两者均以 Qwen2.5-VL 为底座(约 150k 词表),原生的 text + image tokenizer 完全不动,仅在词表末尾外挂一套 domain-specific 的离散词表,通过随机初始化的新 embedding 表接入到 VLM 中。SVG 框架外挂 ~40k 的 SVG 词表,Lottie 框架外挂一套 Lottie 词表。
这是两者最关键的共享逻辑。两者都使用同一个数学公式将连续/类别参数离散化到独立的词表区间:
$$\text{token}(x, t) = \lfloor x \cdot s_t \rfloor + o_t$$
其中:
这种 offset 策略把每个参数类别映射到一个独立的词表区间,避免不同语义的参数发生冲突,同时保留类别内的数值关系。SVG 框架用其切分坐标、颜色、命令;Lottie 框架用其切分时间、空间、索引、速度、命令。
两者都把树形/层级结构(SVG 的 path、Lottie 的 layer-shape-keyframe)拍平成「命令 + 参数」的序列:
<path d="M10,10 L20,20 C..."/> 拍成 [M, x10, y10, L, x20, y20, C, ...](animation v="..." fr=30 ip=0 op=90 ...) 拍成 [CMD_ANIMATION, FR, IP, OP, W, H, DDD];将 (point x=0.0 y=53.2 in_x=29.3 ...) 拍成 [CMD_POINT, X, Y, IX, IY, OX, OY]两者都使用专门的 special tokens 划分序列边界:
<META> / <LAYER-τ> / <END> 等两者都强调 round-trip 完整性——detokenize 必须能完整还原成合法的 SVG / Lottie 文件,不丢失任何生成所需的精度。
两者都采用 next-token-prediction 的 cross-entropy 损失,仅在新增词表的位置计算 loss。形式化表达:
$$\theta^* = \arg\min\theta - \sum{i=1}^{L} \log P(x_s^{i} | x_c; x_s^{<i}; \theta)$$
其中 $x_c$ 是多模态条件输入(文本/图像/视频),$x_s$ 是矢量内容的 token 序列。
词表 | 大小(近似) | 出处 | 使用方 |
|---|---|---|---|
Qwen2.5-VL 词表(text + image) | ~150k | 预训练 | 两者共享 |
SVG 词表 | ~40k | SVG 框架新增 | 仅 SVG 框架 |
Lottie 词表 | 数 k 至十几 k | Lottie 框架新增 | 仅 Lottie 框架 |
SVG 词表内部至少分 4 类:
Lottie 词表内部分 5 类(论文明确给出):
加上 Qwen 的 text 与 image 两个子区,总计约 11 个 sub-vocabulary 区间。
整合后的模型暂称「VG 统一框架」(Vector Graphics Unified Framework)。核心思路是:保留共享底座、抽出可复用子区、保留格式专属区、加路由 token 区分输出格式。
两边本来就用同一个底座,文本/图像/视频侧完全不动,最多对 embedding 解冻做联合微调。这一步零成本——两个项目的输入端原本就兼容。
两个框架各自的 offset 区间里有大量语义重叠的部分,没必要分两份维护:
M x y、Lottie 的 position、keyframe.s、point.x/y 全部复用同一套坐标 token。Fill 和 Lottie 的 fill_color / stroke_color 完全可以共用一个调色板 codebook。<SOS>、<EOS>、<EOLayer>、<EOPath> 等特殊 token 也可以统一一套。SVG 的路径命令(M/L/C/A/Z/F)与 Lottie 的层级命令(CMD_ANIMATION / CMD_LAYER / CMD_KEYFRAME / Time / Speed / Easing)语义完全不同,强行合并会让模型混淆。这部分各自占独立 offset 区间。
在序列开头插入 <SVG_BEGIN> 或 <LOTTIE_BEGIN>,让模型在 decode 第一个 token 时就知道当前生成的是静态矢量图还是动画。结尾对应 <SVG_END> / <LOTTIE_END>。这是把「二选一」的格式分类问题压进自回归框架最干净的做法。
无需重新爬数据。Lottie 框架论文明确说明,其训练数据集中有一大批通过对静态 SVG 加随机运动(平移、缩放、旋转)生成的辅助 Lottie 数据集,数据来源正是 SVG 框架的数据集。
也就是说,Lottie 数据集里存在大量由 SVG 数据集派生而来的 (SVG, Lottie) 配对数据,可直接用于跨格式对齐预训练,让 SVG 与 Lottie 的 embedding 在共享子区学到一致的几何/颜色语义。
建议三阶段训练:
"Generate SVG: ..." / "Generate Lottie animation: ...")。整合后的词表区间布局如下:
区间 | ID 范围(示意) | 来源 | 备注 |
|---|---|---|---|
Qwen2.5-VL text + image |
| 预训练 | 完全复用 |
共享几何子区(spatial coord) |
| 新建/合并 | SVG 与 Lottie 共用 |
共享颜色子区(RGB codebook) |
| 新建/合并 | SVG 与 Lottie 共用 |
共享结构标记 |
| 新建/合并 | SOS/EOS 等 |
路由 token |
| 新建 |
|
SVG 专属区 |
| 来自 SVG 框架 | 路径命令 M/L/C/A/Z/F、路径标记 |
Lottie 专属区 |
| 来自 Lottie 框架 | Layer/Keyframe/Time/Speed 等 |
一份权重可同时支持以下 7+ 任务:
新增 embedding 参数 ≈ (40k + Lottie 专属 + 共享子区) × hidden_dim,约占整个 VLM 的不到 1%。但能直接吃下两边所有训练数据,规模效应明显。
由于 Lottie 框架本身的生成序列偏长(Text-to-Lottie 平均约 21k tokens),合并后对单任务推理无加速效果;优势主要在于统一权重、统一服务部署、跨格式互转能力。
留给模型组进一步研究的几个开放问题:
本文档版权归属:www.kuaisou.com/docs/20260519-gu-ge-huo-yi-tu-po-shi-jie-mo-xing-nei-mu-jie-mi-yin-wang-yo.html
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。