jokernifty commited on
Commit
1429dcd
·
verified ·
1 Parent(s): bfce4d1

Initial adapter upload (6a1dc9d500277b50ec06)

Browse files
0000100_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2f675f7e130c98cbe699bd673f48421ba198cd5660d0a832c054837f3191fda4
3
+ size 43309520
0000200_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:607fb5103922e8f3e9dcdd4830f3025f209669652c448c5ee18106ce700e8b30
3
+ size 43309520
0000300_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9435ad60d8d2e851a79748ae2b1714aaffc16448e10efd1d4bff77b427322763
3
+ size 43309520
0000400_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:baf95668e854d5d19ec85e5f2dba34c4c8a8494617aeafe19d5a80ea14776e74
3
+ size 43309520
0000500_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9f9145c2196a706a74a2edd4cb2cdc561380267437302d2b26eedc51f5be71d4
3
+ size 43309520
0000600_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f04fc723fd7cc5f98352690c6fffac35a0c24fc7d16bd88ae20e954ea16af48e
3
+ size 43309520
0000700_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a0054bae2fa58a52037ba35e748284bc03210d8f81590d6782c486ce2391bb8a
3
+ size 43309520
0000800_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5cd7e482bb55a9a43046cc647cac826c085e0065acbd5c3aa75b991501e24907
3
+ size 43309520
0000900_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e4e427ac7c65757a12b1c9cf9fd470dddec8d77d4574b72f3cf52df116f94238
3
+ size 43309520
0001000_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:81d3e04bbd10ff0f2aed03a40cbe99b50517e8c0abacbf003d6ed183b3c1d65b
3
+ size 43309520
0001100_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a58d3c6b8105805881817b3d90deb5bcc613784e1fca879ab89844b1f6fd0e4d
3
+ size 43309520
0001200_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6e7d41b87a411228ae48de3118b217f733b27384403b04712b580cdab1904428
3
+ size 43309520
0001300_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ff384891ef95f9fa6f8734a38ab5140d2a95ed96b0a63154d180646577d428b7
3
+ size 43309520
0001400_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4361fa0c7b7c7d50b0de0ae451dc586cc8ad82c044cc6e89c17b8ad2317c90d
3
+ size 43309520
0001500_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fdb07ed00ca353b443c13a0d97d002ef924d7c609d372d69dc08503bdef8181f
3
+ size 43309520
0001600_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5d055d853405cda04f8b3798d89b6ef702f47e9c44878276150c454b0c01a515
3
+ size 43309520
0001700_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e6965209c9152ec8e0abe618393548f43a740c600946ed332f2374f94a049dae
3
+ size 43309520
0001800_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:11418c3f1059ebe80d9d6d6b84109d0b4d4423856b283ed5d99fe9dcfb9a80fa
3
+ size 43309520
0001900_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:14559f73c8a49ce6929c6730d5cc9eb68c752f64045e83977456fff9cc9289d5
3
+ size 43309520
0002000_adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e3dff548b97298598073f4f872eaba74088fb922c0ad54c1424d6dbcb55c0c94
3
+ size 43309520
README.md ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ library_name: mlx
6
+ pipeline_tag: text-generation
7
+ base_model: Qwen/Qwen3.5-9B
8
+ base_model_relation: adapter
9
+ tags:
10
+ - mlx
11
+ - qwen
12
+ - qwen3.5
13
+ - lora
14
+ - adapter
15
+ - sft
16
+ - unity
17
+ - documentation
18
+ - downftuner
19
+ ---
20
+
21
+ # Qwen3.5-9b-UnityEngine
22
+
23
+ A LoRA adapter for [`Qwen/Qwen3.5-9B`](https://huggingface.co/Qwen/Qwen3.5-9B)
24
+ fine-tuned with SFT on **Unity Engine** documentation. The base model is
25
+ unchanged — this repo contains only the adapter weights, so you load the
26
+ base separately and apply the adapter at inference time.
27
+
28
+ ## What this model does
29
+
30
+ Specialises Qwen/Qwen3.5-9B for Unity Engine-specific questions, quoting API
31
+ identifiers, configuration keys, file paths, and version-specific details
32
+ verbatim from the official documentation. It is not a general chat model
33
+ — for free-form conversation, the unadorned base handles that better.
34
+
35
+ ## How it was built
36
+
37
+ Trained using **DownFTuner**, a custom local fine-tuning platform built
38
+ by [jokernifty](https://huggingface.co/jokernifty). DownFTuner is a
39
+ Next.js + Appwrite control plane wrapping `mlx-lm` for Apple Silicon
40
+ training. The pipeline behind this model:
41
+
42
+ 1. **Scrape** — official Unity Engine docs crawled via sitemap + BFS, main
43
+ content extracted with trafilatura, written one page per PDF.
44
+ 2. **Synthesise** — DeepSeek-V4-Pro (Ollama Cloud) prompted with each
45
+ chunk under a strict JSON schema (`{examples: [{user, assistant}, …]}`)
46
+ to produce grounded instruction-answer pairs. An EmbeddingGemma dedup
47
+ + hallucination filter ran over the full set.
48
+ 3. **Train** — SFT LoRA via `mlx_lm.lora` on Apple Silicon, against a
49
+ 4-bit MLX copy of the base (mlx-community/Qwen3.5-9B-MLX-4bit).
50
+ 4. **Eval** — internal eval suite scoring EM / Tok-F1 / BLEU / ROUGE-L /
51
+ chrF / Contain / Embed / BERTScore plus an LLM-as-judge verdict.
52
+ 5. **Publish** — the adapter weights and this card uploaded here.
53
+
54
+ Hardware: Apple M2 Pro, 24 GB unified memory.
55
+
56
+ DownFTuner is currently a private internal tool of jokernifty. If you'd
57
+ like access or want to discuss the pipeline, open a discussion on this
58
+ model.
59
+
60
+ ## Usage
61
+
62
+ ### With MLX (Apple Silicon, recommended)
63
+
64
+ ```python
65
+ from mlx_lm import load, generate
66
+
67
+ model, tokenizer = load(
68
+ "mlx-community/Qwen3.5-9B-MLX-4bit",
69
+ adapter_path="jokernifty/Qwen3.5-9b-UnityEngine",
70
+ )
71
+
72
+ print(generate(
73
+ model, tokenizer,
74
+ prompt="<your Unity Engine question here>",
75
+ max_tokens=400,
76
+ ))
77
+ ```
78
+
79
+ ### With transformers + PEFT (any platform)
80
+
81
+ ```python
82
+ from transformers import AutoModelForCausalLM, AutoTokenizer
83
+ from peft import PeftModel
84
+ import torch
85
+
86
+ base = AutoModelForCausalLM.from_pretrained(
87
+ "Qwen/Qwen3.5-9B", dtype=torch.bfloat16, device_map="auto",
88
+ )
89
+ tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3.5-9B")
90
+ model = PeftModel.from_pretrained(base, "jokernifty/Qwen3.5-9b-UnityEngine")
91
+
92
+ inputs = tokenizer.apply_chat_template(
93
+ [{"role": "user", "content": "<your Unity Engine question here>"}],
94
+ add_generation_prompt=True, return_tensors="pt",
95
+ ).to(model.device)
96
+ out = model.generate(inputs, max_new_tokens=400)
97
+ print(tokenizer.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
98
+ ```
99
+
100
+ ### As a fused checkpoint
101
+
102
+ If you'd rather have a single self-contained model:
103
+
104
+ ```bash
105
+ python -m mlx_lm.fuse \
106
+ --model mlx-community/Qwen3.5-9B-MLX-4bit \
107
+ --adapter-path jokernifty/Qwen3.5-9b-UnityEngine \
108
+ --save-path ./Qwen3.5-9b-UnityEngine-fused
109
+ ```
110
+
111
+ ## Limitations
112
+
113
+ - Knowledge is bounded by the documentation snapshot used for training.
114
+ Newer API additions or removals after that date are not reflected.
115
+ - Like the base model, this adapter can confabulate confidently. Always
116
+ verify code examples against the current upstream docs before shipping.
117
+ - The adapter is LoRA only — for tasks outside Unity Engine, you'll see no
118
+ improvement (and possibly slight regression) versus the base.
119
+
120
+ ## License
121
+
122
+ Apache 2.0, inherited from the Qwen/Qwen3.5-9B base. Built by
123
+ [jokernifty](https://huggingface.co/jokernifty) using DownFTuner. Please
124
+ credit the base model and this adapter when you use it.
adapter_config.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "adapter_path": "/Volumes/SSD1TB/DownFTuner/.downftuner/adapters/6a1dc9d500277b50ec06",
3
+ "batch_size": 1,
4
+ "clear_cache_threshold": 0,
5
+ "config": null,
6
+ "data": "/Volumes/SSD1TB/DownFTuner/.downftuner/runs/6a1dc9d500277b50ec06",
7
+ "fine_tune_type": "lora",
8
+ "grad_accumulation_steps": 1,
9
+ "grad_checkpoint": true,
10
+ "iters": 2000,
11
+ "learning_rate": 0.0001,
12
+ "lora_parameters": {
13
+ "rank": 8,
14
+ "dropout": 0.0,
15
+ "scale": 20.0
16
+ },
17
+ "lr_schedule": null,
18
+ "mask_prompt": false,
19
+ "max_seq_length": 2048,
20
+ "model": "mlx-community/Qwen3.5-9B-MLX-4bit",
21
+ "num_layers": 16,
22
+ "optimizer": "adam",
23
+ "optimizer_config": {
24
+ "adam": {},
25
+ "adamw": {},
26
+ "muon": {},
27
+ "sgd": {},
28
+ "adafactor": {}
29
+ },
30
+ "project_name": null,
31
+ "report_to": null,
32
+ "resume_adapter_file": null,
33
+ "save_every": 100,
34
+ "seed": 0,
35
+ "steps_per_eval": 500,
36
+ "steps_per_report": 10,
37
+ "test": false,
38
+ "test_batches": 500,
39
+ "train": true,
40
+ "val_batches": 25
41
+ }
adapters.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e3dff548b97298598073f4f872eaba74088fb922c0ad54c1424d6dbcb55c0c94
3
+ size 43309520