InCoder-32B-Thinking:面向工业代码生成的思考型世界模型 InCoder-32B-Thinking: Industrial Code World Model for Thinking
提出ECoT合成与工业代码世界模型,训练32B思考型代码LLM。
前置知识
Chain-of-Thought (CoT) 与思考型模型
CoT是一种让LLM在给出最终答案前显式生成中间推理步骤的技术。OpenAI o系列和DeepSeek-R1等'思考型模型'把这一范式推到极致——它们先生成长达数千字符的内部思维链来分解问题,再产出最终输出。InCoder-32B-Thinking的统计显示,其思考块长度跨9大任务类别从91字符到19,015字符,跨度达209倍,反映了不同任务对推理深度的天然需求差异。
理解CoT是把握本文核心方法(ECoT合成)的前提——本文不是简单让模型'多写几步思考',而是用真实执行反馈驱动推理链的生成,让思考内容本身具有可验证的工程意义。
世界模型 (World Model)
世界模型指学习环境动态的代理模型,能够在不真正执行的情况下预测某个动作会带来的后果。在游戏和自动驾驶中常用,在代码生成里就是'预测这段代码会被编译器接受还是会报错、会跑出哪些诊断信息'。本文提出的ICWM就是这样一个代理:给定环境包 $s_{env}$ 和候选代码 $c^{(k)}$,它预测真实后端会返回的反馈 $\hat{o}^{(k)}$,包括执行状态标签(PASS、COMPILATION_ERROR、MEMORY_FAULT等)和诊断日志。
ICWM是本文放大数据规模的关键。真实执行每轮都需要调用Yosys、Icarus、CadQuery等昂贵工具链,ICWM把它变成单次前向传播,从而使训练数据从受限的真实执行规模扩展到百万级推理轨迹。
后训练 (Post-Training) 与SFT数据规模
后训练指在大规模预训练之后用监督微调(SFT)、RLHF或RLAIF等手段让模型对齐特定任务。本文属于思考型变体的SFT路线:作者收集了540M token的思考训练数据(远超InCoder-32B的250M),并通过180M/360M/540M三档数据规模消融实验,验证了思考数据量与VeriScope(61.8→75.4)、KernelBench L2(16.0→38.0)等工业基准分数的单调正相关。
后训练数据规模与思考型模型质量的关系是本文的实证核心;理解SFT pipeline才能看懂Figure 7揭示的'思考数据越多越好'的结论。
领域特定执行后端 (Domain-Specific Execution Backends)
与通用Python单元测试不同,工业代码任务的正确性必须由专门的工具链验证。论文中列出了5大类后端:Triton/CUDA用于GPU kernel,Icarus/Verilator+Yosys用于Verilog/RTL,Renode/STM32用于嵌入式固件,CadQuery用于CAD几何,编译器(ARM/x86/LLVM)用于代码优化。每个后端都会返回结构化结果——一个outcome label加诊断日志,这正是ICWM学习预测的目标。
理解这些后端的工作方式才能体会为什么'让模型看错误信息自己改'是工业代码生成的关键能力,也是ICWM的'环境'具体指什么。
多轮纠错轨迹 (Multi-turn Correction Trajectories)
本文把工业代码生成过程形式化为多轮纠错轨迹 $\tau = \langle s_{init}, r^{(0)}, c^{(0)} \rangle \to \langle r^{(1)}, c^{(1)} \rangle \to \cdots \to \langle r^{(k)}, c^{(k)} \rangle$,其中 $r^{(k)}$ 是第 $k$ 轮的推理内容,$c^{(k)}$ 是对应的候选代码。每次箭头都代表一次'执行→拿反馈→再改'的循环,最多进行 $K=4$ 轮。这种结构化轨迹让思考内容直接对应到具体的环境反馈,区别于纯文本的CoT。
这是ECoT框架的形式化骨架——'错误驱动'就体现在每轮推理都建立在上一轮真实或模拟的错误反馈上,让推理链天然带有工程诊断的逻辑。
研究动机
工业软件开发涵盖芯片设计、GPU优化、嵌入式系统、3D建模等领域,这些任务的正确性必须由Yosys/Icarus、CadQuery、Triton编译器等专业工具链验证,远比通用软件测试复杂。然而当前最强的LLM在这一领域表现远不尽人意:基准测试显示,领先的代码模型在Triton生成和Verilog检查上的成功率仍然非常有限。例如,Figure 2显示Claude-Sonnet-4.6在CAD-Coder编译通过率上仅77.0%,在EmbedCGen主任务上仅79.0%,而开源模型如Qwen3-Coder-480B-A35B-Instruct在TritonBench G-call上也仅20.1%,与人类专家水平存在显著差距。这种性能差距的根源是工业代码推理需要'环境接地'(environment grounding)——必须理解代码改动如何影响硬件行为、验证是否满足约束——而现有思考模型依赖纯文本推演,世界模型依赖模拟预测,两者的整合在工业代码领域几乎未被探索。
本文的目标是本文的具体目标是构建一个既具备通用代码能力(LiveCodeBench V5 81.3%)、又能稳定处理工业代码任务(在CAD-Coder、RealBench、KernelBench等9个工业基准上取得最强开源成绩)的32B思考型代码模型InCoder-32B-Thinking。更具体地说,作者希望解决两个核心问题:(1) 如何高效合成高质量的思考训练数据?真实执行每条样本都需要调用工具链,成本极高;(2) 如何让思考内容具有工程意义、避免纯文本CoT的'幻觉'风险?目标是用ECoT + ICWM把工业代码的思考过程从'凭空推演'变成'基于反馈的工程诊断'。
与已有工作不同的是,本文的独特切入角度是把思考内容显式地绑定到多轮执行反馈上,由错误驱动而非由模型自由生成。与之前'让LLM自己和自己对话'或'纯RL激励长CoT'的路线(DeepSeek-R1、o1等)不同,本文强制每一步思考都对应一次可验证的执行结果,模仿真实工程师'写代码→编译→看错误→改'的迭代过程。技术上更关键的是引入了工业代码世界模型(ICWM)——这是首个针对工业代码环境的世界模型,用Verilog模拟、GPU profiling、编译器诊断、嵌入式日志等执行轨迹训练,使思考数据的合成从依赖昂贵真实执行扩展到大规模ICWM模拟,最终把540M token的思考数据成本压到可承受范围内。这一'真实执行+ICWM模拟+审计校准'的混合策略是本文区别于纯RL路线和纯SFT路线的关键。
核心方法
InCoder-32B-Thinking的整体思路可以一句话概括为:用真实执行反馈合成推理链,用ICWM放大合成规模,最后用540M token的思考数据微调32B基座模型。直觉上,作者观察到工业工程师调试代码的过程本身就是一种'思考'——他们看到编译错误后会分析原因、调整方案、再编译。本文用ECoT框架把这种过程形式化为多轮纠错轨迹 $\tau = \langle s_{init}, r^{(0)}, c^{(0)} \rangle \to \langle r^{(1)}, c^{(1)} \rangle \to \cdots \to \langle r^{(k)}, c^{(k)} \rangle$,其中每轮的 $r^{(k)}$ 就是思考内容、$c^{(k)}$ 是对应的代码、$\to$ 代表一次执行反馈循环。技术路线分两阶段:先在真实后端(Yosys、Icarus、CadQuery、Triton等)上收集Dreal,然后用Dreal训练ICWM,再用ICWM替代真实后端合成更大规模的Dicwm,最终训练集 $D = D_{real} \cup D_{icwm}$ 用于微调InCoder-32B基座。整个pipeline的关键是让思考内容的'长度'和'深度'自然涌现——Figure 6显示GPU优化任务的中位思考长度达到19,015字符,而代理编码仅91字符,209倍的跨度不是人工设定,而是由真实工具链的反馈难度自然塑造的。
核心创新点有两个:第一个是ECoT(Error-driven CoT)合成框架,它把推理内容的生成从'模型自由发挥'变成'对比失败尝试与正确方案',通过显式建模错误-纠正过程来捕捉工业工程师的迭代诊断模式。第二个是ICWM(Industrial Code World Model),这是首个面向工业代码环境的世界模型——它学习的是'代码改动→硬件行为'的因果动力学,能够在没有真实工具链的情况下预测执行结果。这两个组件的协同让思考数据合成的成本从'每条都需要真实执行'降到'真实执行只用于种子和小批量审计',从而把训练数据规模推到了540M token。与已有方法的本质区别在于:DeepSeek-R1等纯RL路线靠'答案正确'作为奖励信号激励推理,但工业代码的'正确'需要专业工具链验证,难以在RL中频繁提供;而本文直接用工具链反馈驱动SFT,每条思考样本都对应到具体环境事件,避免了幻觉风险。
方法步骤详情
ECoT + ICWM的完整流程分为以下步骤。步骤1(任务种子与环境打包):复用InCoder-32B的查询与单元测试,每个任务种子与其环境包 $\langle s_{task}, s_{env} \rangle$ 配对——Verilog模块配套testbench和Yosys脚本,STM32固件配套CMSIS头文件和链接脚本,GPU kernel任务配套Triton/CUDA runtime。步骤2(域特定指令路由):轻量级prompt router检查环境包,为生成器选择域特定指令——GPU任务要求推理warp分歧和共享内存预算,RTL任务要求推理组合路径深度和时钟域跨越,CAD任务要求推理壁厚和manifold有效性,固件任务要求推理外设寄存器时序。步骤3(多轮纠错轨迹合成):用DeepSeek-V3.2作为生成器,输出 $(r^{(0)}, c^{(0)})$,分发到对应真实后端执行,最多进行 $K=4$ 轮纠错;每轮的错误信息(编译日志、硬件异常、几何diff报告)打包成 $o^{(k)}$ 反馈给生成器,生成器据此修订推理与代码。步骤4(ICWM训练):ICWM是一个语言模型,定义为 $ICWM_\theta: (s_{env}, c^{(k)}) \mapsto \hat{o}^{(k)}$,输入是环境包与候选代码,输出是预测的反馈——outcome label(PASS/COMPILATION_ERROR/MEMORY_FAULT等)、诊断消息、可能的数值输出或diff摘要。训练数据是Dreal中的每一条单轮pair,域tag前置以处理跨域差异。步骤5(ICWM驱动的数据放大):训练好的ICWM替代真实后端运行多轮纠错循环,公式 $\tau = \langle s_{init}, r^{(0)}, c^{(0)} \rangle \to_{ICWM_\theta} \langle r^{(1)}, c^{(1)} \rangle \to_{ICWM_\theta} \cdots \to_{ICWM_\theta} \langle r^{(k)}, c^{(k)} \rangle$,每轮只是单次前向传播而非真实编译/模拟。步骤6(周期性审计校准):定期用真实执行审计ICWM的预测,根据差异重新标注并retrain ICWM,确保长时间运行后世界模型仍保持校准。最终的思考训练集 $D = D_{real} \cup D_{icwm}$ 共540M token,用于微调InCoder-32B基座得到InCoder-32B-Thinking。
技术新颖性
技术新颖性体现在三个层面。首先,ECoT框架是首个显式建模'错误-纠正'迭代过程的CoT合成方法,区别于纯文本自反思(如Self-Refine、LeDex)和纯RL激励(如RLEF)的路线——它把推理链的每一步都绑定到具体的环境事件,避免了'模型自己和自己辩论'可能带来的发散问题。其次,ICWM是首个面向工业代码环境的世界模型,训练数据是Verilog模拟日志、GPU profiling、编译器诊断、嵌入式系统日志等域特定执行轨迹,模型架构上采用域tag前置 + 域特定输出模板,让一个统一模型服务5个垂直领域;Figure 5显示其平均outcome prediction accuracy达到96.7%、trajectory agreement 94.4%,已经足够替代真实后端做大规模数据合成。第三,'真实执行+ICWM模拟+周期性审计'的混合pipeline本身就是一个可推广的数据合成范式——在数据稀缺且执行昂贵的工业场景下,先用真实数据训练代理、再用代理放大、最后用真实数据校准的循环,可以在保持质量的前提下把数据规模放大两个数量级。
实验结果
实验结果从三个维度验证了InCoder-32B-Thinking的有效性。第一,通用代码基准(Table 1-3)展现了'小尺寸+长思考'的逆袭:在LiveCodeBench V5上达到81.3%,是所有开源模型中的最高分(包括参数量级更大的Qwen3-235B-A22B-Thinking-2507的80.2%和Qwen3-Coder-480B的48.6%),这直接证明了'长CoT可以补偿模型规模';在SWE-bench Verified上达到70.4%,与最强模型DeepSeek-V3.2的73.1%相当;在 $\tau^2$-bench Retail上以86.0%排名第一;在BFCL V3上达到63.9%。在以简洁输出为优势的基准(Mercury、Text2SQL)上则有所下降(与Kimi-K2-Thinking等思考型模型呈现相同模式),这反映了思考型模型在响应长度偏好型任务上的固有权衡。第二,工业代码基准(Table 4-5)展现了对硬件/工程域的迁移能力:RealBench Module-level Func@1达到75.6%、Func@5达到82.4%,是开源模型中的最优成绩;CAD-Coder编译通过率84.0%甚至超过了Claude-Sonnet-4.6的77.0%;SuperCoder速度优化达到3.93×,超过所有开源基线;KernelBench L2达到38.0%,是所有32B+开源模型中第二高(仅次于Qwen3.5-397B的40.0%);VeriScope Score 75.4%稳居开源第一阵营;EmbedCGen Main 47.9%、TritonBench T-call 22.9%均展现了嵌入式与GPU方向的扎实能力。第三,ICWM fidelity分析(Figure 5)揭示了世界模型的可靠性:5个工业域平均outcome accuracy 96.7%、trajectory agreement 94.4%,都超过了95%阈值;chip design域最高(97.4%/95.8%),因为Yosys/Icarus的诊断格式结构化、易学习;3D modeling域最低(95.9%/93.1%),因为CadQuery的浮点容差和隐式Boolean操作难预测。值得注意的是,outcome accuracy到trajectory agreement的1.6-2.8pp差距反映了多轮纠错中的误差累积——一次错误预测会让生成器走上不同的纠错路径。Figure 7的思考数据规模消融实验进一步验证了'思考数据越多越好'的规律:从180M到540M token,VeriScope从61.8跃升到75.4(+13.6pp),KernelBench L2从16.0跃升到38.0(+22.0pp),CAD-Coder Comp.从约80%稳步提升到84.0%。Figure 6揭示了任务难度对思考深度的自然塑造:GPU optimization中位思考长度19,015字符,chip design思考1.5K+答案6.9K,agentic coding仅91字符,209×的跨度是数据驱动的涌现而非人工设定。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 通用代码推理 LiveCodeBench V5 | Pass@1 (%) | 81.3 | Qwen3-235B-Thinking-2507: 80.2; Qwen3-Coder-480B-A35B-Instruct: 48.6 | +1.1pp vs 同类思考型;+32.7pp vs 同尺寸开源最强 |
| 通用代码推理 LiveCodeBench V6 | Pass@1 (%) | 77.1 | GLM-4.7: 84.9; Kimi-K2-Thinking: 83.1; Qwen3-235B-Thinking: 74.1 | 接近GLM-4.7(32/355B) |
| 代理编码 SWE-bench Verified | Pass@1 (%) | 70.4 | DeepSeek-V3.2: 73.1; Qwen3-Coder-480B: 67.0; InCoder-32B: 74.8 | 与最强DeepSeek-V3.2仅差2.7pp |
| 代理编码 Terminal-Bench v1.0 | Score (%) | 38.8 | Kimi-K2-Thinking: 47.1; Qwen3-Coder-480B: 37.5; GLM-4.7: 36.3 | 超过Qwen3-Coder-480B与GLM-4.7 |
| 工具调用 BFCL V3 | Score (%) | 63.9 | KAT-Dev-72B-Exp: 74.6; Qwen3-Coder-480B: 54.0 | +9.9pp vs Qwen3-Coder-480B |
| 工具调用 τ²-bench Retail | Score (%) | 86.0 | InCoder-32B: 85.1; DeepSeek-V3.2: 81.1 | 开源最强(+0.9pp) |
| 芯片设计 RealBench Module Func@1 | Acc (%) | 75.6 | Kimi-K2-Instruct: 50.1; DeepSeek-V3.2: 39.3; Qwen3.5-397B: 35.2 | 开源最强(+25.5pp vs 次优) |
| 芯片设计 RealBench Module Func@5 | Acc (%) | 82.4 | InCoder-32B: 83.3; Claude-Sonnet-4.6: 77.7 | 基本追平InCoder-32B,远超其他开源 |
| 芯片设计 VeriScope Score | Score (%) | 75.4 | InCoder-32B: 80.7; GLM-5: 83.2; Claude-Sonnet-4.6: 87.7 | +13.6pp vs 180M数据版本(数据规模消融) |
| 3D建模 CAD-Coder Comp. | Compile Pass (%) | 84.0 | InCoder-32B: 82.0; Claude-Sonnet-4.6: 77.0; GLM-5: 38.0 | 开源最强,超过Claude-Sonnet-4.6 |
| 代码优化 SuperCoder Spd. | Speed-up | 3.93x | InCoder-32B: 1.3x; Claude-Sonnet-4.6: 4.6x; Qwen3-Coder-480B: 2.0x | 开源最强加速比 |
| GPU kernel KernelBench L2 | Acc (%) | 38.0 | InCoder-32B: 36.0; Qwen3.5-397B: 40.0; Claude-Sonnet-4.6: 28.0 | +22.0pp vs 180M数据版本(数据规模消融) |
| GPU kernel KernelBench L1 | Acc (%) | 20.2 | InCoder-32B: 22.2; Kimi-K2.5: 13.1 | 在L2提升同时L1略降,反映任务难度差异 |
| ICWM代理质量 | Outcome Acc / Trajectory Agreement (%) | 96.7 / 94.4 | 工业世界模型尚无基线 | 5个工业域平均超过95%阈值 |
局限与改进
作者在论文中坦率承认了几个关键局限,本文结果也反映出这些局限。第一,KernelBench L3的分数在所有数据规模下都保持在12.0,没有提升,作者认为这说明'最难优化问题需要更专门的策略而不只是更多数据'。第二,TritonBench的GPU执行正确率(T-exe)在180M/360M/540M数据下都是100%,说明该任务的瓶颈不在数据量而在模型能力上限。第三,Mercury和Text2SQL等'偏好简洁输出'的基准上,InCoder-32B-Thinking相比InCoder-32B有明显退步(如BIRD 47.9 vs 55.4,Spider 66.7 vs 79.7),这是思考型模型的长CoT带来的固有权衡——长推理链消耗token预算,挤压了简答任务的输出空间。第四,VeriScope等部分基准上InCoder-32B-Thinking(75.4)反而低于InCoder-32B(80.7),作者未详细解释,可能与思考链偶尔引入冗余修改有关。第五,ICWM在3D modeling域的trajectory agreement仅93.1%,存在一定比例的false positive(如把零厚度边误判为PASS),需要周期性审计来弥补。从更广角度看,ICWM作为单点前向传播的世界模型,无法预测真实工具链在多轮运行中的状态累积效应;周期性审计的频率与开销未被详细说明;540M思考数据的训练成本与InCoder-32B原始250M SFT数据的具体增量也未披露;最重要的是,所有'错误驱动'思考都来自DeepSeek-V3.2作为生成器,意味着InCoder-32B-Thinking的推理能力天花板受限于教师模型的诊断水平——如果教师在某个领域缺乏领域知识,整个pipeline都会受影响。
独立分析的弱点
尽管InCoder-32B-Thinking在工业代码生成上取得了显著进展,本文仍有几个值得深入分析的弱点。第一,ICWM是单步前向传播的代理,对多轮纠错中的累积误差敏感——Figure 5显示outcome accuracy与trajectory agreement之间存在1.6-2.8pp的差距,这种误差在长horizon任务中会指数级放大。改进方向是引入置信度估计或显式的不确定性传播机制,让生成器知道何时应回退到真实执行。第二,ECoT的教师模型固定为DeepSeek-V3.2,这意味着所有推理风格都受限于单一模型的'诊断思维',可能在某些工业子领域(如FPGA时序约束、PCB布局)存在知识盲区。改进方向是引入多教师融合或让领域专家模型参与关键步骤。第三,思考深度的不均衡(Figure 6中agentic coding仅91字符,GPU optimization 19K字符)可能导致模型在不同任务上的推理预算分配不优——代理编码可能欠拟合而GPU kernel可能过拟合。改进方向是引入显式的推理深度预测器,让模型在生成前判断所需思考量。第四,ICWM只预测outcome label和诊断信息,不预测'正确的下一步',因此生成器仍需靠自身判断如何改——这种解耦在某些极端错误下(如完全错误的方向)会让生成器陷入循环。第五,所有'真实执行'依赖Yosys/Icarus/CadQuery等工具链的正确性配置,工具链版本漂移会引入系统性的ICWM失准风险。第六,论文没有详细分析ICWM中domain tag的粒度——5个粗粒度domain是否足够区分Verilog vs SystemC、CadQuery vs OpenCascade等更细的子领域?
未来方向
作者明确提出了几个有前景的未来研究方向。基于本文成果可以延伸的方向包括:(1) 进一步扩大思考数据规模到B token级别,验证思考型模型在工业代码上的scaling law是否仍有收益;(2) 把ICWM从'预测outcome'扩展到'预测下一步',使其成为真正的planner而非仅是reward model;(3) 把同样的ECoT+世界模型范式扩展到更复杂的工业任务,如物理仿真、生物信息学、金融建模等;(4) 探索多模态思考——目前ECoT只产生文本CoT,未来可以加入图表、波形、3D几何等视觉化思考元素;(5) 把ICWM反向用于模型诊断——通过ICWM的预测误差,自动识别模型在哪些子任务上'思考不充分',从而指导训练数据的针对性增强;(6) 探索in-the-loop训练——让ICWM在训练中持续更新,而非固定不变,避免模型在ICWM预测空间上过拟合;(7) 把ECoT框架用于开源贡献——让小模型也能从大模型的真实执行反馈中学习推理,缩小开源与闭源在思考质量上的差距。从技术风险角度看,需要警惕过度依赖ICWM导致的'模型-世界模型'共偏置问题;需要研究如何让思考内容对最终用户可解释、可审计;以及如何处理不同工业域之间'思考风格'的迁移冲突。
复现评估
从复现角度看,本文提供了部分开源支持:模型权重在HuggingFace上公开(Multilingual-Multimodal-NLP/IndustrialCoder),代码仓库在GitHub公开(CSJianYang/Industrial-Coder2026),这对核心模型推理来说是相对友好的。InCoder-32B-Thinking是32B参数规模,理论上可以用2-4张80GB A100或单张H100进行fp16推理,或用更小显存的卡配合量化方案部署。训练侧复现门槛较高:540M token的思考数据合成需要DeepSeek-V3.2 API访问、Yosys/Icarus/CadQuery等工具链部署、ICWM训练本身的算力(论文未明确披露);微调32B基座到思考型变体估计需要数百张H100规模的集群,论文也未给出具体的GPU小时数。复现难度主要在三方面:(1) ICWM的训练数据Dreal需要运行真实后端多轮纠错,工具链配置、版本一致性、随机性都会引入差异;(2) 周期性审计的频率和校准策略未充分形式化,会影响ICWM长期保真度;(3) 540M token的具体过滤、去重、域平衡策略未完全披露。评估侧的复现相对容易,因为基准(LiveCodeBench、KernelBench、CAD-Coder等)大多开源且有公开的evaluation script。综合来看,'用模型做研究'门槛低,'复现训练pipeline'门槛高。
论文图表