首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Tokenizer 分词器架构与词表整合方案

Tokenizer 分词器架构与词表整合方案

原创
作者头像
用户11903455
发布2026-05-19 20:12:20
发布2026-05-19 20:12:20
1000
举报

矢量图与矢量动画生成模型的 Tokenizer 整合方案


摘要

本文档梳理同一套设计哲学,且 Lottie 框架的数据集构造直接复用了 SVG 框架的数据资产。因此整合不仅可行,而且具备天然的对齐基础。


一、两者 Tokenizer 完全共享的核心逻辑

两个框架在 Tokenizer 设计上同构度极高,可以总结为以下六条共同原则:

1. 同一个 VLM 底座 + 外挂离散词表

两者均以 Qwen2.5-VL 为底座(约 150k 词表),原生的 text + image tokenizer 完全不动,仅在词表末尾外挂一套 domain-specific 的离散词表,通过随机初始化的新 embedding 表接入到 VLM 中。SVG 框架外挂 ~40k 的 SVG 词表,Lottie 框架外挂一套 Lottie 词表。

2. 偏移量映射(offset-based tokenization)

这是两者最关键的共享逻辑。两者都使用同一个数学公式将连续/类别参数离散化到独立的词表区间:

$$\text{token}(x, t) = \lfloor x \cdot s_t \rfloor + o_t$$

其中:

  • $x$ 是待编码的参数值
  • $t$ 是参数类型
  • $s_t$ 是按参数类型设定的 scale 因子
  • $o_t$ 是为该参数类别预留的 vocabulary offset

这种 offset 策略把每个参数类别映射到一个独立的词表区间,避免不同语义的参数发生冲突,同时保留类别内的数值关系。SVG 框架用其切分坐标、颜色、命令;Lottie 框架用其切分时间、空间、索引、速度、命令。

3. 分层结构 → 函数调用扁平化

两者都把树形/层级结构(SVG 的 path、Lottie 的 layer-shape-keyframe)拍平成「命令 + 参数」的序列:

  • SVG 框架将 <path d="M10,10 L20,20 C..."/> 拍成 [M, x10, y10, L, x20, y20, C, ...]
  • Lottie 框架将 (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]

4. 显式结构标记

两者都使用专门的 special tokens 划分序列边界:

  • SVG 框架:Start of Seq / End of Seq / Start of Path / End of Path
  • Lottie 框架:<META> / <LAYER-τ> / <END>

5. 无损可逆 detokenize

两者都强调 round-trip 完整性——detokenize 必须能完整还原成合法的 SVG / Lottie 文件,不丢失任何生成所需的精度。

6. 训练目标完全一致

两者都采用 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 序列。


二、词表数量盘点

按「独立训练的离散词表」划分:共 3 个

词表

大小(近似)

出处

使用方

Qwen2.5-VL 词表(text + image)

~150k

预训练

两者共享

SVG 词表

~40k

SVG 框架新增

仅 SVG 框架

Lottie 词表

数 k 至十几 k

Lottie 框架新增

仅 Lottie 框架

按 offset sub-vocabulary 子区间划分:约 11 个

SVG 词表内部至少分 4 类:

  • 命令 token(M / L / C / A / Z / F)
  • 坐标 token
  • 颜色 token
  • 结构标记 token(SOS / EOS / SOP / EOP)

Lottie 词表内部分 5 类(论文明确给出):

  • Command Tokens
  • Temporal Tokens
  • Spatial Tokens
  • Index Tokens
  • Speed Tokens
  • (Text Tokens 复用 Qwen,不计入)

加上 Qwen 的 text 与 image 两个子区,总计约 11 个 sub-vocabulary 区间


三、整合方案:合并成统一模型

整合后的模型暂称「VG 统一框架」(Vector Graphics Unified Framework)。核心思路是:保留共享底座、抽出可复用子区、保留格式专属区、加路由 token 区分输出格式。

第一步:保留 Qwen2.5-VL 作为统一底座

两边本来就用同一个底座,文本/图像/视频侧完全不动,最多对 embedding 解冻做联合微调。这一步零成本——两个项目的输入端原本就兼容。

第二步:抽出可共用子词表

两个框架各自的 offset 区间里有大量语义重叠的部分,没必要分两份维护:

  • 坐标 / 空间 token:两边都是把归一化到 $0, 1$ 或 512 像素画布的连续值离散化到固定 bin。直接共享一套 spatial token 子区(建议 1024 个 bin),SVG 的 M x y、Lottie 的 positionkeyframe.spoint.x/y 全部复用同一套坐标 token。
  • 颜色 token:SVG 的 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 区间。

第四步:加格式路由 token

在序列开头插入 <SVG_BEGIN><LOTTIE_BEGIN>,让模型在 decode 第一个 token 时就知道当前生成的是静态矢量图还是动画。结尾对应 <SVG_END> / <LOTTIE_END>。这是把「二选一」的格式分类问题压进自回归框架最干净的做法。

第五步:训练数据天然对齐(关键优势)

无需重新爬数据。Lottie 框架论文明确说明,其训练数据集中有一大批通过对静态 SVG 加随机运动(平移、缩放、旋转)生成的辅助 Lottie 数据集,数据来源正是 SVG 框架的数据集。

也就是说,Lottie 数据集里存在大量由 SVG 数据集派生而来的 (SVG, Lottie) 配对数据,可直接用于跨格式对齐预训练,让 SVG 与 Lottie 的 embedding 在共享子区学到一致的几何/颜色语义。

第六步:训练阶段设计

建议三阶段训练:

  1. 跨格式对齐预训练:用 (SVG ↔ Lottie) 配对做互翻译任务(SVG → 静态 Lottie、静态 Lottie → SVG),逼着共享子区学到一致表示。
  2. 联合自回归预训练:SVG 数据集 ∪ Lottie 数据集混合训练,next-token prediction,loss mask 只对当前格式的合法 token 计算损失。
  3. 多任务 SFT:text/image/video → {SVG, Lottie} 任意组合,用 instruction prefix 区分任务(如 "Generate SVG: ..." / "Generate Lottie animation: ...")。

第七步:权重初始化复用

  • 共享子区(spatial、color)从两边各取一个 checkpoint,做平均或选 PPL 更低的那个 warm-start
  • 格式专属区分别从对应的 SVG 框架 / Lottie 框架 embedding 表初始化
  • 路由 token 随机初始化
  • Qwen2.5-VL 主干直接使用现成权重

四、统一词表的最终结构

整合后的词表区间布局如下:

区间

ID 范围(示意)

来源

备注

Qwen2.5-VL text + image

[0, 150k)

预训练

完全复用

共享几何子区(spatial coord)

[150k, 151k)

新建/合并

SVG 与 Lottie 共用

共享颜色子区(RGB codebook)

[151k, 151.5k)

新建/合并

SVG 与 Lottie 共用

共享结构标记

[151.5k, 151.6k)

新建/合并

SOS/EOS 等

路由 token

[151.6k, 151.65k)

新建

<SVG_BEGIN> / <LOTTIE_BEGIN>

SVG 专属区

[151.65k, 190k)

来自 SVG 框架

路径命令 M/L/C/A/Z/F、路径标记

Lottie 专属区

[190k, ...)

来自 Lottie 框架

Layer/Keyframe/Time/Speed 等


五、合并后模型的能力与成本

能力覆盖

一份权重可同时支持以下 7+ 任务:

  1. text-to-SVG
  2. image-to-SVG
  3. text-to-Lottie
  4. text-image-to-Lottie
  5. video-to-Lottie
  6. SVG → Lottie(自动加动画)
  7. Lottie → SVG(提取静态帧)

成本估算

新增 embedding 参数 ≈ (40k + Lottie 专属 + 共享子区) × hidden_dim,约占整个 VLM 的不到 1%。但能直接吃下两边所有训练数据,规模效应明显。

推理成本

由于 Lottie 框架本身的生成序列偏长(Text-to-Lottie 平均约 21k tokens),合并后对单任务推理无加速效果;优势主要在于统一权重、统一服务部署、跨格式互转能力


六、待研究问题

留给模型组进一步研究的几个开放问题:

  1. 共享子区的 bin 粒度怎么选? SVG 框架使用了 200×200 的坐标网格,Lottie 框架使用 512×512。统一后选哪个分辨率,对两边精度影响多大?需要做量化误差对比实验。
  2. 颜色 codebook 是否需要按数据分布重新聚类? 两个数据集的颜色分布可能存在差异,简单合并 codebook 可能不是最优解。
  3. 格式路由 token 的位置敏感度。 放在最开始 vs 放在每个 layer 开头,哪种泛化更好?
  4. 是否需要为 SVG → Lottie 任务设计专门的中间表示? 比如先生成静态 Lottie 再加动画效果,可能比直接端到端更稳定。
  5. 训练数据配比。 SVG 数据约 2M、Lottie 数据约 2M,但 Lottie 序列更长,按 token 数 vs 按样本数采样,结果会不同。

七、参考资料

  1. Yang et al., Unified Scalable Vector Graphics Generation Model, NeurIPS 2025. arXiv:2504.06263
  2. Yang et al., Generating Vector Animations via Parameterized Lottie Tokens, CVPR 2026. arXiv:2603.02138
  3. 公开数据集:MMSVG-2M、MMLottie-2M(均由 Fudan + StepFun 团队发布)

本文档版权归属: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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 矢量图与矢量动画生成模型的 Tokenizer 整合方案
    • 摘要
    • 一、两者 Tokenizer 完全共享的核心逻辑
      • 1. 同一个 VLM 底座 + 外挂离散词表
      • 2. 偏移量映射(offset-based tokenization)
      • 3. 分层结构 → 函数调用扁平化
      • 4. 显式结构标记
      • 5. 无损可逆 detokenize
      • 6. 训练目标完全一致
    • 二、词表数量盘点
      • 按「独立训练的离散词表」划分:共 3 个
      • 按 offset sub-vocabulary 子区间划分:约 11 个
    • 三、整合方案:合并成统一模型
      • 第一步:保留 Qwen2.5-VL 作为统一底座
      • 第二步:抽出可共用子词表
      • 第三步:保留必须分开的格式专属区
      • 第四步:加格式路由 token
      • 第五步:训练数据天然对齐(关键优势)
      • 第六步:训练阶段设计
      • 第七步:权重初始化复用
    • 四、统一词表的最终结构
    • 五、合并后模型的能力与成本
      • 能力覆盖
      • 成本估算
      • 推理成本
    • 六、待研究问题
    • 七、参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档