Views
No views yet
snake, kebab, camel,
pascal, const — and, crucially, segments boundary-destroyed inputs (no
separators, one global case: sdkmodel, HTTPREQUESTHANDLER) that a regular
expression provably cannot split. A ~1M-parameter (1,016,960) byte-level
transformer.const | sdkmodel => SDK_MODEL
camel | usertablehandler => userTableHandler
kebab | sqlqueryname => sql-query-name
snake | md5cache => md5_cache
pascal | rendertokenerror => RenderTokenErroruserprofilecache, HTTPREQUESTHANDLER), leaving nothing to split on. The
only way back to the intended words is a learned vocabulary. That is what
nano-case has, and what a script cannot have.| model | regex script | |
|---|---|---|
| overall | 99.8% ± 0.0% | 61.8% |
| smushed slice (N=1410) | 99.7% ± 0.0% | 8.2% |
python eval_nano_case.py --n 4000.| input type | accuracy |
|---|---|
| in-vocab smushed (the trained slice) | 100% |
| out-of-vocabulary words smushed | 2% |
| chains longer than trained (5–6 words) | 33% |
1pip install -r requirements.txt
2python modeling_nano_case.py # demo1from modeling_nano_case import load, to_case
2m = load("model.safetensors", "config.json")
3to_case(m, "const", "sdkmodel") # -> "SDK_MODEL"
4to_case(m, "camel", "user_table_handler")# -> "userTableHandler"modeling_nano_case.py — self-contained model + load() / to_case() (torch + safetensors only).data_cases.py — the code data generator (shared by train and eval).eval_nano_case.py — the model-vs-regex benchmark.test_nano_case.py — labels-correct / no-leakage / determinism / published-weights regression.model.safetensors, config.json — weights + architecture.report/nano-case-report.pdf — the technical report.TRAINING.md — reproduction recipe.