八叉树当 3D 语言喂给 LLM:描述涨 28.7 分,MMLU 不掉

Octrees as an Explicit 3D Language

Ran Dan, Si-Tong Wei, Pengfei Xiong, Wei Zhang, Yadong Mu, Peng-Shuai Wang

cs.CV

2026-10-02

OctLLM 把 3D 编码成稀疏八叉树序列,冻结主干另训独立 3D 分支,生成与理解均居多模态 LLM 首位,MMLU 一分不掉。

这篇在解决什么

给 LLM 加 3D 能力,现有做法两头受损。表示侧,ShapeLLM-Omni 把形状压成 VQVAE 码本索引,细几何进模型前就已经丢了,空间组织也不再显式;LLaMA-Mesh 干脆把顶点坐标当普通字符串序列化,形状的局部性和层级全部藏进字符流。适配侧,这些系统靠全量微调或 LoRA 让主干吸收新模态,预训练的语言行为随之被改写。代价可以量化:ShapeLLM-Omni 经过 3D 训练后 MMLU 从 64.65 掉到 30.17,HellaSwag 掉 40.7 分;LLaMA-Mesh 的 HellaSwag 也从 67.44 掉到 34.03。

北大的 OctLLM 把两个问题拆开各给一个解法:几何以显式八叉树序列进模型,3D 能力加在与预训练权重完全分离的参数里。

方法

表示:S-Octree。 八叉树(octree)把空间递归切成八份,只在有表面的地方继续细分。序列化沿 Z 序遍历,空间相邻的节点在序列里也倾向相邻;每 8 个二进制占用位打包成 1 个字节 token,值域 [0,255],序列长度比原始二进制短 8 倍。到深度 6(最细 64³)序列仍然很长,而细层节点高度冗余,于是随机把一半倒数第二层节点置空、连带丢弃其最细层后代,得到 S-Octree。被删的细节不指望 LLM 补:一个独立训练的 3D U-Net 负责恢复细层占用,再由现成的 TRELLIS 作解码器输出带纹理网格。LLM 只管全局布局和部件结构。

架构:token 路由双流。 主干 Qwen2.5-VL-7B 全程冻结,28 个 block 中挑 12 个,给 mesh token 配独立的满秩 3D 分支,覆盖 FFN 和 QKVO 四个投影;文本、图像 token 走原冻结通路;两条流共享同一个因果 self-attention,只拆 token 本地的变换。mesh 词表(256 个字节 token 加边界符和 <MASK>)用独立 embedding 和输出头,occupancy 预测不与自然词表抢 logit。位置编码用三通道 RoPE:文本 token 装序列坐标,八叉树 token 的三通道装节点的 3D 中心坐标(逐层缩放到同一坐标系),另加可学习的深度 embedding 标记节点尺度。生成时每个字节前插一个 <MASK> 查询,携带目标位置和深度,模型只回答「这个位置该填什么占用」;历史 mask 在注意力中被抑制,上下文里只留真实条件。新增可训练参数约 2.80B,约为总量的四分之一、全量微调的三分之一。

结果

设置指标OctLLM对照
图生 3D(Toys4K)FID(Inc.)↓31.58ShapeLLM-Omni 38.21,降 17.4%
图生 3DKID(Inc.)↓0.56ShapeLLM-Omni 1.02,降 45%
文生 3DFID(Inc.)↓45.61多模态 LLM 中最低;专用生成器 TRELLIS 30.90
3D 描述(PointLLM-200)GPT-img ↑46.88ShapeLLM-Omni 18.14,高 28.7;PointLLM-7B 45.63
语言保持MMLU / HellaSwag64.65 / 67.44与主干完全一致;ShapeLLM-Omni 30.17 / 26.74

消融把两个论点分别钉死。同设置下把 S-Octree 换成 1024 个 VQVAE token,图生 3D FID 从 26.31 恶化到 33.10,理解相似度同步下降,显式坐标序列确实优于隐式索引。把满秩分支换成 rank-256 的 token 路由 LoRA,语言同样保得住,但 FID 从 26.31 掉到 32.44,且高秩 LoRA 在大规模训练中出现梯度爆炸,论文因此放弃。去掉 <MASK> 查询伤害最大,FID 直接劣化到 61.08。S-Octree 本身省资源:峰值显存从 58GB 降到 44GB,单 epoch 从 2.17 小时降到 1.37。推理端 200 个提示平均输出 1,277 token,RTX 5090 上 37.6 秒,比 ShapeLLM-Omni 的 19.9 秒慢,比 LLaMA-Mesh 的 85.3 秒快一半以上。

为什么重要

「新模态进独立分支、共享注意力、主干冻结」这套配方对任何想扩模态的团队都可以直接借鉴。语言保持是架构性质的结果,不靠混文本数据去补救:纯文本对话逐位复现主干的计算,这一点比「掉得少」强一档。表示侧的结论也普适,让 LLM 读带坐标和层级的显式序列,生成和理解同时受益,两个方向共享同一种 3D 语言。

位置也要摆正:生成质量仍输给专用的 TRELLIS,OctLLM 卖的是一个模型同时做生成、理解、对话且不退化。而 ShapeLLM-Omni 和 AR3D-R1 同样拿 TRELLIS 当网格解码器,OctLLM 对它们的领先来自表示与管线,不是解码器差异。

局限与存疑

S-Octree 只编码几何,没有颜色和材质通道,描述外观无从谈起;读彩色点云的 PointLLM 在 GPT-ref 和语义相似度上仍领先,附录里 PointLLM-13B 的 GPT-img(48.06)也略高于 OctLLM。最细分辨率 64³,对精细结构偏粗。IFEval 从 75.41 降到 69.87,原因是 mesh head 偶尔在纯文本回答中途开 3D 序列,论文的修法是推理时屏蔽 mesh 词表,但生成场景显然不能一直屏蔽。所有消融都在 ShapeNet 飞机这类小规模设置上做,分支放置、秩数这些设计结论在大规模上只有间接证据。理解评测只有 PointLLM-200 一项,广度不够。

术语

原文与代码

社区讨论

相关论文

全部论文解读