| --- |
| library_name: rule-inducer |
| license: mit |
| pipeline_tag: tabular-classification |
| tags: |
| - rule-induction |
| - neuro-symbolic |
| - logic-programming |
| - ilp |
| - interpretability |
| - zero-shot |
| - pytorch |
| - model_hub_mixin |
| - pytorch_model_hub_mixin |
| arxiv: 2605.04916 |
| papers: |
| - 2605.04916 |
| --- |
| |
| # Neural Rule Inducer (NRI) |
|
|
| **Zero-shot induction of interpretable DNF rules from Boolean examples.** |
|
|
| NRI is a pretrained neural model that, given a small set of labelled Boolean examples for a *new* binary classification task, produces an interpretable disjunctive normal form (DNF) rule that explains the labels — *without any task-specific fine-tuning*. Instead of encoding literal identities, it represents literals using domain-agnostic statistical properties (class-conditional rates, entropy, co-occurrence), which generalize across variable identities and counts. |
|
|
| - 📄 Paper: [A Foundation Model for Zero-Shot Logical Rule Induction (IJCAI 2026)](https://arxiv.org/abs/2605.04916) |
| - 💻 Code: [github.com/phuayj/neural-rule-inducer](https://github.com/phuayj/neural-rule-inducer) |
| - 🏷️ License: MIT |
|
|
| ## Model details |
|
|
| | Field | Value | |
| | --- | --- | |
| | Architecture | Statistical literal encoder + parallel slot-based set decoder + t-norm/t-conorm aggregator | |
| | Parameters | ≈8.92 M | |
| | Output | Interpretable DNF rule (T_max=8 clauses × K_max=4 literals each) | |
| | Training data | Synthetic Boolean DNF episodes (no real-world labels) | |
| | Training compute | 500 steps, batch size 8192, 1 × NVIDIA RTX 6000 Pro (96 GB), ≈2.5 minutes | |
| | Seed | 42 | |
|
|
| The model is **pretrained**, not fine-tuned. It performs rule induction zero-shot at inference time on previously unseen tasks. |
|
|
| ## Quickstart |
|
|
| ```bash |
| pip install torch huggingface_hub |
| # Then install the rule_inducer package from the GitHub repo: |
| git clone https://github.com/phuayj/neural-rule-inducer.git |
| cd neural-rule-inducer |
| pip install -e . |
| ``` |
|
|
| ```python |
| import torch |
| from rule_inducer import RuleInducer |
| |
| model = RuleInducer.from_pretrained("phuayj/neural-rule-inducer") |
| model.eval() |
| # See evaluate_uci.py for the full episode-construction and inference loop. |
| ``` |
|
|
| For evaluating on tabular datasets in the UCI format (`X_bool.npy` of shape `[M, N]` in `{0, 1, NaN}` and `y.npy` of shape `[M]`): |
|
|
| ```bash |
| # Download the legacy .pt checkpoint with full training state (optimizer, scheduler, RNG) from this repo: |
| python -c "from huggingface_hub import hf_hub_download; print(hf_hub_download('phuayj/neural-rule-inducer', 'checkpoint_best.pt'))" |
| |
| # Use the original evaluation script: |
| python evaluate_uci.py --checkpoint <downloaded_path> --data-dir data/uci --all |
| ``` |
|
|
| ## Reported performance |
|
|
| NRI is evaluated zero-shot on 14 UCI tabular benchmarks. **Direct comparison between this checkpoint and the paper's Table 1 number is not apples-to-apples**, because the two use different evaluation protocols: |
|
|
| | Setting | Eval protocol | Seeds | Mean acc. | |
| | --- | --- | --- | --- | |
| | **This checkpoint (release reference)** | 5-fold CV; **1 fold (≈20%) used as support, 4 folds (≈80%) as query**; no subsampling | 1 (seed 42) | **75.60 %** | |
| | **Paper Table 1** | 5-fold CV; **train portion subsampled to 5% before induction** (≈4% of total as support, 20% as query) | 10 | 69.7 % ± 12.0 | |
|
|
| The released checkpoint has **roughly 5× more support data per fold** than the paper's protocol, which is the dominant reason its UCI accuracy is higher (+5.9 pp) than the paper's 69.7 %. The paper's protocol deliberately targets a low-data regime where zero-shot transfer is most valuable. |
|
|
| To reproduce the paper's protocol exactly, you need the (private) full evaluation harness with `train_percentage=5.0` subsampling; the public `evaluate_uci.py` shipped with the GitHub repo uses the simpler 1-fold-as-support setup shown above. We plan to add `--train-percentage` support to the public script in a future release. |
|
|
| Per-dataset accuracies for this checkpoint under the public protocol: |
|
|
| | Dataset | This checkpoint (1 seed, 20% support) | Paper Table 1 (10 seeds, 5%-subsampled support) | |
| | --- | --- | --- | |
| | adult | 65.01 | 69.6 ± 4.4 | |
| | breast-cancer-wisconsin | 91.42 | 88.3 ± 0.3 | |
| | car | 71.07 | 51.2 ± 5.4 | |
| | credit-approval | 85.11 | 71.5 ± 7.3 | |
| | diabetes | 69.50 | 68.0 ± 2.4 | |
| | german-credit | 69.58 | 59.8 ± 3.8 | |
| | hepatitis | 66.78 | 55.9 ± 3.7 | |
| | ionosphere | 74.93 | 62.8 ± 3.9 | |
| | kr-vs-kp | 67.77 | 72.3 ± 5.3 | |
| | mushroom | 89.40 | 87.8 ± 3.9 | |
| | nursery | 74.56 | 71.3 ± 4.3 | |
| | spambase | 70.71 | 71.9 ± 0.7 | |
| | tic-tac-toe | 69.94 | 56.6 ± 2.5 | |
| | vote | 92.59 | 88.3 ± 1.8 | |
| | **Mean** | **75.60** | **69.7 ± 12.0** | |
|
|
| (Per-dataset paper numbers are mean ± std across 10 seeds; the ±12.0 on the bottom row is std *across the 14 datasets*, not across seeds.) |
|
|
| ## Files in this repo |
|
|
| | File | Purpose | |
| | --- | --- | |
| | `pytorch_model.bin` | Inference weights (loaded by `RuleInducer.from_pretrained`) | |
| | `config.json` | Model architecture config | |
| | `checkpoint_best.pt` | Full training-state checkpoint (optimizer, scheduler, RNG, metrics) for resumption or audit | |
|
|
| ## Limitations |
|
|
| - Inputs are assumed to be **Boolean** (`{0, 1}` plus optional `NaN` for missing values). Continuous features must be binarized first; the paper uses median thresholding. |
| - Designed for **binary classification**. Multi-class is handled by one-vs-rest at evaluation time, not at the rule level. |
| - The model induces **DNF** rules; tasks that require non-DNF representations (e.g. recursive predicates, arithmetic) are out of scope. |
| - Performance on a single dataset is sensitive to the support/query split and the binarization choice. |
|
|
| ## Citation |
|
|
| The paper has been accepted at IJCAI 2026; the proceedings reference is not yet finalized. Please use the arXiv entry for now and update once the IJCAI BibTeX is published. |
|
|
| ```bibtex |
| @misc{Phua2026NRI, |
| title = {A Foundation Model for Zero-Shot Logical Rule Induction}, |
| author = {Phua, Yin Jun}, |
| year = {2026}, |
| eprint = {2605.04916}, |
| archivePrefix = {arXiv}, |
| primaryClass = {cs.LG}, |
| note = {To appear at IJCAI 2026; full proceedings citation TBD} |
| } |
| ``` |
|
|