Views
No views yet
1@ sum_vec ( Vec i ) v → i {
2 : i n ( vec_len [i] v )
3 : ~ i total 0
4 : ~ i k 0
5 ~ < k n {
6 : i val ( vec_get [i] v k )
7 = total + total val
8 = k + k 1
9 }
10 ^ total
11}nurllama finetune Qwen3-4B-Q8_0.gguf train.txt \
--steps 4000 --seq 56 --rank 16 --alpha 32 --lr 2e-4 \
--mixed --stream --window-stride 0 \
--checkpoint ckpt.st --save-every 200 --resume--window-stride 0 samples the whole corpus
evenly with a golden-ratio window permutation.nurllama finetune --merge-only: base + (α/r)·A·B written
as this repo's sharded model-*.safetensors (F32, true HF lane order —
loads in transformers unchanged via model.safetensors.index.json).nurl-lora-adapters.safetensors carries the raw LoRA pairs in nurllama's
own format (blk.<L>.<proj>.lora_a/b), usable with
nurllama run <base.gguf> --weights after a --merge-only, or re-merged
against the base at any α.transformers (chat template included):1from transformers import AutoModelForCausalLM, AutoTokenizer
2tok = AutoTokenizer.from_pretrained("nurl-lang/Qwen3-4B-NURL")
3model = AutoModelForCausalLM.from_pretrained("nurl-lang/Qwen3-4B-NURL")
4msgs = [{"role": "user", "content": "Write a NURL function that adds two integers."}]
5ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt")
6print(tok.decode(model.generate(ids, max_new_tokens=80)[0]))1nurllama pull hf.co/Qwen/Qwen3-4B-GGUF/Qwen3-4B-Q8_0.gguf --name qwen3-4b
2curl -LO https://huggingface.co/nurl-lang/Qwen3-4B-NURL/resolve/main/nurl-lora-adapters.safetensors
3nurllama finetune ~/.nurllama/blobs/<qwen3-4b-blob> /dev/null \
4 --out nurl-lora-adapters.safetensors --merged qwen3-4b-nurl.st \
5 --alpha 32 --stream --merge-only
6
7nurllama run qwen3-4b "<prompt>" --weights qwen3-4b-nurl.st # one-shot
8nurllama serve --weights qwen3-4b-nurl.st # ollama-compatible APIlm_head is the embedding table, as in the base).