论文

可微分科学软件生态系统的递归改进

Recursive Improvement of a Differentiable Scientific Software Ecosystem

应用与实践科学研究

摘要

可微分编程将科学计算与基于梯度的推理、学习和设计连接起来。在异构软件生态系统中扩展这些功能需要专门的努力来实现衍生产品、集成接口和评估质量。 AI 编码智能体可以加速这一转变,但将其功能转化为有用的科学软件需要确定研究需求并评估实现如何满足这些需求。我们为智能体驱动的可微分科学软件的发展提供了一个环境,将需求识别、开发和质量评估连接起来。统一的微分接口公开了可重用的导数规则以及现有的数值例程,允许研究任务共享这些功能。研究需求指导开发,并通过独立的衍生检查、工作流程测试和性能评估来评估实施情况。经过验证的软件、研究计划和测试成为后续研究的共享资源。我们构建并验证了跨越物理、化学和生物建模的 20 个软件包的自动微分扩展,并通过研究工作流程展示了跨任务的重用。基准测试证明了梯度评估和完整参数估计中有限差异的计算节省。研究驱动的修订使以前不受支持的工作流程可微分,纠正科学可观测值的导数并消除冗余计算。量子控制和热设计研究根据物理评估修改目标,改进设计,同时重用现有衍生物。这项工作提供了一种实用的方法,可以在已建立的科学软件中扩展可微分编程,并围绕共享计算生态系统的递归改进来组织 AI 智能体。

可微分科学软件生态系统的递归改进的原论文方法或结果图
图 3:一项研究任务推动了新的衍生功能,然后推动了 Kwant 的实施改进。 (a) 使用第一次散射规则更新设计的八门电势。 (b) 初始和 AD 设计的装置在 101 能量下的本机传输;圆圈标记每个能量窗口的四个保留点。虚线阈值适用于每个窗口内的平均透射率。两个传入通道最多为两个。 (c) 同一已保存设计中一个值和完整梯度请求的中值时间和所有三个过程测量,并具有匹配的数值结果;灰线是同一请求的中值 FD 参考。反馈带将缺失的导数、其在设计中的使用以及后来的执行改进联系起来。