# Building `bind2_0` **Verdict: BLOCKED** — **Does not run as-is.** The blockers are listed below and are real, not cosmetic. A launcher works around what can be worked around without editing frozen files; the rest is stated honestly rather than papered over. ## Dependencies ``` torch==2.12.1 numpy==2.4.6 tokenizers==0.22.2 flash-linear-attention==0.5.1 # CUDA-only (Triton kernels) # on Windows also: triton-windows==3.7.1.post27 ``` Python 3.11 is the version everything here was developed and smoke-tested against. ## Known blockers and portability notes - train_bind2_0_babylm.py:20 reads os.environ['BABYLM_WORK'] as a bare subscript at module scope -- an uncaught KeyError with no default. The shipped launcher works around this without editing the file. - dev='cuda' is hardcoded at :30 with no CPU path. - flash-linear-attention is a hard dependency and its kernels are CUDA-only, so this package cannot run on CPU or on non-NVIDIA hardware at all. ## Launcher `run_train.py` exists because this package's trainer hardcodes machine-specific inputs inside files that are frozen and must not be edited, so the launcher supplies them from outside instead. **How it does that differs by package, so read `run_train.py`'s own docstring rather than this paragraph.** Some launchers import the frozen modules and rebind module-level constants before the entry point runs; at least one cannot, because its trainer reads an environment variable at import time and rebinding the attribute afterwards is already too late -- that launcher sets the variable first. Each launcher documents its own mechanism, and each was checked against the source it works around. ## Inputs you must supply - `alaya-strict-small/tokens_u16.bin` (~32.6 MB) — status: REFERENCED-TOO-LARGE ## Verification Every `.py` in `src/` is byte-identical to the working-tree file recorded in `MANIFEST.json` and compiles under Python 3.11 (`python -m compileall src`).