constructai commited on
Commit
7fe5210
·
verified ·
1 Parent(s): bc10535

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +133 -0
README.md ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ pipeline_tag: text-generation
4
+ tags:
5
+ - unsloth
6
+ base_model:
7
+ - constructai/Qwenite3.5-0.8B
8
+ ---
9
+
10
+ # 💥 Qwenite3.5-0.8B-GGUF
11
+
12
+ **📄 Overview**
13
+
14
+ | | |
15
+ |---|---|
16
+ | **Base Model** | constructai/Qwenite3.5-0.8B |
17
+ | **Parameters** | 0.9B |
18
+
19
+ **Quant types**
20
+
21
+ | Quant type | Size |
22
+ |---|---|
23
+ | **Q2_K** | 422 MB |
24
+ | **Q3_K_S** | 435 MB |
25
+ | **Q3_K_M** | 466 MB |
26
+ | **Q3_K_L** | 491 MB |
27
+ | **IQ4_XS** | 506 MB |
28
+ | **Q4_K_S** | 505 MB |
29
+ | **Q4_K_M** | 529 MB |
30
+ | **Q5_K_S** | 564 MB |
31
+ | **Q5_K_M** | 578 MB |
32
+ | **Q6_K** | 630 MB |
33
+ | **Q8_0** | 812 MB |
34
+ | **F16** | 1.52 GB |
35
+
36
+ ---
37
+
38
+ **🎯 Intended Use**
39
+
40
+ This model is designed for **step‑by‑step reasoning tasks** where the answer requires logical decomposition before the final response. It is optimized for:
41
+
42
+ - **Educational applications** — explaining "why" and "how" questions
43
+ - **On‑device assistants** — runs on mobile, Raspberry Pi, or CPU‑only environments
44
+ - **Fast prototyping** — small footprint (0.9B parameters), low latency
45
+ - **Reasoning distillation research** — studying how small models learn from large ones (Granite → Qwen)
46
+
47
+ **Not recommended for:** multimodal tasks, non‑reasoning chat (e.g., creative writing), or production systems requiring 100% factual accuracy.
48
+
49
+ ---
50
+
51
+ **⚠️ Limitations & Intended Use**
52
+
53
+ Intended Use:
54
+
55
+ * Educational & Reasoning tasks — explaining step‑by‑step logic (math, science, common sense)
56
+
57
+ * On‑device assistants — runs on CPU, Raspberry Pi, mobile (small footprint, fast inference)
58
+
59
+ * Research baseline — for studying SFT‑only reasoning without RLHF/DPO
60
+
61
+ * Distillation experiments — testing how well small models learn from large (Granite → Qwen)
62
+
63
+ Limitations:
64
+
65
+ * Size matters — 0.9B parameters, so complex or multi‑hop reasoning may still fail
66
+
67
+ * No multimodal — text only; images, video, audio are not supported
68
+
69
+ * Factual accuracy — may hallucinate or give incorrect answers; always verify critical outputs
70
+
71
+ * Domain restricted — trained on **15,000** reasoning examples (2.5 epochs); general chat or creative writing may be suboptimal
72
+
73
+ * Training data bias — inherits biases from `constructai/Granite-v4.1-Distilled-15K` dataset; not safety‑filtered for harmful content
74
+
75
+ * Hardware specific — optimised for T4/consumer GPUs; very slow on CPU without quantisation
76
+
77
+ ---
78
+
79
+ # Train details
80
+
81
+ This experiment went **surprisingly well**, and the small `Qwen3.5-0.8B-Base` model performed an **excellent job**, showing **decent results**. Thanks to the correctly selected **LoRA** hyperparameters (r=32, alpha=64) and the use of a high-quality synthetic dataset `Granite-v4.1-Distilled-15K`, the loss was lowered below **0.8**, and the model consistently gives **correct answers** on validation examples (as in the task about monkeys on branches). You can try out `Qwenite3.5-0.8B` using this code:
82
+ ```python
83
+
84
+ from transformers import AutoModelForCausalLM, AutoTokenizer
85
+ import torch
86
+
87
+ model_id = "constructai/Qwenite3.5-0.8B"
88
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
89
+ model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16, device_map="auto")
90
+
91
+ def ask(question):
92
+ prompt = f"<|im_start|>user\n{question}\nAnswer concisely:<|im_end|>\n<|im_start|>assistant\n"
93
+ inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
94
+ outputs = model.generate(**inputs, max_new_tokens=1024, temperature=0.1, do_sample=True)
95
+ answer = tokenizer.decode(outputs[0][inputs.input_ids.shape[-1]:], skip_special_tokens=True)
96
+ return answer
97
+
98
+ test_questions = [
99
+ "On one branch there are 2 monkeys. On two such branches there are 4 monkeys. Now answer: How many on 3 branches?",
100
+ ]
101
+
102
+ for q in test_questions:
103
+ print(f"Q: {q}")
104
+ print(f"A: {ask(q)}\n{'-'*50}")
105
+ ```
106
+
107
+ ---
108
+
109
+ **🙏 Acknowledgements**
110
+
111
+ This project would not have been possible without the open‑source community and the following resources:
112
+
113
+ * [Qwen Team](https://huggingface.co/Qwen) (Alibaba Cloud) — for releasing the Qwen3.5-0.8B-Base model under Apache 2.0, a perfect balance of size and intelligence.
114
+
115
+ * [Unsloth AI](https://huggingface.co/unsloth) — for making fine‑tuning on consumer hardware fast and memory‑efficient.
116
+
117
+ * [Hugging Face](https://huggingface.co/) — for the ecosystem (transformers, datasets, PEFT, Hub) that democratises LLM training.
118
+
119
+ * [Kaggle](https://www.kaggle.com) — for providing free T4 GPU runtime to run this experiment.
120
+
121
+ ---
122
+
123
+ **📖 Citation**
124
+
125
+ ```bibtex
126
+ @misc{Qwenite3.5-0.8B-GGUF,
127
+ author = {constructai},
128
+ title = {Qwenite3.5-0.8B: Small Reasoning Model via SFT on Granite Traces},
129
+ year = {2026},
130
+ publisher = {Hugging Face},
131
+ howpublished = {https://huggingface.co/constructai/Qwenite3.5-0.8B-GGUF},
132
+ }
133
+ ```