在这里插入图片描述

1. 研究背景与现有挑战

1.1 传统CAD与文本到CAD的需求

  • 传统CAD系统是工程制造的核心工具,但需专业知识且耗时,限制可及性与迭代效率。
  • 大语言模型(LLMs)在自然语言理解与代码生成上的进展,为文本驱动CAD生成提供可能,可降低新手门槛、提升资深用户效率。

1.2 现有文本到CAD方法的局限

现有方法多基于预定义命令序列(如DeepCAD、Text2CAD),存在三大问题:

  1. 模型有效性验证难:命令序列无法直接验证CAD模型有效性;
  2. 操作集有限:仅支持草图、拉伸等基础操作,生成模型多样性不足;
  3. 可解释性与可编辑性差:低级别命令序列难以理解与调试。

2. 核心创新:CAD-Coder框架设计

2.1 关键选择:以CadQuery为中间表示

CAD-Coder将文本到CAD任务重构为生成Python基於参数化CAD语言CadQuery的脚本,选择CadQuery的核心优势如下:

优势类别 具体描述
几何验证 脚本可直接执行,验证生成CAD模型的有效性
建模能力 提供丰富的几何操作词汇,支持复杂、多样几何体表示
可解释性 基于语义化函数构造(如.circle()、.extrude()),比命令序列更易理解
LLM兼容性 作为Python代码,可充分利用LLMs已有的代码生成能力

2.2 两阶段训练Pipeline

在这里插入图片描述

阶段1:监督微调(SFT)—— 建立基础映射
  • 目标:让LLM掌握CadQuery语法,建立“自然语言描述→CadQuery代码”的基础映射。
  • 训练数据:8K高质量文本-CadQuery配对样本(来自数据集的高quality子集,CD<1×10⁻⁴),每个样本为(L, C_gt),其中C_gt是经有效性与几何正确性验证的Ground-Truth脚本。
  • 训练细节
    • 基础模型:Qwen2.5-7B-Instruct(开源LLM,擅长指令遵循与代码生成);
    • 训练参数:3个epoch,batch size=64,学习率=1×10⁻⁵,AdamW优化器,DeepSpeed ZeRO Stage 2分布式训练;
    • 损失函数:自回归token级损失,公式为:
      LSFT(θ)=−E(L,Cgt)∼DSFT[∑t=1∣Cgt∣logπθ(ct∣c<t,L)]\mathcal{L}_{SFT}(\theta)=-\mathbb{E}_{\left(L, C_{g t}\right) \sim \mathcal{D}_{SFT}}\left[\sum_{t=1}^{\left|C_{g t}\right|} log \pi_{\theta}\left(c_{t} | c_{<t}, L\right)\right]LSFT(θ)=E(L,Cgt)DSFT t=1Cgtlogπθ(ctc<t,L)
  • 局限:仅SFT无法保证几何准确性,对需多步空间推理的复杂模型表现不足。
阶段2:强化学习(RL)—— 提升几何保真与推理

采用Group Reward Policy Optimization(GRPO) 算法(无需 Critic 网络,通过批次内相对奖励估计基线,降低计算开销),核心包含两大组件:

  1. Chain-of-Thought(CoT)规划

    • 设计目的:解决“多脚本可生成相同几何”的问题,引导模型先规划再生成代码;
    • 样本格式:(L_cot, C),其中L_cot含步骤化规划内容(如组件分解、坐标系分配、草图设计等),嵌入在标签中,模拟工程师的设计思路,帮助模型将复杂形状拆解为简单组件。
    • 数据来源:1.5K高质量CoT样本,从数据集中的“硬案例”(CD>1×10⁻³)筛选,经Deepseek-V3生成后,通过有效性验证、CD筛选及人工优化得到。
  2. CAD-Specific奖励函数
    奖励由几何奖励(R_geo)格式奖励(R_fmt) 加权组成,最终奖励公式为 R˙i=λgeoRigeo+λfmtRifmt\dot{R}_{i}=\lambda_{geo } R_{i}^{geo }+\lambda_{fmt } R_{i}^{fmt }R˙i=λgeoRigeo+λfmtRifmt,具体设计如下:

    • 几何奖励(R_geo):基于Chamfer Distance(CD) 计算,量化生成模型与目标模型的几何差异,CD越小表示几何越接近。
      • CD计算公式:CD(P,Q)=1∣P∣∑x∈Pminy∈Q∥x−y∥22+1∣Q∣∑y∈Qminx∈P∥x−y∥22CD(P, Q)=\frac{1}{|P|} \sum_{x \in P} min _{y \in Q}\| x-y\| _{2}^{2}+\frac{1}{|Q|} \sum_{y \in Q} min _{x \in P}\| x-y\| _{2}^{2}CD(P,Q)=P1xPminyQxy22+Q1yQminxPxy22,其中P、Q分别为生成模型和目标模型的采样点云。
      • 分段奖励规则:
        • CD < 1×10⁻⁵:奖励=1.0(最大奖励);
        • CD > 0.5 或代码执行失败:奖励=0;
        • 0.5 ≥ CD ≥ 1×10⁻⁵:奖励线性递减(CD=0.5时奖励=0.01)。
    • 格式奖励(R_fmt):通过正则匹配验证输出是否包含“…推理块”和“```python代码块”,两者均存在则奖励=1,否则=0。
    • GRPO损失函数:用于模型更新,考虑相对优势、裁剪阈值(ε)和KL散度惩罚(β),公式为:
      LGRPO(θ)=ELout∼D,{Ci}i=1k∼πθold(⋅∣Lout)[1k∑i=1k1∣Ci∣∑t=1∣Ci∣min(ri,t(θ)⋅A^i,t,clip(ri,t(θ),1−ε,1+ε)⋅A^i,t)−βDKL(πθ∥πref)]\mathcal{L}_{GRPO}(\theta)=\mathbb{E}_{L_{out } \sim \mathcal{D},\left\{C_{i}\right\}_{i=1}^{k} \sim \pi_{\theta_{old }}\left(\cdot | L_{out }\right)} \left[\frac{1}{k} \sum_{i=1}^{k} \frac{1}{\left|C_{i}\right|} \sum_{t=1}^{\left|C_{i}\right|} min \left(r_{i, t}(\theta) \cdot \hat{A}_{i, t}, clip\left(r_{i, t}(\theta), 1-\varepsilon, 1+\varepsilon\right) \cdot \hat{A}_{i, t}\right)-\beta D_{KL}\left(\pi_{\theta} \| \pi_{ref}\right)\right]LGRPO(θ)=ELoutD,{Ci}i=1kπθold(Lout) k1i=1kCi1t=1Cimin(ri,t(θ)A^i,t,clip(ri,t(θ),1ε,1+ε)A^i,t)βDKL(πθπref)

3. 数据集构建:大规模几何验证数据集

3.1 数据来源与生成 pipeline

Text2CAD数据集(178K文本-目标3D模型对,但无CadQuery代码)为基础,通过自动化 pipeline 生成高质量样本,流程如下:

  1. 输入:Text2CAD提供的“自然语言描述(L)+CAD命令序列+目标3D模型(M_gt)”;
  2. 代码生成:用Deepseek-V3生成多个CadQuery候选脚本;
  3. 筛选验证:
    • 执行候选脚本,丢弃执行失败的样本;
    • 计算成功执行脚本对应的3D模型(M_cand)与M_gt的CD,选择CD最小的脚本作为Ground-Truth代码(C_gt);
  4. 最终输出:110K“文本(L)-CadQuery代码(C_gt)-3D模型(M_gt)” triplets。

3.2 数据质量分级与CoT样本补充

  • triplets质量分级
    • 高quality(8K):CD<1×10⁻⁴;
    • 中quality(70K):1×10⁻⁴ ≤ CD<1×10⁻³;
    • 低quality(32K,硬案例):CD>1×10⁻³。
  • CoT样本构建:从“硬案例”中筛选样本,用Deepseek-V3生成CoT格式脚本,经执行验证、CD筛选及人工优化,最终得到1.5K高质量CoT样本,用于RL阶段的“冷启动”推理训练。

4. 实验验证:结果与分析

4.1 实验设置

  • 基础模型:Qwen2.5-7B-Instruct(所有实验统一基础模型,确保公平性);
  • 硬件环境:8台NVIDIA A800 80GB GPU;
  • 关键参数
    • GRPO阶段:batch size=384,每个输入生成k=8个候选脚本,KL系数β=0.001;
    • 数据使用:SFT用8K高quality样本,CoT训练用1.5K样本,GRPO用Text2CAD的150K训练样本;
  • 评估指标
    1. Mean CD/Median CD:衡量几何保真度(×10³,值越小越好);
    2. Invalidity Ratio(IR):代码执行失败的比例(%,值越小越好)。

4.2 基线对比:CAD-Coder性能领先

对比对象包括传统方法(Text2CAD)和主流LLMs(开源:Qwen2.5-7B/72B、Deepseek-V3;闭源:Claude-3.7-sonnet、GPT-4o),核心结果如表1所示

方法 Mean CD(×10³) Median CD(×10³) IR(%)
Claude-3.7-sonnet 186.53 134.16 47.03
GPT-4o 133.52 45.91 93.00
Deepseek-V3 186.69 107.57 51.96
Qwen2.5-72B 209.41 153.81 82.64
Qwen2.5-7B 202.35 169.86 98.83
Text2CAD [13] 29.29 0.37 3.75
CAD-Coder(Ours) 6.54 0.17 1.45
  • 结论:CAD-Coder在所有指标上均最优,Mean CD比Text2CAD降低77.7%,IR仅1.45%,证明其在几何准确性和代码有效性上的优势。

4.3 消融研究:各组件的必要性

通过对比不同训练策略的性能,验证SFT、CoT、GRPO及数据质量的作用(结果如表2、表3所示):

表2:核心组件消融(CD×10³)
训练策略 Mean CD Median CD IR(%)
SFT仅(基线) 74.55 0.33 5.33
无SFT(仅GRPO+CoT) 76.20 0.95 5.33
无CoT(SFT+GRPO) 17.34 0.20 4.95
Full(SFT+CoT+GRPO) 6.54 0.17 1.45
  • 关键发现:
    1. SFT是基础:无SFT时性能下降,证明SFT对掌握CadQuery语法的必要性;
    2. GRPO作用显著:仅SFT的Mean CD=74.55,加入GRPO后降至17.34,说明CAD-specific奖励能大幅提升几何准确性;
    3. CoT优化推理:加入CoT后Mean CD进一步降至6.54,验证结构化规划对复杂模型的作用。
表3:SFT数据质量影响(CD×10³)
数据集 Mean CD Median CD IR(%)
70K中quality 9.89 0.18 3.21
8K高quality 6.54 0.17 1.45
  • 关键发现:数据质量优于数量,高quality数据能为RL提供更可靠的基础,减少CAD几何误差。

5. 结论与核心贡献

5.1 研究结论

CAD-Coder通过“CadQuery中间表示+两阶段训练+CoT推理”,解决了传统文本到CAD方法的有效性、多样性和可解释性问题,实现了LLM从自然语言直接生成复杂、有效、几何准确的CAD模型,推动了文本到CAD生成的技术水平。

5.2 核心贡献

  1. 任务重构:将文本到CAD任务定义为“生成CadQuery代码”,利用CadQuery的Python属性和几何验证能力,兼顾LLM兼容性与模型有效性;
  2. 训练框架创新:提出“监督微调(SFT)+强化学习(GRPO)”两阶段 pipeline,结合CoT规划和CAD-specific奖励,同时保证代码语法正确与几何保真;
  3. 数据集支撑:构建110K triplets和1.5K CoT样本的大规模数据集,为文本到CAD研究提供高质量数据基础。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐