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

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

论文背景与研究动机

编程历来依赖显式规则与符号代码,然而现实世界中存在大量无法精确形式化的 “模糊函数”。例如在日志监控中筛选重要行、修复格式错误的 JSON、根据意图对搜索结果排序等,这些任务对人类直观,却难以用确定性的正则表达式或条件分支完整描述。当下的解决方案大多将模糊性外包给大语言模型(LLM)API,在代码中直接调用 gpt("extract answer", text) 这样的远程模型。这种做法虽便捷,却带来 API 成本高、网络延迟、可复现性差(模型静默更新)、隐私难以保障等问题,软件也无法完全自包含。

论文《Program-as-Weights》提出了一种新的编程范式:将模糊函数从自然语言描述编译为小巧的神经二进制程序,并在用户设备上本地执行。这个范式称为 Program-as-Weights(PAW)。其核心理念是令基础模型从逐输入调用的 “问题求解器” 转变为逐函数构建的 “工具制造器”:每次定义新函数时只调用一次编译器,产出一个小型可复用构件,之后在本地调用该函数时完全无需联网。

核心方法:编译一次,随处本地运行

PAW 将由三部分构成的编译–解释流水线具体实现:

  1. 描述:开发者用自然语言写出函数的规格说明(spec),可选配输入输出示例。
  2. 编译:一个神经编译器将规格转化为混合程序 p=(pdiscrete,pcontinuous)p = (p_{\text{discrete}}, p_{\text{continuous}})。离散部分 pdiscretep_{\text{discrete}} 是一段经过重述的伪程序(清晰的任务描述与代表性示例),由冻结的伪编译器(一个现成的 4B Qwen3 模型)根据规格自动生成。连续部分 pcontinuousp_{\text{continuous}} 是一个参数高效微调模块(本文最终选用 LoRA),由训练的 LoRA 编译器从自身隐藏状态产生。编译过程在云端完成,只需一次。
  3. 本地运行:一个冻结的轻量级解释器(如 0.6B 参数的 Qwen3)加载 pdiscretep_{\text{discrete}} 并注入生成的 LoRA 权重,对输入 xx 进行推理,输出 y^f(x)\hat{y} \approx f(x)。解释器固定在本地设备上,可复用支撑任意多个已编译程序,每个程序只需约 23 MB 的 LoRA 适配器文件。

这种设计将解释器保持为恒定运行时,而编译器成了唯一需要训练的部分。编译器收到拼接序列 [spec | pseudo_program | EOS | learnable_prefix],从特定层次提取前缀位置的隐藏状态,再通过 LoRA 映射器将其转化为低秩分解的适配器矩阵。映射器采用共享基础矩阵池,从池中混合出每个层与模块类型的 LoRA 权重,最终注入解释器的 Q/K/V/O 和 MLP 投影层。

训练目标是最大化目标输出 yy 在冻结解释器下的对数似然:

L(θ)=E(s,x,y) ⁣[logPϕ ⁣(ypdiscrete,pLoRA(θ;s,pdiscrete),x)]\mathcal{L}(\theta) = \mathbb{E}_{(s,x,y)}\!\left[-\log P_{\phi}\!\left(y \mid p_{\text{discrete}}, p_{\text{LoRA}}(\theta; s, p_{\text{discrete}}), x\right)\right]

训练仅在 LoRA 编译器及其映射器上进行,伪编译器和解释器均冻结,以此实现一次训练、无限复用。

实验与关键结果

作者构建并公开了大规模数据集 FuzzyBench,包含 1000 万条三元组(规格说明、输入、目标输出),覆盖 800 多个类别,如文本分类、格式转换、模糊匹配、自然语言指令、工具调用等。主实验结果触目:一个 0.6B 参数的 Qwen3 解释器执行 PAW 程序,在 FuzzyBench 的测试集上达到 73.78% 的精确匹配率,超越了直接提示 32B 参数 Qwen3 的成绩(68.70%),而推理内存仅为其约五十分之一(约 1.2 GB vs 60 GB),且速度可达 30 tokens/秒(MacBook M3 上量化后)。在噪声鲁棒性测试中,当规格说明被加入错别字、语法错误、含糊表述时,PAW 性能下降极小,因为编译器先用强大的 4B 模型将原始规格重述为干净的伪程序,有效阻隔了噪声向小解释器的传播。

PAW 还展示了多模态泛化:将文本编译器替换为同一家族的视觉语言模型 Qwen3-VL-4B,利用相同的解释器和 LoRA 映射器,即可处理图像条件的模糊任务,如化学分子式识别、电路图阅读、乐谱理解等,性能超越相近尺寸的视觉语言模型。

五组案例研究进一步验证实用性:事件驱动日志监控将终端轮询替换为本地分类器;意图导向网站导航免去每次请求的 API 调用;语义搜索重排结合关键词索引提供意图感知排序;工具调用流水线用 10 个 PAW 函数在 ToolCall-15 上达到 93% 的正确率;多语言猜词游戏以极低推理成本在服务器端运行,每个语言一个程序,LLM 仅在编译时参与。

创新点与贡献

  1. 范式转变:首次将模糊函数的编译与本地执行完整实现为 “编译器+解释器” 架构,编译产物成为可版本控制、可分发、可离线的软件构件。
  2. 大规模模糊函数数据集:FuzzyBench 为后续研究提供了多样化的训练和评估基准。
  3. 编译器生成的复用性:LoRA 适配器由编译器一次性生成,无需针对每个新任务再训练,比传统微调灵活得多。
  4. 模态无关的设计:替换编译器即可扩展至图像等模态,解释器保持不变,证明了抽象的分层清晰性。
  5. 实际可部署:提供了 Python 和 JavaScript API,支持量化,使得模糊函数能真正嵌入到日常软件中。

实践应用建议

对于实际开发者,PAW 特别适合那些 “难以用规则写清楚,但又不必每次调用大模型” 的任务。可以按照以下方式将其引入项目:

  • 识别模糊函数:挑出目前使用复杂正则、规则堆砌或频调 LLM API 的模块,将其规格用自然语言描述。
  • 编译与集成:使用提供的 paw.compile(spec) 生成程序文件,通过 paw.function("name") 在本地调用,与 Python 函数无异。
  • 本地部署:配合量化,一个程序仅占数十 MB,可在普通电脑甚至浏览器内运行,适合嵌入式、离线场景或注重隐私的环境。
  • 噪声管理:容忍规格中的拼写或语法错误,因为伪编译器会自动清理。

未来,开发者甚至可以构建一个模糊函数库,像管理 Python 包一样管理神经程序,大幅降低智能功能的集成成本。

总结与展望

Program-as-Weights 为 “小模型未来” 提供了一个具体蓝图:大型模型在云端负责将模糊规格编译为高效执行的神经二进制,而日常推理由小模型在本地完成。这种模式保有符号编程的模块性与复用性,却延续了神经网络对模糊性强健的建模能力。目前方法局限于单步任务,未来工作可探索多步推理编译、更好的 PEFT 策略自动选择、训练产出可组合程序,以及更透明的调试工具。随着合成数据和高效参数化方法的持续进步,我们或许很快可以在每台设备上都安放一个理解模糊指令的轻量运行时,让软件真正 “即说即用”。