Text Generation
Transformers
Safetensors
English
babylm
babylm-2026
strict-small
linear-attention
state-tracking
delta-rule
custom_code
Instructions to use SecludedCorner/bind2_0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SecludedCorner/bind2_0 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SecludedCorner/bind2_0", trust_remote_code=True)# Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("SecludedCorner/bind2_0", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use SecludedCorner/bind2_0 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SecludedCorner/bind2_0" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SecludedCorner/bind2_0", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/SecludedCorner/bind2_0
- SGLang
How to use SecludedCorner/bind2_0 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "SecludedCorner/bind2_0" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SecludedCorner/bind2_0", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "SecludedCorner/bind2_0" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SecludedCorner/bind2_0", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use SecludedCorner/bind2_0 with Docker Model Runner:
docker model run hf.co/SecludedCorner/bind2_0
model card (frozen)
Browse files
README.md
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language: en
|
| 3 |
+
license: apache-2.0
|
| 4 |
+
library_name: transformers
|
| 5 |
+
pipeline_tag: text-generation
|
| 6 |
+
inference: false
|
| 7 |
+
tags:
|
| 8 |
+
- babylm
|
| 9 |
+
- babylm-2026
|
| 10 |
+
- strict-small
|
| 11 |
+
- linear-attention
|
| 12 |
+
- state-tracking
|
| 13 |
+
- delta-rule
|
| 14 |
+
- custom_code
|
| 15 |
+
---
|
| 16 |
+
|
| 17 |
+
# bind2_0
|
| 18 |
+
|
| 19 |
+
> ## β οΈ The official benchmark badge is NOT the point of this repo
|
| 20 |
+
>
|
| 21 |
+
> On the official BabyLM 2026 strict-small zero-shot surface this model is **statistically tied** with its
|
| 22 |
+
> matched monolithic and bind1 controls (mean-4 excl. entity: **56.92** vs 56.60/56.63 at 23.9M; slightly
|
| 23 |
+
> above the GPT-2 baseline on BLiMP, **66.11** vs 65.08). It wins nothing there, and that is part of the
|
| 24 |
+
> finding.
|
| 25 |
+
>
|
| 26 |
+
> **What this stage actually shows** (three results, all kept):
|
| 27 |
+
> 1. **The mechanism is trainable**: with direct-task training on a purpose-built synthetic swap-tracking
|
| 28 |
+
> task (n=800 per eval, 5-way, chance 0.20), the forced-bottleneck architecture reached **0.9988
|
| 29 |
+
> accuracy** β with a sharp grokking transition between 5M and 10M training tokens
|
| 30 |
+
> (0.179 β 0.969 β 0.996) β while matched monolithic, bind1-style, and no-binding controls stayed at
|
| 31 |
+
> chance (0.2125 / 0.1938 / 0.1938).
|
| 32 |
+
> 2. **It does not emerge from plain LM pretraining**: after standard BabyLM strict-small pretraining,
|
| 33 |
+
> zero-shot give-verb state-tracking probes (n=60, chance 0.50) show **no model above chance**; this
|
| 34 |
+
> build (23.9M) scored 0.200 β significantly below chance, i.e. strong recency capture. The synthetic
|
| 35 |
+
> grok did not transfer.
|
| 36 |
+
> 3. **The architecture costs ~nothing on general language** ("no tax, no win"): official zero-shot scores
|
| 37 |
+
> tied across architectures; raw LM perplexity is slightly worse than the monolithic control
|
| 38 |
+
> (11.0 vs 9.7 at 23.9M), as expected for a forced bottleneck.
|
| 39 |
+
>
|
| 40 |
+
> The full falsification-timeline context (what came before this stage and what it forced next) lives at
|
| 41 |
+
> the hub: [`SecludedCorner/bind-evolution`](https://huggingface.co/datasets/SecludedCorner/bind-evolution).
|
| 42 |
+
|
| 43 |
+
## Model description (family level)
|
| 44 |
+
|
| 45 |
+
bind2_0 is a small causal LM (main branch = **23.9M params**; branch `27m` = **27M params**) combining:
|
| 46 |
+
|
| 47 |
+
- **Delta-rule fast-weight memory**: gated delta-rule recurrent value dynamics (GatedDeltaNet), using the
|
| 48 |
+
third-party MIT-licensed [`flash-linear-attention` (fla)](https://github.com/fla-org/flash-linear-attention)
|
| 49 |
+
implementation as the core recurrent layer. The delta-rule/fast-weight design follows Yang, Kautz &
|
| 50 |
+
Hatamizadeh, *Gated Delta Networks: Improving Mamba2 with Delta Rule* (ICLR 2025, arXiv:2412.06464);
|
| 51 |
+
only the permissively licensed fla implementation is used here.
|
| 52 |
+
- **A forced bottleneck**: attention is chunk-local; information can cross chunk boundaries **only**
|
| 53 |
+
through the recurrent state S. This makes the recurrent state the sole carrier of long-range bindings β
|
| 54 |
+
the design hypothesis under test at this stage.
|
| 55 |
+
|
| 56 |
+
Later family members are not described here; see the hub for the family narrative.
|
| 57 |
+
|
| 58 |
+
## Training data
|
| 59 |
+
|
| 60 |
+
Official **BabyLM 2026 Strict-Small** corpus (the provided ~10M-word text-only corpus; no custom data).
|
| 61 |
+
Training: 150M tokens over the 16.3M-token encoding (SEQ256, batch 16, vocab 16k), recurrent state reset
|
| 62 |
+
per block. Final training perplexity: 11.0 (23.9M build), 10.8 (27M build); matched monolithic control: 9.7.
|
| 63 |
+
|
| 64 |
+
## Results (official pipeline, strict-small zero-shot, single seed)
|
| 65 |
+
|
| 66 |
+
Main branch (23.9M):
|
| 67 |
+
|
| 68 |
+
| task | bind2_0 | mono control | bind1 control | GPT-2 baseline |
|
| 69 |
+
|---|---:|---:|---:|---:|
|
| 70 |
+
| BLiMP | 66.11 | 65.35 | 65.50 | 65.08 |
|
| 71 |
+
| BLiMP supplement | 58.11 | 58.17 | 58.35 | 57.25 |
|
| 72 |
+
| EWoK | 51.95 | 51.32 | 51.57 | β |
|
| 73 |
+
| entity_tracking (filtered) | 19.02 | 21.16 | 19.22 | 21.07 |
|
| 74 |
+
| COMPS | 51.49 | 51.55 | 51.11 | 51.81 |
|
| 75 |
+
| mean(4, excl. entity) | **56.92** | 56.60 | 56.63 | β |
|
| 76 |
+
|
| 77 |
+
Branch `27m` (27M; mono control at this tier is 27.4M):
|
| 78 |
+
|
| 79 |
+
| task | bind2_0 | mono control | bind1 control | GPT-2 baseline |
|
| 80 |
+
|---|---:|---:|---:|---:|
|
| 81 |
+
| BLiMP | 65.14 | 64.35 | 66.68 | 65.08 |
|
| 82 |
+
| BLiMP supplement | 60.81 | 58.55 | 60.90 | 57.25 |
|
| 83 |
+
| EWoK | 51.16 | 50.70 | 51.90 | β |
|
| 84 |
+
| entity_tracking (filtered) | 20.53 | 19.24 | 20.00 | 21.07 |
|
| 85 |
+
| COMPS | 50.89 | 51.00 | 51.36 | 51.81 |
|
| 86 |
+
| mean(4, excl. entity) | 57.00 | 56.15 | 57.71 | β |
|
| 87 |
+
|
| 88 |
+
entity_tracking is ~chance for every model under the current filtered standard (non-discriminative), hence
|
| 89 |
+
excluded from the mean. The mean-of-4 is NOT the official leaderboard "Overall" (which also weights GLUE,
|
| 90 |
+
reading, AoA, and more). All numbers single-seed; the across-architecture spread (~1.5pp) is within seed
|
| 91 |
+
noise.
|
| 92 |
+
|
| 93 |
+
## Honest limitations β what this stage cannot do
|
| 94 |
+
|
| 95 |
+
- **It does not track state zero-shot.** After plain LM pretraining, give-verb state-tracking probes are at
|
| 96 |
+
or below chance (0.200 at 23.9M = strong recency capture). Do not use this model expecting emergent
|
| 97 |
+
entity/state tracking.
|
| 98 |
+
- **It does not beat its controls on the official benchmark.** Tied within noise; that is the honest
|
| 99 |
+
reading, not modesty.
|
| 100 |
+
- **The synthetic grok required direct-task training** β it is evidence the bottleneck can force state into
|
| 101 |
+
the recurrent path, not evidence of a general capability.
|
| 102 |
+
- Single seed per build; raw LM perplexity pays a small bottleneck tax (11.0 vs 9.7).
|
| 103 |
+
|
| 104 |
+
## What this stage forced next
|
| 105 |
+
|
| 106 |
+
The gap between "trainable in principle (0.9988 synthetic grok)" and "does not emerge from LM pretraining
|
| 107 |
+
(chance zero-shot)" forced the next question on the ladder: split the confound β first prove the mechanism
|
| 108 |
+
is *causally real at depth* under a pre-registered gate, separately from transfer. That question β
|
| 109 |
+
including a preregistered NULL we report as NULL, and the causal evidence around it β is answered on the
|
| 110 |
+
hub: [`SecludedCorner/bind-evolution`](https://huggingface.co/datasets/SecludedCorner/bind-evolution).
|
| 111 |
+
|
| 112 |
+
## How to load
|
| 113 |
+
|
| 114 |
+
```python
|
| 115 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 116 |
+
tok = AutoTokenizer.from_pretrained("SecludedCorner/bind2_0",
|
| 117 |
+
revision="<40-char commit SHA>")
|
| 118 |
+
model = AutoModelForCausalLM.from_pretrained("SecludedCorner/bind2_0",
|
| 119 |
+
revision="<40-char commit SHA>",
|
| 120 |
+
trust_remote_code=True)
|
| 121 |
+
```
|
| 122 |
+
|
| 123 |
+
- `trust_remote_code=True` is **required** for the model (the config's `auto_map` points at the inlined
|
| 124 |
+
`modeling_babylm.py` shipped in this repo). The tokenizer loads without it.
|
| 125 |
+
- **A CUDA GPU with a working Triton is required for inference.** The fla 0.5.1 GatedDeltaNet path
|
| 126 |
+
dispatches to Triton kernels; on CPU-only environments the forward pass fails at kernel launch
|
| 127 |
+
(`RuntimeError: 0 active drivers`). The checkpoint itself loads fine on CPU; only the forward pass needs
|
| 128 |
+
a GPU.
|
| 129 |
+
|
| 130 |
+
## Dependency pins
|
| 131 |
+
|
| 132 |
+
Exact versions the checkpoints were trained/exported/validated with (Python 3.11.15; also shipped as
|
| 133 |
+
`requirements_pins.txt` in this repo):
|
| 134 |
+
|
| 135 |
+
```
|
| 136 |
+
torch==2.12.1+cu126
|
| 137 |
+
transformers==5.13.0
|
| 138 |
+
triton-windows==3.7.1.post27
|
| 139 |
+
flash-linear-attention==0.5.1
|
| 140 |
+
fla-core==0.5.1
|
| 141 |
+
safetensors==0.8.0
|
| 142 |
+
numpy==2.4.6
|
| 143 |
+
```
|
| 144 |
+
|
| 145 |
+
Notes:
|
| 146 |
+
|
| 147 |
+
- **fla** is required at runtime: the inlined modeling code lazily imports `fla.layers.GatedDeltaNet`,
|
| 148 |
+
which this architecture instantiates. Installed from PyPI as release **0.5.1** (no commit pin β the
|
| 149 |
+
environment records the plain PyPI release; `fla-core` 0.5.1 comes with it).
|
| 150 |
+
- **triton**: the training/export environment is Windows and uses the `triton-windows` fork
|
| 151 |
+
(3.7.1.post27); on Linux use the upstream `triton` matching your torch build.
|
| 152 |
+
- **torch** build is CUDA 12.6 (`+cu126`); pick the equivalent build for your platform.
|
| 153 |
+
|
| 154 |
+
## Export fidelity & known-defect disclosure
|
| 155 |
+
|
| 156 |
+
**Export fidelity (verified twice):**
|
| 157 |
+
|
| 158 |
+
- At grid-evaluation time (2026-07-12) the HF export was verified logit-identical to the training model
|
| 159 |
+
(wrapper-vs-original logit diff = 0.00e+00).
|
| 160 |
+
- On 2026-07-15 a dedicated round-trip validation re-checked both exports, as they sit on disk, against the
|
| 161 |
+
original training checkpoints: **all 186 weight tensors bitwise identical** (max abs diff 0.0, no
|
| 162 |
+
missing/extra keys) and **logits bitwise identical** (max abs diff 0.00e+00 across 4 deterministic
|
| 163 |
+
batches of 8Γ128 tokens, fp32, passing at both atol 1e-4 and atol 1e-5) for **both** the 23.9M and 27M
|
| 164 |
+
builds. Caveat, disclosed: that re-check ran on CPU, where fla's Triton kernels cannot execute, so three
|
| 165 |
+
fla components were replaced by math-equivalent pure-PyTorch implementations applied identically to both
|
| 166 |
+
sides. It therefore validates **export fidelity** (weights and module wiring survive
|
| 167 |
+
`.pt β safetensors β AutoModelForCausalLM` exactly), not Triton-kernel numerics; a GPU re-run with stock
|
| 168 |
+
kernels remains the gold check.
|
| 169 |
+
|
| 170 |
+
**Known defect β `attention_mask` is accepted but ignored:**
|
| 171 |
+
|
| 172 |
+
- The exported wrapper accepts `attention_mask` in `forward()` and never uses it β on the causal-LM path
|
| 173 |
+
and, for this architecture, on the AutoModel (sequence-classification) path as well. Empirically,
|
| 174 |
+
`attention_mask=ones`, `=zeros`, and omitted all produce bitwise-identical logits on both builds.
|
| 175 |
+
- **Consequence:** in a batch, right-padding is silently attended over as real tokens β **batched padded
|
| 176 |
+
inference gives wrong results.** Run unbatched, or length-sorted/unpadded. Per-example inference is
|
| 177 |
+
unaffected; the published zero-shot numbers above came from the per-example evaluation setting and are
|
| 178 |
+
unaffected by this defect.
|
| 179 |
+
|
| 180 |
+
## How to cite this model
|
| 181 |
+
|
| 182 |
+
Always cite at a pinned revision: pass `revision="<40-char commit SHA>"` to `from_pretrained`, or use the
|
| 183 |
+
`/tree/<sha>` URL form. Authoritative per-branch SHAs are recorded at push time in the project
|
| 184 |
+
`PUBLISH_LEDGER`; the final SHAs are noted in a dated addendum below after publication.
|
| 185 |
+
|
| 186 |
+
## Card freeze policy
|
| 187 |
+
|
| 188 |
+
**The body of this card is frozen at publish.** Any later information (including the final commit SHAs and
|
| 189 |
+
resolved links) is added only as clearly dated addendum sections below this line β the text above is never
|
| 190 |
+
silently edited.
|
| 191 |
+
|
| 192 |
+
## Branches
|
| 193 |
+
|
| 194 |
+
- `main` β 23.9M-parameter build (the primary artifact)
|
| 195 |
+
- `27m` β 27M-parameter build (same architecture and recipe, wider)
|