Views
No views yet
⚠️ This is an early/intermediate checkpoint. The final, recommended model is Aslam-13/aelora-qwen3-4b — use that one unless you specifically want to study how the project evolved.
Why a synthetic world? Benchmarks leak into pre-training. By fine-tuning on a domain that provably cannot exist in any pre-training corpus, every correct answer is unambiguous evidence of learning — not retrieval from prior knowledge.
| Domain | Coverage |
|---|---|
| Velari — vocabulary | 30-word lexicon (nouns, verbs, pronouns, adjectives) |
| Velari — grammar (basic) | Plurals (-an), past tense (ta-), negation (ne), basic SVO sentences |
| Thex-Kron math | Base-8 numerals (nul, ek, doi, tri … hep, ek-nul …), addition with carry, basic multiplication |
5 + 3 = 10 (in Aeloran base-8) directly contradicts that prior. If this checkpoint correctly answers fen vor tri = ek-nul (5 + 3 = 10₈), it's evidence that LoRA fine-tuning successfully overrode a deeply-baked behavior — not just memorized a surface pattern.| Base model | unsloth/qwen3-4b-unsloth-bnb-4bit |
| Method | LoRA (4-bit) via Unsloth + TRL SFTTrainer |
| Dataset | Combined Level 1 (language) + Level 2 (math) JSONL |
| License | Apache 2.0 |
1from unsloth import FastLanguageModel
2
3model, tokenizer = FastLanguageModel.from_pretrained(
4 model_name = "Aslam-13/velari-level2-qwen3-4b",
5 max_seq_length = 2048,
6 load_in_4bit = True,
7)
8FastLanguageModel.for_inference(model)
9
10prompt = "What is fen vor tri in Aeloran math?"
11inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
12out = model.generate(**inputs, max_new_tokens=128)
13print(tokenizer.decode(out[0], skip_special_tokens=True))transformers1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4model_id = "Aslam-13/velari-level2-qwen3-4b"
5tokenizer = AutoTokenizer.from_pretrained(model_id)
6model = AutoModelForCausalLM.from_pretrained(
7 model_id,
8 torch_dtype=torch.bfloat16,
9 device_map="auto",
10)
11
12prompt = "What is fen vor tri in Aeloran math?"
13inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
14out = model.generate(**inputs, max_new_tokens=128)
15print(tokenizer.decode(out[0], skip_special_tokens=True))10 in base-8 → ek-nul). Exact phrasing may vary.