The Neural Compiler: Program-to-Network Translation for Hybrid Scientific Machine Learning

📄 arXiv: 2605.22498v1 📥 PDF

作者: Lucas Sheneman

分类: cs.LG, cs.AI, cs.SC

发布日期: 2026-05-21

备注: Use: 21 pages, 10 figures, 10 tables. Preprint; source code available at https://github.com/sheneman/neural_compiler


💡 一句话要点

提出神经编译器,将程序转换为可微模块,实现混合科学机器学习。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 科学机器学习 神经编译器 可微编程 混合建模 物理信息神经网络

📋 核心要点

  1. 现有科学机器学习方法在结合已知物理规律和数据学习时,存在忽略结构或需手动编写代码的问题。
  2. 神经编译器将类Scheme语言程序翻译为可微PyTorch模块,精确匹配源程序并提供梯度。
  3. 实验表明,编译模块在精度上与手写代码匹配,且在物理常数恢复方面优于PINN基线。

📝 摘要(中文)

科学机器学习通常需要将已知的物理规律与从数据中学习到的未知参数或修正项相结合。现有方法要么忽略已知的结构,要么将其编码为软约束,要么需要为每个方程手写PyTorch代码。我们提出了神经编译器,一个将用类Scheme的一阶表达式语言编写的程序翻译成冻结的、可微的PyTorch模块的系统。这些模块在浮点精度上与源程序匹配,并通过自动微分提供梯度。在混合模型中,编译后的模块精确地编码了已知的物理规律,而学习到的组件则对未知的剩余部分进行建模。我们在六个实验领域评估了编译器:费曼物理方程、Lotka-Volterra动力学、阻尼摆、一维热方程、三维矢量力学和组合泛化。对于单个方程,编译后的模块在数值上与手写PyTorch实现相匹配,表明编译没有造成精度损失。在大多数情况下,编译后的模型仅使用1到4个可训练参数即可将物理常数恢复到小于1%的误差,而具有超过8500个参数的标准PINN基线则显示出7%到93%的误差。编译后的模块也可以零误差地组合,而神经近似在深度组合链中会累积较大的误差。编译器的主要价值不是提高手写方程的准确性,而是系统的可组合性:它可以从符号规范生成正确的、可微的模块,而无需手动重写每个方程。该系统支持51个原始操作,包括向量和矩阵代数,从而实现PDE离散化和混合科学模型。这种字符串输入、模块输出的接口也为大型语言模型提供了一个自然的目标,可以将科学描述翻译成可执行的可微模块。

🔬 方法详解

问题定义:现有科学机器学习方法在融合先验知识(如物理方程)和数据驱动学习时面临挑战。传统方法要么忽略先验知识,要么将其作为软约束引入,要么需要针对每个方程手动编写PyTorch代码,这既繁琐又容易出错。这些方法难以保证结果的精确性和可组合性,尤其是在复杂的科学模型中。

核心思路:论文的核心思路是开发一个“神经编译器”,将用特定领域语言(类Scheme)编写的科学程序自动转换为可微的PyTorch模块。这样,已知的物理规律就可以被精确地编码到神经网络中,而未知的部分则可以通过学习来建模。这种方法旨在结合符号计算的精确性和神经网络的灵活性。

技术框架:神经编译器的整体框架包括以下几个主要阶段:1) 程序解析:将输入的类Scheme程序解析成抽象语法树(AST)。2) 代码生成:根据AST生成相应的PyTorch代码。3) 模块封装:将生成的PyTorch代码封装成一个可微的PyTorch模块。4) 混合模型集成:将编译后的模块与可学习的神经网络组件集成,形成混合科学机器学习模型。

关键创新:该方法最重要的创新点在于它提供了一种自动化的方式,将符号化的科学程序转换为可微的神经网络模块。与传统的手动编码方法相比,神经编译器可以显著减少开发工作量,并保证结果的精确性和可组合性。此外,该方法还为大型语言模型提供了一个自然的目标,可以将科学描述翻译成可执行的可微模块。

关键设计:该系统支持51个原始操作,包括向量和矩阵代数,从而实现PDE离散化和混合科学模型。编译器生成的PyTorch模块是“冻结的”,这意味着它们的参数在训练过程中不会被更新,从而保证了已知物理规律的精确性。可学习的神经网络组件则用于建模未知的剩余部分。损失函数通常包括数据拟合项和正则化项,以防止过拟合。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,编译后的模块在数值精度上与手写PyTorch实现相匹配,且在物理常数恢复方面优于PINN基线。例如,在大多数情况下,编译后的模型仅使用1到4个可训练参数即可将物理常数恢复到小于1%的误差,而具有超过8500个参数的标准PINN基线则显示出7%到93%的误差。编译后的模块还可以零误差地组合。

🎯 应用场景

该研究成果可广泛应用于科学计算、物理建模、工程设计等领域。例如,可以用于构建混合模型,将已知的物理方程与神经网络相结合,以提高模型的预测精度和泛化能力。此外,该编译器还可以作为大型语言模型的后端,将科学描述自动转换为可执行的计算模块,加速科学发现。

📄 摘要(原文)

Scientific machine learning often requires combining known physics with unknown parameters or correction terms learned from data. Existing approaches either ignore known structure, encode it as a soft penalty, or require hand-written PyTorch code for each equation. We present The Neural Compiler, a system that translates programs written in a first-order Scheme-like expression language into frozen, differentiable PyTorch modules. These modules match the source program to floating-point precision and provide gradients through autograd. In hybrid models, the compiled module encodes known physics exactly while learned components model the unknown remainder. We evaluate the compiler across six experiment domains: Feynman physics equations, Lotka-Volterra dynamics, a damped pendulum, a one-dimensional heat equation, three-dimensional vector mechanics, and compositional generalization. Compiled modules match hand-coded PyTorch implementations numerically for single equations, showing no accuracy loss from compilation. With only 1 to 4 trainable parameters, compiled models recover physical constants to less than 1 percent error in most cases, while standard PINN baselines with more than 8500 parameters show 7 to 93 percent error. Compiled modules also compose with zero error, while neural approximations can accumulate large errors in deep composition chains. The main value of the compiler is not improved accuracy over hand-coded equations, but systematic composability: it generates correct, differentiable modules from symbolic specifications without rewriting each equation by hand. The system supports 51 primitive operations, including vector and matrix algebra, enabling PDE discretizations and hybrid scientific models. This string-in, module-out interface also provides a natural target for large language models that translate scientific descriptions into executable differentiable modules.