Hotdry.

Article

LLM 可控文本到 CAD 生成:约束感知解码与忠实几何合成

基于 CAD-Llama 的统一架构解析,涵盖层次化标注流水线、SPCC 结构化表示与指令微调策略,提供可落地的工程化参数配置。

2026-06-10ai-systems

大型语言模型(LLM)在文本生成任务上已展现出卓越能力,但将其应用于计算机辅助设计(CAD)领域仍面临根本性挑战:LLM 在预训练阶段极少接触参数化 CAD 序列,且缺乏对三维空间结构的直接感知。近期研究提出的 CAD-Llama 框架通过结构化表示与层次化语义标注,成功将 LLM 的生成能力迁移至参数化三维 CAD 建模任务,为文本驱动的可控 CAD 生成提供了可行路径。

核心问题:自然语言与 CAD 指令的语义鸿沟

参数化 CAD 模型通常以构造历史(construction history)的形式存在,即一系列 CAD 工具命令的序列。这种表示方式缺乏关于设计意图、几何形状的高层次语义标注,导致 LLM 难以直接理解其含义。传统的编码器 - 解码器架构虽能从点云、文本或 B-rep 模型重建 CAD 序列,但在处理复杂文本指令时泛化能力有限,且难以生成具有精确参数的专业级 CAD 模型。

关键瓶颈在于:LLM 擅长代码生成是因为训练数据中存在大量带有注释和功能描述的代码,而原始 CAD 序列缺乏类似的文本描述。因此,构建连接自然语言与 CAD 数据的桥梁成为解决问题的核心。

解决方案:SPCC 结构化表示与层次化标注

CAD-Llama 提出 ** 结构化参数化 CAD 代码(Structured Parametric CAD Code, SPCC)** 作为统一表示格式。SPCC 将 CAD 构造序列转换为类 Python 的代码格式,同时融入层次化的语义描述,使 LLM 能够以类似理解代码的方式理解 CAD 模型。

层次化标注流水线

该框架采用两阶段标注策略,利用视觉语言模型(VLM)自动生成高质量训练数据:

第一阶段:组件级描述 对每个 CAD 组件,系统渲染其三维投影图与二维草图,输入 VLM(如 GPT-4o)生成详细描述。描述内容包括几何形状(圆柱、矩形块等)、空间方位(对称分布、中心位置等)以及拉伸参数(方向、长度)。

第二阶段:全局描述 基于组件描述与增强可视化的轮廓图,VLM 生成三类信息:

  • 抽象概述(Abstract):模型的整体功能与形态
  • 详细描述(Detailed):组件间的空间关系与装配过程
  • 组件简称(Short names):用于建立局部与全局描述的关联

为减少 VLM 的幻觉现象,系统根据 CAD 序列复杂度(基于命令长度)将模型分为五个等级,每个等级提供 50 个高质量示例,采用双样本提示(two-shot prompting)策略。

SPCC 数据合成

SPCC 将层次化描述嵌入 CAD 代码的特定位置。对于包含多个组件的模型,格式为:

[抽象描述]
[详细描述]
组件1_简称: 组件1描述
组件1代码
组件2_简称: 组件2描述
组件2代码
...

这种表示使 LLM 能够同时捕捉几何细节与整体结构,支持从抽象描述到详细描述的灵活生成。

训练架构:自适应预训练与指令微调

SPCC - 自适应预训练

基于 LLaMA3-8B 进行领域自适应预训练,关键创新在于相似度感知的上下文组织。传统预训练随机拼接文档,而 CAD-Llama 使用预训练的 CLIP 模型计算 CAD 图像的嵌入向量,将相似模型分组到同一上下文窗口。这种 "上下文内预训练"(In-Context Pretraining)使模型能够更高效地学习相似 CAD 模型间的细微差异。

预训练配置参数:

  • 学习率:2e-5
  • 优化器:AdamW
  • 上下文窗口:2048 tokens
  • 训练数据:约 100K 去重后的 CAD 模型
  • 计算资源:38 A100-GPU 小时

CAD 中心指令微调

预训练后的模型(CAD-Llama)通过 LoRA(秩 256,α=128)进行参数高效微调,适配以下下游任务:

  1. Text-to-CAD:根据文本描述生成完整 CAD 模型
  2. 补全(Completion):基于部分序列预测后续命令
  3. 标注(Caption):为 CAD 代码生成文本描述
  4. 添加(Addition):在现有模型上添加新组件
  5. 删除(Deletion):从模型中移除指定组件

微调阶段上下文窗口扩展至 4096 tokens,使用 DeepSpeed 与 FlashAttention 提升训练效率,共消耗 12 A100-GPU 小时。

关键评估指标与性能

Text-to-CAD 任务指标

  • ACC_cmd:命令类型预测准确率(CAD-Llama-INS 达 80.41%)
  • ACC_param:参数值预测准确率(59.09%)
  • SR(Success Ratio):可执行 CAD 序列生成成功率
  • ACC_T:综合准确率,计算方式为 (ACC_cmd + ACC_param)/2 + SR

实验结果显示,CAD-Llama-INS 在 Text-to-CAD 任务上比 GPT-4 高出约 15.7%,比 LLaMA3-8B 和 Mistral-7B 高出约 30%。在几何对齐度指标(Median Chamfer Distance、MMD、JSD)上同样显著优于基线方法。

跨数据集泛化

仅在 DeepCAD 数据集上训练的 CAD-Llama-INS,在 Fusion 360 测试集上展现出良好的零样本泛化能力,验证了 SPCC 表示的通用性。

工程实践要点

数据准备 checklist

  • CAD 模型去重(避免简单立方体等重复模式干扰训练)
  • 复杂度分级(建议按命令序列长度分为 5 级)
  • VLM 提示工程(为每级准备 50 个高质量双样本示例)
  • 坐标归一化(将原点从 (128,128) 重定位至 (0,0))
  • 角度离散化(0-360 度范围内的整数值)

参数配置建议

阶段 学习率 批次大小 LoRA 秩 上下文长度
预训练 2e-5 视 GPU 显存 全参数 2048
指令微调 2e-5 视 GPU 显存 256 4096

风险控制

  1. 参数生成错误:建议在生成后执行几何验证,检查拉伸方向与布尔运算的合法性
  2. 指令误解:对于复杂装配体,采用分步生成策略(先生成基础组件,再添加细节)
  3. 计算成本控制:预训练阶段约需 70M VLM tokens 用于数据标注

局限与改进方向

当前方法仍存在参数生成不准确、文本指令与生成序列偶发不匹配等问题。未来改进方向包括:

  • 引入几何约束验证模块,在解码阶段强制执行物理可行性
  • 结合扩散模型增强参数预测精度
  • 探索更大规模模型(如 LLaMA3-70B)的扩展性

参考来源

  • Li J, Ma W, Li X, et al. CAD-Llama: Leveraging Large Language Models for Computer-Aided Design Parametric 3D Model Generation[J]. arXiv preprint arXiv:2505.04481, 2025.
  • Wu R, Xiao C, Zheng C. DeepCAD: A Deep Generative Network for Computer-Aided Design Models[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 6772-6782.

ai-systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com