程序即权重:一种面向模糊函数的编程范式

Program-as-Weights: A Programming Paradigm for Fuzzy Functions

arXiv: 2607.02512v1

论文信息

标题: Program-as-Weights: A Programming Paradigm for Fuzzy Functions

作者: Wentao Zhang, Liliana Hotsko, Woojeong Kim, et al.

发布日期: 2026-07-02

arXiv ID: 2607.02512v1

PDF 链接: 下载 PDF

3 分钟速览

  • 研究问题:这篇论文要解决的是 “模糊函数” 的本地高效执行问题——这些函数的逻辑难以用显式代码实现,但用自然语言描述却很简单,目前通常依赖每次调用大模型 API,成本高且不可控。
  • 核心方法:提出 Program-as-Weights(PAW)范式,将用户用自然语言写的函数规格编译成一个轻量 LoRA 适配器,与一个冻结的本地小模型(解释器)配对执行,从而实现一次编译、本地无限调用。
  • 关键结果:一个 0.6B 参数的 Qwen3 解释器执行 PAW 程序,在 FuzzyBench 综合评测上准确率达 73.78%,超过直接提示 32B 模型的 68.70%,而推理内存消耗仅为后者的约 1/50(见论文表 2)。
  • 主要局限:编译器与解释器必须配对训练,更换解释器需重新训练;程序的可解释性仅限于文本部分(伪程序),LoRA 权重本身不透明;目前只验证了单步任务,多步组合尚待探索。
  • 适合读者:对 LLM 小型化部署、参数高效微调、模糊逻辑自动化和本地工具链构建有实际需求的软件工程师与研究者。

论文背景和研究动机

在软件工程中,存在大量 “边界模糊” 的函数:例如从日志中筛选重要事件、修复畸形 JSON、按语义对搜索结果排序等。这些任务对人类直觉而言很简单,但用规则(如正则表达式)实现极易失效,且现实中输入往往带噪声(拼写错误、格式漂移)。目前开发者常将这类模糊函数外包给云端大模型 API(如调用 gpt(extract answer, text)),但这带来 API 延迟、成本、不可复现性以及自包含性缺失等问题。

论文将这一困境理论化为模糊函数,并提出了一个全新的编程范式:将问题的 “编译” 与 “执行” 彻底分离。大型基座模型的角色从每次输入都运行的 “问题求解器” 转变为只运行一次的 “工具构建器”:它在云上完成一次性编译,产出一个可离线使用的神经程序,而实际应用侧只需一个轻量本地模型作为运行时,重复执行该程序。

核心方法和技术细节

PAW 系统由三个组件构成:

  1. 伪编译器(无训练):使用现成的 Qwen3‑4B‑Instruct 模型,将用户的自然语言规格重写为结构化的伪程序,包含清晰的任务描述和少量输入‑输出示例。
  2. LoRA 编译器(训练获得):也是一个 4B 的 Qwen3 模型,输入 “原始规格 + 伪程序 + 固定学习前缀 Token”,在前向传播中提取其隐藏状态,通过一个 LoRA 映射器产生针对该任务的低秩适配矩阵(LoRA),作为神经程序的连续部分。
  3. 冻结的解释器:一个 0.6B 的 Qwen3 模型,运行时热加载 LoRA 适配器,并将伪程序前置到用户输入前,生成最终输出。整个推理过程在本地完成。

LoRA 映射器采用共享基(shared bases)设计:为每个目标模块类型(如注意力层的 Q/K/V/O 和 MLP 层)维护 64 个可学习基矩阵(秩 r=64),通过混和系数加权求和得到最终的 LoRA 权重。这一简单但有效的设计(论文消融实验表明没有更复杂的变体能带来额外提升,见第 7 节)将每个模糊函数压缩为约 23 MB 的量化适配器文件。

训练时,仅更新 LoRA 编译器和映射器的参数,解释器完全冻结。损失函数为目标输出在解释器上的负对数似然,梯度回传穿过解释器至编译器的隐藏状态。

创新点和贡献

论文的核心创新在于将模糊函数的实现从 API 调用范式迁移到编译‑运行时范式。具体贡献包括:

  • 程序作为权重的抽象:定义了 p = (p_discrete, p_continuous) 的混合神经程序,其中 p_discrete 是可读的任务描述,p_continuous 是编译器发出的参数,两者共同注入解释器。该抽象将神经程序变成了可版本控制、可分发的软件构件。
  • 一次编译、本地执行:编译器仅执行一次(或很少次),而实际调用只需本地小模型,大幅降低了推理内存和延迟,并使软件可离线运行。实验表明,在 MacBook M3 上量化后可达到 30 tokens/s。
  • FuzzyBench 数据集:构建并开源了包含 1000 万条示例的模糊函数评测集,涵盖 800+ 类别,提供了统一对比基础。该数据集还包含八种噪声变体,用于测试对脏规格的鲁棒性(见第 8 节)。
  • 跨模态扩展的简单性:替换编译器为视觉语言模型(Qwen3‑VL‑4B),而保持同一解释器不变,即可实现图像条件的模糊函数执行,验证了范式的模态一般性(见第 6 节及表 3)。
  • 理论指导下的工程落地:论文提供了完整的 Python/JavaScript API、量化方案、案例研究(日志监控、意图导航、语义搜索重排、工具调用管道、猜词游戏),展示了从研究到实际可用的完整链条。

实验结果分析

在 FuzzyBench 验证测试集上,PAW(Qwen3 0.6B 解释器)取得 73.78% 的精确匹配率,不仅大幅领先同量级模型直接提示的 9.84%,也超过了 32B 模型的 68.70%,同时推理内存仅需约 1.2 GB (bf16) 对比 60 GB(表 2)。

与参数高效微调的比较:相同基座模型的全量微调仅达 58.40%,固定 LoRA(r=64)更只有 52.10%,PAW 通过编译器动态生成的适配器明显优于静态学习(表 5)。这证明性能增益主要源于 “编译器根据任务描述生成专属 LoRA” 的能力。

噪声鲁棒性:即使规格中加入大量拼写错误、歧义、格式扰动,PAW 精度仅轻微下降(重度全噪声下下降 3.7%,见表 6),这得益于伪编译器能将污损规格净化成清洁的伪程序,从而保护了小解释器(表 7)。

量化与本地速度:4-bit 基础模型 + 4‑bit LoRA 适配器在 M3 MacBook 上运行速度 31.6 tokens/s,准确度仅比 bf16 低 1.3 个百分点(表 8),使得完全离线、无 API 的部署真正可行。

图像任务表现:在电路图理解、化学结构、乐谱等任务上,PAW 超越了 4B 视觉语言模型的直接预测,展示了范式在不改动解释器的情况下通过更换编译器实现跨模态的潜力(表 3)。

实践建议

基于 PAW 的设计和已开源的工具链,开发者可以尝试以下实践路径:

  • 模糊任务本地化:找出项目中那些依靠大模型 API 实现的 “if” 式函数(如文本分类、格式修复),用 PAW 将它们编译为本地适配器。先使用官方提供的 Python 包 programasweights 进行尝试,编译后的程序可离线使用,降低延迟和成本。
  • 版本化神经程序:将编译好的 .paw 文件视作普通函数库,纳入版本控制,定义清晰的任务名称和版本,使得模糊函数的行为像常规代码一样可追溯。
  • 噪声规格预处理:利用伪编译器自动改写规格的特点,可在用户输入的模糊描述有瑕疵时仍稳定产出精确任务定义,适合面向最终用户的低代码平台。
  • 量化部署:在移动端或边缘设备上,选用 4‑bit 量化基础模型和 LoRA 适配器,可以在牺牲极小精度的情况下实现每秒 30 个 Token 的生成速度,足以支持交互式应用。
  • 组合管道:像 “工具调用管道” 案例那样,将多个 PAW 函数串联(分类→参数提取→路由),构成一个由小模型组成的复杂工作流,只在大模型编译时用一次强模型,日常运行时全部本地处理。
  • 跨模态扩展:若需要图像条件任务,可直接替换编译器为同一家族的视觉语言模型,而无需修改解释器端,这为多模态本地应用提供了简单路径。

对于希望深入定制的读者,FuzzyBench 的数据集和训练流程均已开源,可以在自己的解释器基座上重新训练专用编译器,或针对特定领域的模糊函数构建私有的编译‑执行体系。