HyperAIHyperAI

Command Palette

Search for a command to run...

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

Wentao Zhang Liliana Hotsko Woojeong Kim Pengyu Nie Stuart Shieber Yuntian Deng

摘要

许多日常编程任务,例如对重要的日志行进行告警、修复格式错误的 JSON 或按意图对搜索结果排序,难以通过清晰的基于规则的实现来完成,因此越来越多地被外包给大型语言模型 API,但这牺牲了局部性、可重复性以及成本。我们提出模糊函数编程这一概念:将此类函数从自然语言规范编译为一个紧凑、可在本地执行的神经制品。我们通过 Program-as-Weights(PAW)来实例化这一范式,其中经过 FuzzyBench(我们发布的一个包含 1000 万个示例的数据集)训练的 4B 编译器,会为冻结的轻量级解释器生成参数高效的适配器。执行 PAW 程序的 0.6B Qwen3 解释器在性能上与直接提示 Qwen3-32B 相匹配,但推理内存仅为其约五十分之一,并在 MacBook M3 上以每秒 30 个令牌的速度运行。PAW 将基础模型从每个输入的求解器重构为工具构建器:仅在函数定义时调用一次,即可生成一个小的可复用制品,后续对该函数应用的每次调用都既廉价又离线。

一句话总结

滑铁卢大学、康奈尔大学和哈佛大学的研究人员提出了基于程序即权重 (Program-as-Weights, PAW) 的模糊函数编程方法,其中在包含 1000 万示例的 FuzzyBench 数据集上训练的 40 亿参数编译器将自然语言规约编译为针对冻结的 6 亿参数 Qwen3 解释器的参数高效适配器,在 FuzzyBench 上达到与直接提示 Qwen3-32B 相当的性能,但推理内存仅为其 1/50,并且在 MacBook M3 上以每秒 30 个 token 的速度运行,将基础模型从逐输入求解器重新定位为工具构建器。

核心贡献

  • Program-as-Weights (PAW) 将自然语言规约编译为适用于冻结的 6 亿参数 Qwen3 解释器的参数高效适配器权重,将基础模型从每次输入均求解问题转变为一次性工具构建器。
  • 通过 29 个任务类别特定的流水线生成的 FuzzyBench-10M 数据集,提供了 1000 万个模糊任务示例,并包含经过两个强大 LLM 一致性过滤的验证测试集。
  • 在 6 亿参数解释器上使用 PAW 适配器,在 FuzzyBench 上达到了与 Qwen3-32B 提示相当的性能,同时推理内存大约减少 50 倍,并在 MacBook M3 上以每秒 30 个 token 运行。

引言

许多现实世界的编程任务涉及难以用精确符号规约表述的“模糊函数”,例如过滤关键日志行、修复错误的 JSON 或编写处理边界情况的正则表达式。开发人员通常将这些任务外包给大语言模型 API,但这种方法昂贵、脆弱(提供商可能悄然更新模型),且使软件无法自包含。手写规则和正则表达式在面对噪声、漂移的输入时显得不堪一击。本文提出程序即权重 (Program-as-Weights, PAW) 范式:神经网络编译器将自然语言任务描述转化为紧凑的 LoRA 适配器,而冻结的轻量解释器在用户本地设备上运行该适配器。通过将繁重计算转移到一次性编译步骤,PAW 使小型端侧模型在准确率上匹敌或超过大得多的提示模型,同时保持软件可复现、自包含。

数据集

研究人员构建了 FuzzyBench,一个包含 1000 万示例的三元组(规范输入目标输出)数据集,用于编译模糊函数这一任务。以下是关键细节:

  • 来源与生成:所有三元组均由 gpt‑5.2 通过两阶段流水线生成。第一阶段,模型在不同类别约束下产生自然语言规范(覆盖真实世界中模糊任务的广度);第二阶段,为每个规范生成输入/输出对。数据集分 29 个版本逐步构建,每个版本添加 10 万–50 万示例,来自新的任务族。
  • 规模与主题覆盖:最终的 1000 万示例涵盖 7 个高层任务族(文本处理/解析、agent 工具使用、网络智能、代码/命令生成、安全/验证等)以及 800 多个细粒度子类别。
  • 训练/验证/测试集划分:数据按规范以 80/10/10 比例划分,确保测试规范在训练过程中从未出现。此外,进一步筛选出验证测试集,仅保留 gpt‑5.2 与另一独立强模型 (gpt‑5‑mini) 输出一致的示例,消除模糊目标。
  • 噪声增强测试集:为评估鲁棒性,测试集沿八种扰动轴(拼写错误、语法错误、歧义、格式漂移、“全噪声”、简洁措辞、随意措辞、释义)各以三个强度级别(轻、中、重)进行扰动。
  • 数据使用方式:该数据集是 PAW 类方法的主要训练资源,用于从规范编译模糊函数。训练使用训练划分,验证使用验证划分,最终性能在主测试集、验证测试集和噪声变体测试集上报告。
  • 经验上限:生成模型 gpt‑5.2 在测试集上达到 96.09%,gpt‑5‑mini 达到 91.87%,为在 FuzzyBench 上训练的任何模型提供了上界。

方法

本文提出“程序即权重”(PAW) 框架,将用户规范编译为神经网络程序,使固定模型特化以执行目标模糊函数。系统将负载划分为编译器与解释器,不再反复调用大语言模型。形式上,神经编译器将用户规范 sss 映射为程序 ppp,小型固定神经解释器在输入 xxx 上执行 ppp 并产生输出 y^\hat{y}y^

p=Compiler(s),y^=Interpreter(p,x)f(x).p = \operatorname{Compiler}(s), \quad \hat{y} = \operatorname{Interpreter}(p, x) \approx f(x).p=Compiler(s),y^=Interpreter(p,x)f(x).

编译得到的程序 ppp 是离散与连续组件的混合,p=(pdiscrete,pcontinuous)p = (p_{\text{discrete}}, p_{\text{continuous}})p=(pdiscrete,pcontinuous)。离散组件作为一个自包含的伪程序,作为输入的一部分提供给解释器;连续组件则通过参数高效微调方法(如 LoRA)实现。

PAW 流水线包含三个主要组件。首先,伪编译器读取规范 sss 并生成离散伪程序 pdiscretep_{\text{discrete}}pdiscrete。此步骤使用现成模型,提示其生成对任务的清晰重述以及代表性输入-输出示例。其次,PEFT 编译器读取规范与 pdiscretep_{\text{discrete}}pdiscrete 并输出一个小型参数高效模块 pcontinuousp_{\text{continuous}}pcontinuous。最后,冻结的解释器在运行时摄入 pcontinuousp_{\text{continuous}}pcontinuous:将其附加到对应的目标模块,然后将用户输入传递过去。

本文目前对该流水线的最佳实例化是 Text-to-LoRA。LoRA 编译器是一个经过训练的模型,处理由规范、伪程序、序列结束 token 和固定序列的可学习前缀 token 拼接而成的输入。它从按深度比例均匀间隔的层中抽取前缀位置的隐藏状态,堆叠为张量并馈入 LoRA 映射器。

如下所示:

LoRA 映射器将编译器的隐藏状态转换为逐示例的 LoRA 权重。对解释器中每一种目标模块类型,映射器维护一组共享的可学习基。将来自深度对齐层和前缀位置的隐藏状态进行均值池化,再经过线性头得到混合系数。特定层和模块的最终 LoRA 矩阵由这些共享基的线性组合计算得出:

Al,mex=n=1Nαl,m,nAAn(m),Bl,mex=n=1Nαl,m,nBBn(m).A_{l, m}^{\text{ex}} = \sum_{n=1}^{N} \alpha_{l, m, n}^{A} A_{n}^{(m)}, \quad B_{l, m}^{\text{ex}} = \sum_{n=1}^{N} \alpha_{l, m, n}^{B} B_{n}^{(m)}.Al,mex=n=1Nαl,m,nAAn(m),Bl,mex=n=1Nαl,m,nBBn(m).

执行时,解释器将生成的 LoRA 权重附加到其目标模块,将离散伪程序置于用户输入之前,然后自回归地生成输出。由于解释器保持冻结且 LoRA 适配器可热插拔,单个常驻设备的解释器可为无数编译后的程序服务。

在训练过程方面,仅训练 PEFT 编译器与 LoRA 映射器,伪编译器与解释器保持冻结。对每个训练三元组,系统查找预先生成的伪程序,执行 LoRA 编译器的前向传播获取前缀位置隐藏状态,再通过 LoRA 映射器产生适配器权重。损失为冻结解释器下目标输出的负平均 token 对数似然:

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

其中 θ\thetaθ 代表 LoRA 编译器与映射器的参数,ϕ\phiϕ 为冻结解释器的参数。梯度通过冻结解释器反向传播到 LoRA 映射器,进而传至编译器的隐藏状态。

实验

实验在模糊文本任务、多模态条件和真实部署场景中评估 PAW 框架,其中大型编译器模型为小型固定解释器生成伪程序和 LoRA 适配器。6 亿参数解释器配合编译器生成的 LoRA 在准确率上匹敌或超过大得多的提示模型,同时大幅降低内存占用,并且编译器生成的伪程序能有效降噪有噪规范,使系统具有鲁棒性。消融实验证实这些增益来自编译器自身,且最简单的映射器设计效果最好。带量化的本地执行能保持准确率,并实现经济的端侧部署,无需每次请求调用 LLM。

在 FuzzyBench 上,prefix-tuning 与 LoRA 的编译器-解释器实例化均显著优于提示基线。Prefix-tuning 的精确匹配率为 50.4%,而秩为 18 的 LoRA(程序规模与 prefix-tuning 相当)达到 56.5%,秩 64 进一步达到 65.7%,LoRA 更具优势。Prefix-tuning 的 50.4% 远高于无编译器的提示基线 9.8%。LoRA 秩 18 提升至 56.5%,秩 64 达到 65.7%,在所有测试规模上均优于 prefix-tuning。

执行 PAW 编译程序的 6 亿参数解释器在 FuzzyBench 上精确匹配率达 73.78%,超过直接提示的 320 亿参数模型 (68.70%),且推理内存约为其 1/50。即使未经过指令微调的 1.24 亿参数 GPT-2 解释器也达到 54%,表明编译器生成的 LoRA 能将有用的任务知识注入极小的模型。PAW 程序是自包含的,以轻量量化适配器形式分发,可在无互联网环境下本地执行。使用 6 亿参数解释器的 PAW 在 FuzzyBench 上优于 Qwen3-32B 提示(73.78% 对 68.70%),内存使用减少约 50 倍。1.24 亿参数 GPT-2 解释器尽管缺少指令微调,仍在 FuzzyBench 上达到 54%,显示出编译器的 LoRA 适配器能适配极小的基模型。在测试的解释器中,Qwen3 0.6B 最强,稍领先于混合模型 Qwen3.5 0.8B。

PAW 搭配小型解释器(0.6B–0.8B)在大多数图像条件模糊任务上优于参数量达 4B 的专用视觉-语言模型,同时参数更少。LoRA 适配始终强于 prefix-tuning,0.8B 解释器相比 0.6B 略有提升,唯一的例外是 Im2LaTeX,其中专用模型仍占优。PAW 的极小解释器在 Circuit、Chemical、Music 和 Im2SMILES 上超越更大 Qwen3-VL 模型。LoRA 在所有任务上的准确率均高于 prefix-tuning,在 TextVQA 上差距最明显。Im2LaTeX 任务上,专用视觉模型优于 PAW,反转了其他基准的趋势。将解释器从 0.6B 扩至 0.8B 在六项任务上均带来一致但微小的提升。AndesVL 在 Im2SMILES 上得分为 0,而 PAW LoRA 达到可用准确率,凸显编译器处理特殊图像查询的能力。

更简单的 LoRA 映射器设计优于更富表现力的设计。默认映射器——对前缀 token 做均值池化、使用共享基和单残差 MLP——获得最高准确率。增加逐位置聚合、逐层基或并行 prefix-tuning 路径均降低了性能,其中逐位置与逐层基的组合导致降幅最大。默认映射器最准确;逐位置聚合降低准确率,加入逐层基进一步降低;并行 prefix-tuning 路径或单独的逐层基彼此相当,但仍不如默认方案。

移除编译器后对相同 6 亿基模型进行全参数微调或固定秩 LoRA 会导致大幅准确率下降。PAW 通过编译器生成的 LoRA 达到 73.8%,超过全参数微调 15.4 个百分点,超过最强固定秩 LoRA 21.7 个百分点。PAW 编译器生成的 LoRA 比同一基模型的全参数微调高 15.4 个百分点;最佳固定 LoRA(秩 64)仅达到 52.1% 准确率,而 PAW 为 73.8%。

在 FuzzyBench 上的评估表明,PAW 编译器-解释器框架配合 LoRA 适配器显著优于提示基线、全参数微调和固定秩 LoRA,让微小的 6 亿参数解释器超越大得多的模型,同时大幅降低内存占用。LoRA 在文本和图像条件模糊任务中始终优于 prefix-tuning,在冷门领域常超过专用视觉-语言模型,最终生成自包含的轻量适配器。消融实验确认简单的映射器设计最有效,且编译器对于向基模型注入可复用任务知识至关重要。


用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供