Program-as-Weights: A Programming Paradigm for Fuzzy Functions
arXiv · HuggingFace · ▲87
摘要(原文)
Many everyday programming tasks resist clean rule-based implementation, such as alerting on important log lines, repairing malformed JSON, or ranking search results by intent, and are increasingly outsourced to large language model APIs at the cost of locality, reproducibility, and price. We propose fuzzy-function programming: compiling such a function from a natural-language specification into a compact, locally-executable neural artifact. We instantiate this paradigm with Program-as-Weights (PAW), in which a 4B compiler trained on FuzzyBench, a 10M-example dataset we release, emits parameter-efficient adapters for a frozen, lightweight interpreter. A 0.6B Qwen3 interpreter executing PAW programs matches the performance of direct prompting of Qwen3-32B, while using roughly one fiftieth of the inference memory and running at 30 tokens/s on a MacBook M3. PAW reframes the foundation model from a per-input problem solver into a tool builder: invoked once per function definition, it produces a small reusable artifact whose subsequent calls per function application are cheap and offline.
摘要(中译)
许多日常编程任务难以通过清晰的基于规则的方法实现,例如对重要日志行进行警报、修复格式错误的JSON或根据意图对搜索结果进行排名,并且越来越多地以牺牲局部性、可重复性和成本为代价外包给大型语言模型API。我们提出了模糊函数编程:将这种函数从自然语言规范编译成紧凑的、可在本地执行的神经工件。我们通过程序作为权重(Program - as - Weights,PAW)实例化了这个范例,在PAW中,一个在FuzzyBench(我们发布的一个包含1000万个示例的数据集)上训练的4B编译器会为一个冻结的、轻量级的解释器发出参数高效的适配器。一个执行PAW程序的0.6B Qwen3解释器的性能与直接提示Qwen3 - 32B的性能相匹配,同时使用的推理内存大约是后者的五十分之一,并且在MacBook M3上以每秒30个令牌的速度运行。PAW将基础模型从一个针对每个输入的问题求解器重新定义为一个工具构建器:它在每个函数定义被调用一次,然后产生一个小的可重用工件,其后续针对每个函数调用的调用成本低廉且可离线进行。
背景剖析
背景剖析
1. 技术背景与真实需求
许多日常编程任务无法通过明确的规则或符号逻辑实现,例如从日志中筛选重要信息、修复格式错误的JSON、或根据用户意图对搜索结果排序。这些任务依赖模糊的判断(如“重要性”或“意图”),人类能直观理解但难以用代码精确描述。传统方法要么手动编写易碎的规则(如正则表达式),要么调用大型语言模型(LLM)API(如GPT-3)。然而,后者存在成本高、延迟大、缺乏可复现性等问题,尤其不适合需要本地化执行的场景(如离线设备)。
2. 先前方法的局限性
现有方案将模糊任务外包给LLM API,但这种方法存在三大缺陷:
- 成本与效率:每次调用需支付API费用,且远程执行速度慢;
- 脆弱性:模型更新可能破坏功能,且无法离线运行;
- 不可复现性:依赖外部服务导致软件无法自包含。
此外,手动编写规则虽能部分解决问题,但面对噪声输入(如拼写错误或格式变化)时极易失效。
3. 本文的解决方案
论文提出“程序即权重”(Program-as-Weights, PAW)范式,将模糊任务转化为本地可执行的神经模块。核心思路是:
- 自然语言到神经程序的编译:开发者用自然语言描述任务(如“提取日志中的错误行”),编译器将其转换为轻量级的参数高效适配器(如LoRA),嵌入一个冻结的轻量级解释器(如Qwen3-0.6B);
- 两阶段编译流程:先用预训练模型生成伪程序(含示例),再用训练好的LoRA编译器生成适配器;
- 本地执行:编译后的程序可在用户设备上离线运行,占用内存仅为直接调用大模型的1/50,速度提升显著。
4. 与前人工作的关键差异
PAW的核心创新在于将基础模型从“每次输入都需重新计算”转变为“一次编译、多次复用”。不同于传统规则或直接API调用,PAW通过参数高效适配器(PEFT)将模糊任务固化为可复用的神经模块,兼具灵活性(支持自然语言描述)和效率(本地执行)。此外,PAW的编译器基于大规模模糊任务数据集(FuzzyBench)训练,覆盖800+任务类别,而此前工作多依赖单一任务或小规模数据。
这一范式为“小模型未来”铺路:重型计算仅在编译时发生,日常运行则在本地完成,解决了成本、效率与可复现性的矛盾。




