LLM2R:从大语言模型到三维重组器 LLM2R: From Large Language Models to 3D Reassemblers
把三维零件装配当作序列建模任务,用因果LLM加摘要令牌一次前向预测全部零件位姿
前置知识
SE(3) 刚体变换与四元数
SE(3) 指带旋转和平移的三维刚体变换,位姿写作 $T_i=(R_i,t_i)$,其中 $R_i\in SO(3)$ 是 3×3 旋转矩阵,$t_i\in\mathbb{R}^3$ 是平移向量。旋转在本文中用单位四元数 $q\in\mathcal{S}^3$(标量在前)表示,注意 $q$ 与 $-q$ 对应同一个旋转,所以计算旋转损失和误差时要对双符号取最小值。三维零件装配的任务就是为每个零件预测这样一个变换,把它从规范坐标系搬回整体坐标系。
本文的全部输出就是每个零件的 SE(3) 位姿,实验里的旋转误差 RMSE(R)、平移误差 RMSE(T) 都建立在这些概念之上;不理解四元数的双符号歧义,就看不懂损失设计和锚点混合的旋转参数化。
解码器-only LLM 与因果注意力
解码器-only 架构(如 Qwen3.5-0.8B)使用因果掩码:每个 token 在每层注意力中只能关注自己和它之前的位置。这带来两个性质:KV 缓存可复用,往序列末尾追加 token 时无需重算前缀;排在前面的 token 看不到后面内容,信息只能向后流动。Qwen3.5-0.8B 是混合架构,24 层中每 3 层门控线性注意力搭配 1 层完整 softmax 注意力,d=1024。
LLM2R 的核心技巧(把可学习摘要 token 放在所有零件之后)正是利用因果注意力的信息流向;理解因果性才能明白为什么零件自身状态只见前缀、而摘要状态却能聚合整个装配。
LoRA 低秩适配
LoRA 是参数高效微调方法:冻结预训练权重 $W_0$,把更新量写成低秩分解 $W_0+\frac{\alpha}{r}BA$,只训练 $A\in\mathbb{R}^{r\times d_{in}}$ 和 $B\in\mathbb{R}^{d_{out}\times r}$,秩 $r$ 远小于维度。本文取 r=32、α=64,只适配 6 个完整注意力层的 q/k/v/o 投影,可训练参数仅 42.2M,骨干 LLM 完全冻结,训练用 bfloat16 混合精度。
LoRA 是「复用语言预训练而非从头重训」这一主张的落地手段,也是 42.2M 可训练参数、8×H200 上约 10 小时训练完这些关键数字的来源。
Q-Former
Q-Former 源自 BLIP-2,用一组可学习查询(query)通过交叉注意力从输入特征中抽取固定数量的输出 token。本文用 2 层预归一化 Q-Former:8 头查询自注意力、8 头对 patch 特征的交叉注意力、宽度 4d 的 FFN,把每个零件的 64 个 patch 描述子压缩成 K=64 个位于 LLM 嵌入空间(d=1024)中的几何 token,查询在所有零件间共享。
它是点云几何进入语言模型的唯一接口,决定了每个零件的 token 预算 K(消融对比了 K=16/32/64/128)和整体上下文长度,直接影响可处理的最大零件数(约 125 个)。
Point-BERT 与点云 patch 化
Point-BERT 是基于 masked point modeling 的点云自监督预训练模型:用最远点采样和 kNN 把点云划成若干局部邻域(patch),每个邻域经小型点网络嵌入为离散词表上的 logits 作为描述子,再用 Transformer 处理 patch token。本文用 ShapeNet 预训练版本:G=64 个邻域、每邻域 32 点、词表大小 C=8192,前 80 个 epoch 冻结、最后 20 个 epoch 联合微调。
它是整个流程的几何入口,其 patch 输出直接决定 Q-Former 的输入质量;理解 patch 化有助于明白「几何 token」从何而来,以及为什么点云-only 输入就足够。
Chamfer 距离
Chamfer 距离衡量两组点集的差异:对每组中每个点在另一组中找最近点,取双向平均平方距离。它比较的是变换后的几何而非位姿参数,因此对对称零件规范系的标签歧义不敏感。论文用它定义零件准确率(预测位姿与真值位姿下该零件点集的 CD 低于 0.01 判正确)、整件 CD 指标,以及训练损失项 $\mathcal{L}_{CD}$(每零件采样 1024 点)。
三大基准的 PA、CD 指标都建立在 Chamfer 距离上;本文 CD 落后专用方法的现象(如 PartNeXt 上 6.37 vs CRAG 的 2.40)必须理解 CD 的性质才能分析原因。
装配评测指标 PA / CA / SR
PA(零件准确率)是位姿正确的零件占比,判定标准为该零件在预测与真值位姿下的 Chamfer 距离低于阈值 0.01;CA(连接准确率)衡量相邻零件是否正确连接;SR(成功率)是整件所有零件都满足 PA 标准的装配占比。PartNet 协议(跟随 Assembler)额外报告 CA 与 SR;Breaking Bad 与 PartNeXt 协议(跟随 GARF/CRAG)报告 RMSE(R)、RMSE(T)、PA 与 CD。
所有对比表格的列都由这些指标构成,而且本文 SR 的提升幅度远大于 PA(Chair 上 41.40% vs Assembler 的 22.59%),不懂指标含义就无法解读这种差异说明什么。
研究动机
三维零件装配要求从一组散件推断每个零件的刚性 SE(3) 变换,从而复原完整形状;难点在于零件的摆放几乎从不由自身几何单独决定——椅子第一条腿的位置取决于座面和其他三条腿,必须对整个零件集合做全局推理。现有方法存在三类顽固问题:其一,多数方法通过成对匹配或局部相容性分数建模零件间关系,难以表达高阶约束、更难保证所有零件位姿的全局一致性;其二,不少方法依赖参考图像、CAD 模板或类别先验等辅助信息,开放域场景中拿不到这些输入;其三,随零件数增长扩展性很差,迭代式「生成候选再验证」的开销迅速膨胀,长程依赖难以建模。论文用数据印证了第三点:在 Breaking Bad 上 GARF 的零件准确率从 30 碎片的 83.61% 一路崩到 100 碎片的 24.33%,Assembler 在 PartNet 100 零件时只剩 7.78%。也就是说,零件一多,现有最强方法的装配精度近乎失效。
本文的目标是论文的目标是构建一个只吃点云、不需要图像、模板或语义标签的统一架构,同时覆盖两类装配任务:PartNet 式的语义零件装配和 Breaking Bad 式的几何断裂重组。核心诉求有三个:第一,所有零件位姿在一次非自回归前向中并行读出,避免逐零件生成-验证的高成本循环;第二,精度随零件数增长的衰减要尽可能慢,并利用 KV 缓存支持增量式装配(零件逐个到达时只重算新增部分);第三,能零样本迁移到训练时未见过的新类别。作者还想顺带回答一个更有意思的问题:把预训练语言模型搬到几何任务上,是只借用了它的容量,还是语言预训练本身也在贡献能力——因此他们保留了自然语言指令,并在消融中专门检验其作用。
与已有工作不同的是,独特切入是把装配重新表述为解码器-only LLM 已经大规模解决过的那类序列建模问题:每个输出都必须与一段很长的 token 上下文保持一致,而预训练解码器自带长上下文注意力、高效 KV 缓存和可低秩适配的权重。已有 LLM×3D 工作(PointLLM、ShapeLLM、3D-LLM 等)都让 LLM 生成自由文本;BrickGPT 虽用语言建模,但做的是自回归生成积木结构而非重组给定零件;均未直接用预训练因果解码器对给定零件集合回归 SE(3) 位姿。另一个关键抉择是不修改注意力掩码(改成双向会让冻结解码器偏离预训练分布),而是用追加在序列末尾的可学习摘要块解决因果不对称——这与 ViT registers、memory tokens、BigBird 全局 token 等辅助 token 在放置位置与消费方式上都有本质区别。
核心方法
直觉上,作者把每个零件看成一段几何 token、把整个装配看成一个长序列,让预训练 LLM 做它最擅长的事——长上下文中的一致性推理。技术路线分四步。第一步编码:预训练 Point-BERT(ShapeNet 初始化,G=64 个邻域、每邻域 32 点)把零件 $P_i\in\mathbb{R}^{n_i\times 3}$ 转成 64 个 C=8192 维 patch 描述子。第二步压缩:2 层 Q-Former 用 K=64 个共享查询把描述子压成 LLM 嵌入空间(d=1024)中的几何 token 块。第三步推理:所有零件块按数据集顺序拼接,末尾追加 S=64 个可学习摘要 token,嵌入聊天模板后送入 Qwen3.5-0.8B(LoRA r=32 适配)一次因果前向。第四步读出:位姿头把每个零件隐状态与摘要状态逐位融合、块内平均得 $z_i$,旋转分支输出 32 个固定四元数锚点的 softmax 凸组合,平移分支直接回归 $\hat{t}_i\in\mathbb{R}^3$。全程一次前向完成,推理约 0.092 秒/实例,为对比方法中最快。
核心创新是摘要块机制,用来化解因果注意力的不对称。因果解码器里第 i 个零件的隐状态只见过前缀 $V_1,\dots,V_i$,若像 last-token 读出那样直接从零件自身 token 读位姿,等于「没看见座面就装第一条椅腿」。常规解法是改注意力掩码使其双向,但这会让冻结的预训练解码器脱离训练分布。LLM2R 不动掩码:在最后一个零件之后追加 S=64 个可学习摘要 token,按因果性它们位于所有零件之后,其隐状态在一次前向中就能聚合完整装配信息,且该开销与零件数无关(恒定 S 个 token)。位姿头把零件隐状态与摘要状态一一配对融合(S=K=64 逐位配对),于是每个位姿都条件于全装配。附带的好处是:解码器因果,KV 缓存在增量追加零件块时保持有效,装配可以流式处理。消融显示去掉摘要块使 PartNet Chair 的 PA 掉 7.7 个点(71.42% 降到 63.71%),是全部组件中影响最大的。
方法步骤详情
输入是 N 个未装配零件点云 $P_1,\dots,P_N$,各自处在 PCA 规范系。第一步,Point-BERT 用最远点采样+kNN 分组得 64 个邻域,输出描述子 $F_i=\Phi(P_i)$。第二步,描述子经线性投影+层归一化后,2 层 Q-Former 将 K=64 个共享查询细化为零件 token 块 $V_i$。第三步,全部零件块按数据集顺序拼接、末尾接 S=64 个摘要 token,送入带 LoRA 的 Qwen3.5-0.8B,上下文上限 8192、约容纳 125 个零件,一次因果前向得最终层隐状态。第四步,融合层 $f_{ij}=\mathrm{GELU}(W_f[h_{ij};u_j])$ 块内平均得 $z_i$;旋转头输出 32 个锚点四元数的 softmax 权重并归一化凸组合得 $\hat{q}_i$;平移头直接回归 $\hat{t}_i$。第五步训练:总损失含四元数损失(对 $q$ 与 $-q$ 双符号取最小)、平移 MSE、Chamfer 损失与斥力损失(惩罚可互换零件过近预测),权重均为 1。编码器前 80 epoch 冻结、后 20 微调,共 100 epoch 约 10 小时。
技术新颖性
新颖性体现在四个层面。任务层面:据作者所知,这是首个把预训练解码器-only LLM 适配到三维零件装配直接 SE(3) 位姿回归的工作——此前 PointLLM/ShapeLLM/3D-LLM 一类方法让 LLM 输出对话文本,BrickGPT 用自回归语言建模生成积木结构而非重组给定零件,ChatPose 只从专用 token 读人体姿态。机制层面:摘要块+位姿融合头以恒定 token 开销让每个位姿条件于全装配,无需修改因果掩码;与 BigBird 全局 token、memory tokens、ViT registers、Perceiver/Q-Former 潜变量查询等辅助 token 相比,放置位置(因果序列末尾)和消费方式(由位姿头逐位融合而非再喂给语言模型)都不同。表示层面:旋转不是离散角度分类,而是 32 个正张成 $\mathbb{R}^4$ 的锚点四元数的连续凸组合,归一化后可表达任意旋转。训练层面:不使用语言建模损失,摘要 token 完全由位姿目标塑形;对几何相同的可互换零件(如四条相同椅腿)用斥力损失避免回归器向组均值坍缩——这两个细节都相当少见。
实验结果
实验覆盖三大基准、零样本、规模化与消融。Breaking Bad:平移误差 0.46/0.53 与推理 0.092 秒均为最优(GARF 为 1.34/1.77、0.225 秒),但 PA、旋转误差与 CD 不敌断裂专用的 GARF。PartNet:Chair/Table/Lamp 三类 PA 全部第一(71.42%/70.67%/52.31%,最高超基线 8.3 点),Chair 的 SR 41.40% 远超 Assembler 的 22.59%,但 CD 被 3DHPA/CFPA 压制。PartNeXt:RE 41.12°、RMSE 5.24、PA 67.93% 三项全第一,CD 6.37 落后 CRAG 的 2.40。零样本:仅在 Chair/Table/Lamp 训练,直接测三个未见类别 PA 达 31.03%/32.49%/26.35%,比最强基线 CFPA 至少高 16.7 点。规模化:100 零件时超 GARF 33.5 点、超 Assembler 29.1 点。消融:去摘要块 PA 掉 7.7 点(影响最大)、MLP 投影掉 4.9 点、去指令掉 6.1 点;逐位置 PA 从首位 83.4% 缓降至尾部约 57%。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Breaking Bad(Everyday 子集)断裂重组 | RMSE(T)↓ ×10⁻² | 0.46 | GARF 1.34 | 降低约 65.7% |
| Breaking Bad(Artifact 子集)断裂重组 | RMSE(T)↓ ×10⁻² | 0.53 | GARF 1.77 | 降低约 70.1% |
| Breaking Bad(两子集平均)推理速度 | 单实例耗时↓(秒) | 0.092 | GARF 0.225 / Jigsaw 0.185 | 快约 2.4 倍 |
| PartNet Chair 语义装配 | PA↑ % | 71.42 | CFPA 69.24 | +2.18 点 |
| PartNet Lamp 语义装配 | PA↑ % | 52.31 | Assembler 44.04 | +8.27 点 |
| PartNet Chair 装配成功率 | SR↑ % | 41.40 | Assembler 22.59 | +18.81 点 |
| PartNeXt 位姿估计 | RE↓(度) | 41.12 | CRAG 45.12 | −4.00° |
| PartNeXt 位姿估计 | PA↑ % | 67.93 | CRAG 65.89 | +2.04 点 |
| Breaking Bad 100 碎片规模化 | PA↑ % | 57.85 | GARF 24.33 | +33.5 点 |
| PartNet 100 零件规模化 | PA↑ % | 36.83 | Assembler 7.78 | +29.1 点 |
| 零样本迁移到 Bed(未训练类别) | PA↑ % | 31.03 | CFPA 10.29 | +20.7 点 |
| 零样本迁移到 Door(未训练类别) | PA↑ % | 32.49 | CFPA 15.78 | +16.7 点 |
局限与改进
作者承认的局限:模型对零件顺序不不变,重排会同时改变零件前缀与摘要状态;上下文窗口限制单次装配规模(K=64、8192 token 时约 125 个零件);每零件只回归单一确定位姿,无法像扩散方法那样表达多个合理装配;PCA 规范系在对称零件上存在符号与轴序歧义,Chamfer 损失只能部分补偿;CD 全面落后层级化与断裂专用方法。我补充几点观察:其一,Breaking Bad 上旋转误差约为 GARF 两倍(14.35° vs 6.68°),说明缺乏断裂面互补性先验时,纯全局序列推理对精细旋转还不够准;其二,摘要块本质是全局聚合,零件间细粒度表面接触信息(正是 CD 衡量的东西)可能在压缩中被损失;其三,只测了 0.8B 骨干,语言预训练在容量之外到底贡献多少、更大模型是否有比例收益尚无证据,「指令有用」的消融虽直接但机制解释仍是假设;其四,逐位置 PA 随序列位置缓降约 24 点,超长序列的注意力稀释在接近 125 零件上限时可能加剧。
独立分析的弱点
独立分析几个弱点。其一,断裂重组精度上限:Breaking Bad 上 PA/CD/旋转误差全输 GARF,具体场景是碎片断裂面高度互补、需要局部精确表面对配时,全局序列推理缺少对接口互补性的显式建模。改进方向:在 Q-Former 或位姿头中引入断裂面特征或局部 matching 分支,或用 GARF 式断裂面预训练初始化点编码器。其二,CD 的离群敏感:CD 由远离表面的错放零件主导,一个整体良好的装配可能因个别零件远离而指标爆炸,而方法里没有针对「离群零件」的矫正机制。改进:按误差加权采样难零件,或在读出后加一轮轻量几何精化。其三,顺序敏感:数据集顺序影响精度(逐位置 PA 尾部低约 24 点),小零件或重复零件恰好排后会被系统性低估。改进:设计顺序不变的位置编码,或训练时随机打乱零件顺序。其四,单点回归无法处理对称歧义:四条相同椅腿对应哪个位姿目标本就任意,斥力损失只是软约束。改进:把位姿头改成集合预测(DETR 式匈牙利匹配)或扩散式多位姿采样。其五,训练成本高:8×H200×10 小时对多数实验室不友好,值得研究 LoRA 秩、K、epoch 数的缩放规律来寻找低成本配置。
未来方向
作者提出的方向:顺序不变的位置编码、更大骨干、对预测位姿做轻量几何精化。基于其成果还可延伸:第一,摘要块是一种通用的「因果序列全局读出」模式,可迁移到其他集合输出任务——多目标跟踪、场景流估计、分子构象预测等凡需一次前向产出多个全局一致输出的场景都可复用;第二,利用 KV 缓存的增量性做交互式装配:零件随扫描逐步到达、只重算新增块与摘要块,可对接机器人抓取和主动感知,形成「边看边装」的系统;第三,把断裂面互补性、配合面拟合等几何先验以额外 token 或损失项形式注入,缩小与 GARF 的旋转误差差距;第四,多位姿假设输出处理对称性歧义,与 Score-PA、Assembler 等分布学习/扩散采样方法互补;第五,系统研究骨干规模(0.8B 到 7B)与语言预训练对几何推理的贡献,把「指令有用」这一发现做更严格的因果验证;第六,结合稀疏或线性注意力扩展上下文,突破 125 零件上限,向乐高级数百零件装配挑战。
复现评估
复现评估:代码与处理后的数据清单注明「将在发表后发布」,目前尚未开源,这是最大障碍。数据全部公开:PartNet 与 Breaking Bad 用官方划分,PartNeXt 沿用 CRAG 的 15,563 训练/3,903 测试划分;附录 A 详细给出 GLB 解析、场景图变换、联合归一化、PCA 规范系与位姿目标($R^\star_i$ 取标量部分非负的四元数)的构造方法。附录 B 列出全部实现细节:Point-BERT 配置、Q-Former 结构、LoRA(r=32、α=64、dropout 0.05,仅 6 个完整注意力层的 q/k/v/o)、损失权重全为 1、AdamW lr=1e-3、bfloat16、上下文 8192、总批量 32、按最低验证损失选检查点。算力门槛偏高:8×H200 约 10 小时;按卡数粗略线性折算,单张 A100/H100 级显卡需要约 80 小时(3 天多),个人或小实验室可行但吃力。基线数字均沿用已发表协议,可直接对齐验证。综合判断:论文细节完整度很高,待代码放出后属于中上难度、可信度较高的复现目标。
论文图表