What is a fuzzy function?
A fuzzy function performs a task whose rules are hard to write down completely. It might decide whether a log message needs attention or repair text with a broken format. A natural-language description defines the function; each call supplies a new input.
Definition and execution
Program-as-Weights proposes compiling the description into a reusable neural program. A lightweight interpreter loads the program and runs it on new inputs. Compilation happens once at function definition time. The program can then be saved, loaded, and called again.
A PAW program combines a discrete pseudo-program with a parameter-efficient neural module. The paper implements the module with prefixes and LoRA adapters. Both implement the same compiler–interpreter interface for fuzzy-function programming.
An urgency classifier, for example, takes a message and returns immediate or wait. Compile the classifier once, load it once, and call it on each new message. Application code handles file access, control flow, errors, and what to do with the output.
Compilation through training
Compile by Training, by Yuntian Deng, Pengyu Nie, and Stuart Shieber, builds on PAW’s programming interface. Teacher models generate examples from the function specification. Training on those examples refines the fast compiler’s initial program. The result keeps PAW’s program format and runtime interface.
This makes adaptation a build step. Once compiled, the function runs locally without the teacher models. The paper’s applications include a website helper, avatar control, and two translation functions. They combine learned functions with ordinary code for exact operations and control flow.
Saving and composing functions
PAW programs can be named, saved, loaded, tested, and called through the local runtime. Tests check whether a compiled function satisfies its specification. Application code can pass one function’s output to another or branch on its result.
Neural Programmer-Interpreters learns program representations from execution traces and runs them with a shared recurrent interpreter. PAW takes a natural-language function specification as the compiler’s input.
ALCHEmist generates symbolic labeling programs. Both ALCHEmist and PAW create programs that can be executed repeatedly: ALCHEmist produces symbolic code, while PAW produces neural programs.
Code and neural programs
ALCHEmist generates symbolic labeling programs. PAW compiles fuzzy functions into text and learned parameters. Both build an artifact once and reuse it; one runs as code, the other on a neural interpreter.
Comparing neural programs
- Specification: What defines the task: text, examples, traces, or a task identifier?
- Program: What is saved: source code, embeddings, cached activations, weights, or a mixture?
- Execution: What computation runs for each new input?
See how neural compilers produce programs and how to evaluate the resulting functions.