Program-as-Weights:模糊函数的一种编程范式
许多日常编程任务难以用清晰规则实现,例如检测重要日志行、修复畸形JSON或按意图排序搜索结果,这些任务越来越多地外包给大语言模型API,牺牲了局部性、可复现性和成本。我们提出模糊函数编程:将自然语言规范编译为紧凑的本地可执行神经工件。我们通过Program-as-Weights (PAW) 实例化该范式,其中在FuzzyBench(我们发布的包含1000万样本的数据集)上训练的4B编译器为冻结的轻量级解释器生成参数高效适配器。执行PAW程序的0.6B Qwen3解释器在匹配直接提示Qwen3-32B的性能时,仅使用约五十分之一的推理内存,并在MacBook M3上以30 tokens/s运行。PAW将基础模型从按输入求解器重新构想为工具构建器:每个函数定义调用一次,生成可重复使用的小型工件,后续每次函数应用的调用成本低廉且可离线执行。
论文精读
TL;DR PAW 将自然语言模糊函数编译为小型神经程序,在 0.6B 解释器上运行即可匹配 32B 大模型的性能,实现本地高效推理。
问题
问题背景
许多日常编程任务(如日志异常告警、JSON 修复、意图排序)无法用清晰的规则实现,这类模糊函数(fuzzy functions) 正越来越多地被外包给大语言模型 API,牺牲了本地执行、可复现性和成本控制。
现有方法局限
- 直接调用大模型 API:每次函数调用都需要远程推理,产生高延迟、订阅费用和隐私泄露风险,且输出可能因模型更新而不稳定。
- 微调小型模型:通常针对单一任务,缺乏对多种模糊函数的泛化能力;每次新需求都要重新收集数据、训练和部署。
- 基于规则的启发式方法:无法处理自然语言中固有的模糊性和上下文依赖,维护成本随逻辑复杂度指数增长。
- 缺乏系统性的“编译”抽象:现有工作没有将自然语言规范视为一种“源码”,并通过编译器产出可复用的神经执行单元。
为什么这个问题难且重要
模糊规范到可执行代码的鸿沟在于,自然语言的歧义需要结合上下文消解,而传统编译技术无法处理概率性和语义不确定性。从工程角度看,业界迫切需要一种低延迟、低成本、可离线运行的智能函数实现方式,尤其在边缘设备、嵌入式系统和隐私敏感场景中。PAW 的思路——用 4B 编译器 将自然语言规范编译为参数高效适配器(LoRA),再由 0.6B 解释器 在本地执行——直面了这一矛盾:它将基础模型从“每次输入都要求解的工具”转变为“一次定义、多次调用”的工具构建器。
行业类比
就像编译器将高级语言源码转化为可执行二进制,PAW 将自然语言函数描述转化为轻量神经网络权重,实现一次编译,随处离线运行,与 WebAssembly 或 SQLite 的“单文件可移植运行时”理念相似。
核心洞察
- **将自然语言规格编译为可重用的神经程序,而非每个请求都调用大模型**。传统方式将 LLM 作为每个输入的问题求解器,而 PAW 将它转变为工具构建器:用一个 4B 编译器一次编译出适配器,之后在 0.6B 解释器上多次执行,类似传统程序的编辑-编译-运行流程。这种范式将模糊任务的处理成本从每次推理降低到编译加本地轻量执行,同时保证了功能定义的确定性和可复现性,是对当前 API 调用模式的根本性变革。
- **通过参数高效的适配器和冻结解释器,实现小模型等效大模型的性能**。PAW 用 0.6B Qwen3 解释器加载编译出的 LoRA 适配器,性能匹配直接提示 32B 模型,但推理内存仅为其 1/50,可在 MacBook M3 上以 30 tokens/s 运行。这证明并非模型规模越大越好,利用针对性编译和参数迁移,可以在边缘设备上获得高质量、低延迟的模糊函数执行,对端侧部署、隐私敏感场景具有重要工程价值。
方法
输入
模糊函数规格说明(natural-language specification),如“对重要日志行发出告警”或“按意图重排序搜索结果”。用户在定义函数时一次性提供该规格。
关键模块
PAW 由两个核心组件构成:
- 编译器(4B 参数):基于 Text-to-LoRA 架构,将自然语言规格说明编码后,通过一个 LoRA mapper 直接生成一组参数高效的 LoRA 适配器权重。该 mapper 本质是一个轻量 hypernetwork,输出匹配解释器层的低秩分解矩阵。
- 解释器(0.6B 参数,冻结的 Qwen3 模型):基础权重完全冻结,仅通过注入编译器生成的 LoRA 模块改变行为。运行时,解释器接受具体任务输入(如日志行、JSON 片段),结合适配后的模型生成输出。编译器与解释器形成 编译器-解释器对,编译阶段(函数定义时)一次完成,解释阶段(每次函数调用)仅需小模型推理。
训练方式
使用自建的 FuzzyBench(10M 示例)数据集,每个示例包含 (规格说明, 输入, 输出) 三元组。编译器通过以下目标训练:给定规格说明和输入,最大化解释器生成正确输出的概率。损失函数通常为交叉熵,梯度反向传播至编译器,而解释器参数保持冻结。为提升泛化性,训练中注入多种 噪声规格说明(如错别字、歧义表述)。
输出
编译完成后产出一个 小型可复用神经构件(通常为几 MB 的 LoRA 权重文件),可离线或本地部署。每次调用解释器执行该函数时,只需在 0.6B 模型上运行,无需再次访问大模型 API,推理内存仅约大模型的 1/50,在 MacBook M3 上可达到 30 tokens/s。
与同类方法的差异
不同于每次推理都调用大模型的 直接提示(direct prompting) 方案,PAW 将基础模型从 per-input 问题解决器 重构为 一次性工具构建器:大模型仅参与函数定义时的编译,后续所有调用均在小型解释器上完成,从而将高成本的 API 查询转化为低成本的本地推理,同时保持相当的准确率。
实验
实验设计
论文构建了 FuzzyBench 数据集(1000 万样本),涵盖日志告警、JSON 修复、搜索重排等模糊函数任务。基于此训练一个 4B 参数的编译器,将自然语言规范编译为 LoRA 适配器;该适配器由冻结的 0.6B Qwen3 解释器执行。评估对比直接提示 Qwen3-32B 的基线,同时测试跨解释器扩展、多模态泛化、噪声鲁棒性及本地部署效率。
关键发现
- 效率跃升:PAW 解释器推理内存占用约为基线的 1/50,在 MacBook M3 上达到 30 tokens/s。
- 性能对齐:0.6B 解释器执行编译程序,在多项任务上匹配 32B 模型直接提示的性能。
- 范式转变:基础模型从“每输入求解器”转为“工具构建器”,一次编译生成可复用神经构件,后续调用廉价且可离线。
基线对比解读
与 Qwen3-32B 直接提示相比,PAW 用更小的模型实现了可比效果,同时大幅降低推理成本。这源于将开销转移至一次性编译阶段,而非每次函数调用都动用大模型。编译产出的 LoRA 适配器高度参数高效,解释器保持冻结,避免了昂贵的大模型在线推理。相比常规模型蒸馏或 PEFT,PAW 的编译器–解释器分离设计具备更好的可复现性和部署隐私性,特别适合对延迟、成本敏感且需求可复现的工业场景。
行业影响
落地场景
Program-as-Weights (PAW) 将自然语言规格编译为轻量级神经权重,与冻结的轻量解释器结合后,可在本地高效执行模糊函数。这使一系列需要延迟敏感、隐私保护或离线运行的场景受益:
- 边缘计算与 IoT 设备:如语音助手本地语义理解、摄像头实时内容过滤。
- 移动端个性化:如邮件重要性分类、搜索结果重排序,无需依赖云端大模型调用。
- 自动化工具:如 CI/CD 流水线中日志异常检测、代码格式化或 JSON 修复,可直接嵌入本地脚本。
- 企业服务:客服系统中意图识别、工单自动路由,可离线部署保证数据安全。
商业价值
PAW 重新定义了基础模型的使用方式,从按请求付费的求解器转变为一次性工具构建器,带来三重降本增效:
- 推理成本锐减:单次编译后可无限重放,避免每次输入调用大模型 API,在亿级请求量下节省巨额开销。
- 体验提升:本地执行消除网络延迟,30 tokens/s 的 MacBook 推理速度满足实时交互需求。
- 安全与合规:数据不出域,满足金融、医疗等强隐私场景的合规要求,同时可离线运行,增强系统鲁棒性。
与现有产品/工作流的集成
PAW 提供 Python 库 programasweights-python,以轻量 SDK 形式融入现有栈:
- 函数级调用:开发者通过
paw_compile(spec)产生可调用的fuzzy_func,无缝替换原 LLM API 调用点。 - 微服务架构:可将编译后的权重与解释器打包为容器,通过 REST/gRPC 对外提供能力,集成进 API 网关。
- 前端部署:结合 WebAssembly 将 0.6B 解释器运行在浏览器端,实现纯客户端智能功能。
具体落地案例
- 电商搜索排序:用户查询“适合送礼的数码产品”时,需综合商品属性、价格、评价等模糊意图排序。传统规则难以覆盖,大模型 API 延迟高。用 PAW 编写排序规格,编译为适配器嵌入搜索服务,毫秒级完成重排序,省去 API 成本且无隐私泄漏。
- 金融文档审查:合规部门需从大量合同中识别“非标准担保条款”,规则召回率低。将审查标准用自然语言描述,编译为本地程序,集成进文档处理 pipeline,实时高亮风险条款,全部在内部服务器完成,保障客户数据安全。
局限
- **编译产物不可解释**。PAW 编译生成的权重适配器是一个不透明的神经参数块,缺乏传统代码的可读性和可调试性。开发者无法像审查规则或代码逻辑那样理解模糊函数的具体行为,这使得验证、测试和信任变得困难。论文明确指出编译程序的可解释性仍是一个开放问题,这在安全关键应用或需要审计的场景中会构成采纳障碍。
- **仅支持单步模糊函数,表达能力受限**。当前 PAW 范式只能处理一次性的输入到输出的模糊映射(如分类、评分、纠错),无法表达多步推理、有状态交互或调用外部工具的复杂任务。论文承认此局限,并指出扩展到多步模糊函数(例如类自动机逻辑或递归处理)是未来方向。这限制了其在需要条件分支或循环的真实工作流(如复杂数据处理流水线)中的直接应用。
- **训练数据完全合成,真实域适应能力待验证**。FuzzyBench 的 1000 万样本全部由 GPT-4o 生成,虽然覆盖了 124 个主题并添加了噪声变体,但合成数据固有的分布偏差、幻觉和风格单调可能影响编译程序在下游真实数据上的鲁棒性。论文仅在几项案例研究中展示了定性效果,缺乏大规模真实场景的评测。若部署到生产环境中与合成分布不一致的任务时,性能可能出现显著下降。