kartikey31 commited on
Commit
ca3dec8
·
verified ·
1 Parent(s): 9a42d8a

[qwen3-0.6b] auto-publish: base=Qwen/Qwen3-0.6B at 2026-05-22T22:42:56.490740+00:00

Browse files
.gitattributes CHANGED
@@ -60,3 +60,9 @@ smollm2-360m/gguf/txn-parser-smollm2-360m-Q4_K_M.gguf filter=lfs diff=lfs merge=
60
  smollm2-360m/gguf/txn-parser-smollm2-360m-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text
61
  smollm2-360m/gguf/txn-parser-smollm2-360m-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
62
  smollm2-360m/gguf/txn-parser-smollm2-360m-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
60
  smollm2-360m/gguf/txn-parser-smollm2-360m-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text
61
  smollm2-360m/gguf/txn-parser-smollm2-360m-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
62
  smollm2-360m/gguf/txn-parser-smollm2-360m-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
63
+ qwen3-0.6b/adapters/tokenizer.json filter=lfs diff=lfs merge=lfs -text
64
+ qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-F16.gguf filter=lfs diff=lfs merge=lfs -text
65
+ qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
66
+ qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text
67
+ qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
68
+ qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
qwen3-0.6b/README.md ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: Qwen/Qwen3-0.6B
4
+ tags:
5
+ - text-generation
6
+ - lora
7
+ - qlora
8
+ - gguf
9
+ - transaction-parser
10
+ language:
11
+ - en
12
+ - hi
13
+ library_name: peft
14
+ ---
15
+
16
+ # txn-parser / qwen3-0.6b
17
+
18
+ QLoRA fine-tune of [`Qwen/Qwen3-0.6B`](https://huggingface.co/Qwen/Qwen3-0.6B) for
19
+ extracting structured transaction data (amount, currency, item, category,
20
+ type) from free-form Indian-English / code-switched speech and text.
21
+
22
+ This model lives in subfolder **`qwen3-0.6b/`** of the
23
+ [`kartikey31/txn-parser`](https://huggingface.co/kartikey31/txn-parser) repo, alongside
24
+ sibling fine-tunes of other base models trained on the same data.
25
+
26
+ ## What's in here
27
+
28
+ - `qwen3-0.6b/adapters/` — PEFT LoRA adapter (rank 32). Load on top of the base model
29
+ with `peft.PeftModel.from_pretrained(base, "kartikey31/txn-parser", subfolder="qwen3-0.6b/adapters")`.
30
+ - `qwen3-0.6b/gguf/` — merged GGUF builds at multiple quantization levels
31
+ (file names follow `txn-parser-qwen3-0.6b-<QUANT>.gguf`):
32
+ - [`qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-F16.gguf`](https://huggingface.co/kartikey31/txn-parser/resolve/main/qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-F16.gguf) (1198.2 MB)
33
+ - [`qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q4_K_M.gguf`](https://huggingface.co/kartikey31/txn-parser/resolve/main/qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q4_K_M.gguf) (396.7 MB)
34
+ - [`qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q5_K_M.gguf`](https://huggingface.co/kartikey31/txn-parser/resolve/main/qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q5_K_M.gguf) (444.4 MB)
35
+ - [`qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q6_K.gguf`](https://huggingface.co/kartikey31/txn-parser/resolve/main/qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q6_K.gguf) (495.1 MB)
36
+ - [`qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q8_0.gguf`](https://huggingface.co/kartikey31/txn-parser/resolve/main/qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q8_0.gguf) (639.4 MB)
37
+
38
+ ## Training data
39
+
40
+ - 93,348 teacher-labeled examples (`data/distill/train.jsonl`)
41
+ - 300 held-out eval examples (`data/distill/eval.jsonl`)
42
+ - Validator-gated: every row's `output` passes the project's grammar +
43
+ amount-parser semantic validator.
44
+
45
+ ## Training config
46
+
47
+ | Knob | Value |
48
+ |---|---|
49
+ | Base model | `Qwen/Qwen3-0.6B` |
50
+ | Method | QLoRA (4-bit) via Unsloth |
51
+ | LoRA rank | 32 (alpha 64, dropout 0.0) |
52
+ | Epochs | 2 |
53
+ | Batch size (train) | 64 |
54
+ | Grad accumulation | 2 |
55
+ | Eval batch size | 16 |
56
+ | Max seq length | 1024 |
57
+ | Learning rate | 2e-4 (warmup 3%) |
58
+ | Started | 2026-05-22T21:54:03.967900+00:00 |
59
+ | Finished | 2026-05-22T22:42:56.089528+00:00 |
60
+
61
+ ## System prompt (use this EXACTLY)
62
+
63
+ The model was trained with one specific system prompt and Gemma/Smol/Qwen
64
+ chat template. If you paraphrase the prompt or skip the chat template,
65
+ quality degrades quickly. Copy-paste this verbatim into your inference
66
+ client (no leading/trailing whitespace, no edits):
67
+
68
+ ```text
69
+ You convert voice-transcribed transaction descriptions into structured JSON.
70
+
71
+ Output ONLY a JSON object with this schema, no other text:
72
+ {"transactions":[{"amount":<number>,"currency":"INR"|"USD","item":"<lowercase singular noun phrase>","category":"<enum>","type":"expense"|"income"}]}
73
+
74
+ Categories: Food, Drinks, Groceries, Transport, Shopping, Entertainment, Bills, Health, Education, Personal, Gifts, Income, Other.
75
+
76
+ Rules:
77
+ - Currency defaults to INR. Use USD only when the input explicitly says "dollars" or contains "$".
78
+ - Amounts: "k" = ×1000, "hazaar" = ×1000, "sau" = ×100, "lakh" = ×100000. Convert number-words ("five hundred") to digits.
79
+ - type is "expense" by default; "income" only for explicit salary, cashback, refund, gift received, payment received.
80
+ - For disfluencies and corrections ("500 wait no 600"), output the CORRECTED amount only.
81
+ - For ambiguous items ("that thing", "stuff"), use item "unspecified" and category "Other".
82
+ - Item field: lowercase singular noun phrase ("uber ride", "beer", "chai" — not "Beers" or "Uber").
83
+ - Multi-transaction inputs become multiple array entries in spoken order.
84
+ - Category heuristics: uber/ola/auto/petrol/bus/metro → Transport; beer/wine/chai/coffee/juice → Drinks; rent/electricity/wifi/recharge/gas → Bills; movie/netflix/concert → Entertainment; doctor/medicine/hospital → Health.
85
+ ```
86
+
87
+ Source of truth: [`scripts/_lib.py`](https://github.com/kartikeychoudhary/txn-parser/blob/main/scripts/_lib.py)
88
+ constant `SYSTEM_PROMPT`. Don't retype it — pull from `_lib.py` or this README.
89
+
90
+ ## Download a single GGUF
91
+
92
+ ```bash
93
+ huggingface-cli download kartikey31/txn-parser \
94
+ qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q4_K_M.gguf \
95
+ --local-dir .
96
+ ```
97
+
98
+ ## Inference (Python, llama-cpp-python)
99
+
100
+ ```python
101
+ from llama_cpp import Llama
102
+
103
+ SYSTEM_PROMPT = '''You convert voice-transcribed transaction descriptions into structured JSON.
104
+
105
+ Output ONLY a JSON object with this schema, no other text:
106
+ {"transactions":[{"amount":<number>,"currency":"INR"|"USD","item":"<lowercase singular noun phrase>","category":"<enum>","type":"expense"|"income"}]}
107
+
108
+ Categories: Food, Drinks, Groceries, Transport, Shopping, Entertainment, Bills, Health, Education, Personal, Gifts, Income, Other.
109
+
110
+ Rules:
111
+ - Currency defaults to INR. Use USD only when the input explicitly says "dollars" or contains "$".
112
+ - Amounts: "k" = ×1000, "hazaar" = ×1000, "sau" = ×100, "lakh" = ×100000. Convert number-words ("five hundred") to digits.
113
+ - type is "expense" by default; "income" only for explicit salary, cashback, refund, gift received, payment received.
114
+ - For disfluencies and corrections ("500 wait no 600"), output the CORRECTED amount only.
115
+ - For ambiguous items ("that thing", "stuff"), use item "unspecified" and category "Other".
116
+ - Item field: lowercase singular noun phrase ("uber ride", "beer", "chai" — not "Beers" or "Uber").
117
+ - Multi-transaction inputs become multiple array entries in spoken order.
118
+ - Category heuristics: uber/ola/auto/petrol/bus/metro → Transport; beer/wine/chai/coffee/juice → Drinks; rent/electricity/wifi/recharge/gas → Bills; movie/netflix/concert → Entertainment; doctor/medicine/hospital → Health.'''
119
+
120
+ llm = Llama(
121
+ model_path="txn-parser-qwen3-0.6b-Q4_K_M.gguf",
122
+ n_gpu_layers=-1, n_ctx=2048,
123
+ )
124
+ out = llm.create_chat_completion(
125
+ messages=[
126
+ {"role": "system", "content": SYSTEM_PROMPT},
127
+ {"role": "user", "content": "200 ka samosa"},
128
+ ],
129
+ temperature=0.0,
130
+ )
131
+ print(out["choices"][0]["message"]["content"])
132
+ ```
133
+
134
+ ## Inference (CLI, llama.cpp)
135
+
136
+ ```bash
137
+ ./llama-cli -m txn-parser-qwen3-0.6b-Q4_K_M.gguf \
138
+ --grammar-file scripts/grammar.gbnf \
139
+ --system-prompt "$(cat system_prompt.txt)" \
140
+ -p "200 ka samosa" -n 256
141
+ ```
142
+
143
+ ## Reproduce
144
+
145
+ ```bash
146
+ git clone https://github.com/kartikeychoudhary/txn-parser.git
147
+ cd txn-parser && bash setup.sh
148
+ python scripts/train_and_publish.py --only qwen3-0.6b
149
+ ```
150
+
151
+ ---
152
+ *Auto-published by `scripts/train_and_publish.py` on 2026-05-22T22:42:56.387243+00:00.*
qwen3-0.6b/adapters/README.md ADDED
@@ -0,0 +1,210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: unsloth/qwen3-0.6b-unsloth-bnb-4bit
3
+ library_name: peft
4
+ pipeline_tag: text-generation
5
+ tags:
6
+ - base_model:adapter:unsloth/qwen3-0.6b-unsloth-bnb-4bit
7
+ - lora
8
+ - sft
9
+ - transformers
10
+ - trl
11
+ - unsloth
12
+ ---
13
+
14
+ # Model Card for Model ID
15
+
16
+ <!-- Provide a quick summary of what the model is/does. -->
17
+
18
+
19
+
20
+ ## Model Details
21
+
22
+ ### Model Description
23
+
24
+ <!-- Provide a longer summary of what this model is. -->
25
+
26
+
27
+
28
+ - **Developed by:** [More Information Needed]
29
+ - **Funded by [optional]:** [More Information Needed]
30
+ - **Shared by [optional]:** [More Information Needed]
31
+ - **Model type:** [More Information Needed]
32
+ - **Language(s) (NLP):** [More Information Needed]
33
+ - **License:** [More Information Needed]
34
+ - **Finetuned from model [optional]:** [More Information Needed]
35
+
36
+ ### Model Sources [optional]
37
+
38
+ <!-- Provide the basic links for the model. -->
39
+
40
+ - **Repository:** [More Information Needed]
41
+ - **Paper [optional]:** [More Information Needed]
42
+ - **Demo [optional]:** [More Information Needed]
43
+
44
+ ## Uses
45
+
46
+ <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
47
+
48
+ ### Direct Use
49
+
50
+ <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
51
+
52
+ [More Information Needed]
53
+
54
+ ### Downstream Use [optional]
55
+
56
+ <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
57
+
58
+ [More Information Needed]
59
+
60
+ ### Out-of-Scope Use
61
+
62
+ <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
63
+
64
+ [More Information Needed]
65
+
66
+ ## Bias, Risks, and Limitations
67
+
68
+ <!-- This section is meant to convey both technical and sociotechnical limitations. -->
69
+
70
+ [More Information Needed]
71
+
72
+ ### Recommendations
73
+
74
+ <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
75
+
76
+ Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
77
+
78
+ ## How to Get Started with the Model
79
+
80
+ Use the code below to get started with the model.
81
+
82
+ [More Information Needed]
83
+
84
+ ## Training Details
85
+
86
+ ### Training Data
87
+
88
+ <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
89
+
90
+ [More Information Needed]
91
+
92
+ ### Training Procedure
93
+
94
+ <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
95
+
96
+ #### Preprocessing [optional]
97
+
98
+ [More Information Needed]
99
+
100
+
101
+ #### Training Hyperparameters
102
+
103
+ - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
104
+
105
+ #### Speeds, Sizes, Times [optional]
106
+
107
+ <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
108
+
109
+ [More Information Needed]
110
+
111
+ ## Evaluation
112
+
113
+ <!-- This section describes the evaluation protocols and provides the results. -->
114
+
115
+ ### Testing Data, Factors & Metrics
116
+
117
+ #### Testing Data
118
+
119
+ <!-- This should link to a Dataset Card if possible. -->
120
+
121
+ [More Information Needed]
122
+
123
+ #### Factors
124
+
125
+ <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
126
+
127
+ [More Information Needed]
128
+
129
+ #### Metrics
130
+
131
+ <!-- These are the evaluation metrics being used, ideally with a description of why. -->
132
+
133
+ [More Information Needed]
134
+
135
+ ### Results
136
+
137
+ [More Information Needed]
138
+
139
+ #### Summary
140
+
141
+
142
+
143
+ ## Model Examination [optional]
144
+
145
+ <!-- Relevant interpretability work for the model goes here -->
146
+
147
+ [More Information Needed]
148
+
149
+ ## Environmental Impact
150
+
151
+ <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
152
+
153
+ Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
154
+
155
+ - **Hardware Type:** [More Information Needed]
156
+ - **Hours used:** [More Information Needed]
157
+ - **Cloud Provider:** [More Information Needed]
158
+ - **Compute Region:** [More Information Needed]
159
+ - **Carbon Emitted:** [More Information Needed]
160
+
161
+ ## Technical Specifications [optional]
162
+
163
+ ### Model Architecture and Objective
164
+
165
+ [More Information Needed]
166
+
167
+ ### Compute Infrastructure
168
+
169
+ [More Information Needed]
170
+
171
+ #### Hardware
172
+
173
+ [More Information Needed]
174
+
175
+ #### Software
176
+
177
+ [More Information Needed]
178
+
179
+ ## Citation [optional]
180
+
181
+ <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
182
+
183
+ **BibTeX:**
184
+
185
+ [More Information Needed]
186
+
187
+ **APA:**
188
+
189
+ [More Information Needed]
190
+
191
+ ## Glossary [optional]
192
+
193
+ <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
194
+
195
+ [More Information Needed]
196
+
197
+ ## More Information [optional]
198
+
199
+ [More Information Needed]
200
+
201
+ ## Model Card Authors [optional]
202
+
203
+ [More Information Needed]
204
+
205
+ ## Model Card Contact
206
+
207
+ [More Information Needed]
208
+ ### Framework versions
209
+
210
+ - PEFT 0.19.1
qwen3-0.6b/adapters/adapter_config.json ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alora_invocation_tokens": null,
3
+ "alpha_pattern": {},
4
+ "arrow_config": null,
5
+ "auto_mapping": {
6
+ "base_model_class": "Qwen3ForCausalLM",
7
+ "parent_library": "transformers.models.qwen3.modeling_qwen3",
8
+ "unsloth_fixed": true
9
+ },
10
+ "base_model_name_or_path": "unsloth/qwen3-0.6b-unsloth-bnb-4bit",
11
+ "bias": "none",
12
+ "corda_config": null,
13
+ "ensure_weight_tying": false,
14
+ "eva_config": null,
15
+ "exclude_modules": null,
16
+ "fan_in_fan_out": false,
17
+ "inference_mode": true,
18
+ "init_lora_weights": true,
19
+ "layer_replication": null,
20
+ "layers_pattern": null,
21
+ "layers_to_transform": null,
22
+ "loftq_config": {},
23
+ "lora_alpha": 64,
24
+ "lora_bias": false,
25
+ "lora_dropout": 0.0,
26
+ "lora_ga_config": null,
27
+ "megatron_config": null,
28
+ "megatron_core": "megatron.core",
29
+ "modules_to_save": null,
30
+ "peft_type": "LORA",
31
+ "peft_version": "0.19.1",
32
+ "qalora_group_size": 16,
33
+ "r": 32,
34
+ "rank_pattern": {},
35
+ "revision": null,
36
+ "target_modules": [
37
+ "down_proj",
38
+ "o_proj",
39
+ "gate_proj",
40
+ "q_proj",
41
+ "up_proj",
42
+ "k_proj",
43
+ "v_proj"
44
+ ],
45
+ "target_parameters": null,
46
+ "task_type": "CAUSAL_LM",
47
+ "trainable_token_indices": null,
48
+ "use_bdlora": null,
49
+ "use_dora": false,
50
+ "use_qalora": false,
51
+ "use_rslora": false
52
+ }
qwen3-0.6b/adapters/adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2f6aa46ce50ec9c526a0975f8ba80ad831031edf618be46972dd81425e8e61e3
3
+ size 80792456
qwen3-0.6b/adapters/chat_template.jinja ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for forward_message in messages %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- set message = messages[index] %}
21
+ {%- set current_content = message.content if message.content is defined and message.content is not none else '' %}
22
+ {%- set tool_start = '<tool_response>' %}
23
+ {%- set tool_start_length = tool_start|length %}
24
+ {%- set start_of_message = current_content[:tool_start_length] %}
25
+ {%- set tool_end = '</tool_response>' %}
26
+ {%- set tool_end_length = tool_end|length %}
27
+ {%- set start_pos = (current_content|length) - tool_end_length %}
28
+ {%- if start_pos < 0 %}
29
+ {%- set start_pos = 0 %}
30
+ {%- endif %}
31
+ {%- set end_of_message = current_content[start_pos:] %}
32
+ {%- if ns.multi_step_tool and message.role == "user" and not(start_of_message == tool_start and end_of_message == tool_end) %}
33
+ {%- set ns.multi_step_tool = false %}
34
+ {%- set ns.last_query_index = index %}
35
+ {%- endif %}
36
+ {%- endfor %}
37
+ {%- for message in messages %}
38
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
39
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
40
+ {%- elif message.role == "assistant" %}
41
+ {%- set m_content = message.content if message.content is defined and message.content is not none else '' %}
42
+ {%- set content = m_content %}
43
+ {%- set reasoning_content = '' %}
44
+ {%- if message.reasoning_content is defined and message.reasoning_content is not none %}
45
+ {%- set reasoning_content = message.reasoning_content %}
46
+ {%- else %}
47
+ {%- if '</think>' in m_content %}
48
+ {%- set content = (m_content.split('</think>')|last).lstrip('\n') %}
49
+ {%- set reasoning_content = (m_content.split('</think>')|first).rstrip('\n') %}
50
+ {%- set reasoning_content = (reasoning_content.split('<think>')|last).lstrip('\n') %}
51
+ {%- endif %}
52
+ {%- endif %}
53
+ {%- if loop.index0 > ns.last_query_index %}
54
+ {%- if loop.last or (not loop.last and (not reasoning_content.strip() == '')) %}
55
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
56
+ {%- else %}
57
+ {{- '<|im_start|>' + message.role + '\n' + content }}
58
+ {%- endif %}
59
+ {%- else %}
60
+ {{- '<|im_start|>' + message.role + '\n' + content }}
61
+ {%- endif %}
62
+ {%- if message.tool_calls %}
63
+ {%- for tool_call in message.tool_calls %}
64
+ {%- if (loop.first and content) or (not loop.first) %}
65
+ {{- '\n' }}
66
+ {%- endif %}
67
+ {%- if tool_call.function %}
68
+ {%- set tool_call = tool_call.function %}
69
+ {%- endif %}
70
+ {{- '<tool_call>\n{"name": "' }}
71
+ {{- tool_call.name }}
72
+ {{- '", "arguments": ' }}
73
+ {%- if tool_call.arguments is string %}
74
+ {{- tool_call.arguments }}
75
+ {%- else %}
76
+ {{- tool_call.arguments | tojson }}
77
+ {%- endif %}
78
+ {{- '}\n</tool_call>' }}
79
+ {%- endfor %}
80
+ {%- endif %}
81
+ {{- '<|im_end|>\n' }}
82
+ {%- elif message.role == "tool" %}
83
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
84
+ {{- '<|im_start|>user' }}
85
+ {%- endif %}
86
+ {{- '\n<tool_response>\n' }}
87
+ {{- message.content }}
88
+ {{- '\n</tool_response>' }}
89
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
90
+ {{- '<|im_end|>\n' }}
91
+ {%- endif %}
92
+ {%- endif %}
93
+ {%- endfor %}
94
+ {%- if add_generation_prompt %}
95
+ {{- '<|im_start|>assistant\n' }}
96
+ {%- if enable_thinking is defined and enable_thinking is false %}
97
+ {{- '<think>\n\n</think>\n\n' }}
98
+ {%- endif %}
99
+ {%- endif %}
qwen3-0.6b/adapters/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d7430e9138b76e93fb6f93462394d236b411111aef53cb421ba97d2691040cca
3
+ size 11423114
qwen3-0.6b/adapters/tokenizer_config.json ADDED
@@ -0,0 +1,233 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "is_local": false,
9
+ "model_max_length": 40960,
10
+ "pad_token": "<|PAD_TOKEN|>",
11
+ "padding_side": "left",
12
+ "split_special_tokens": false,
13
+ "tokenizer_class": "Qwen2Tokenizer",
14
+ "unk_token": null,
15
+ "added_tokens_decoder": {
16
+ "151643": {
17
+ "content": "<|endoftext|>",
18
+ "single_word": false,
19
+ "lstrip": false,
20
+ "rstrip": false,
21
+ "normalized": false,
22
+ "special": true
23
+ },
24
+ "151644": {
25
+ "content": "<|im_start|>",
26
+ "single_word": false,
27
+ "lstrip": false,
28
+ "rstrip": false,
29
+ "normalized": false,
30
+ "special": true
31
+ },
32
+ "151645": {
33
+ "content": "<|im_end|>",
34
+ "single_word": false,
35
+ "lstrip": false,
36
+ "rstrip": false,
37
+ "normalized": false,
38
+ "special": true
39
+ },
40
+ "151646": {
41
+ "content": "<|object_ref_start|>",
42
+ "single_word": false,
43
+ "lstrip": false,
44
+ "rstrip": false,
45
+ "normalized": false,
46
+ "special": true
47
+ },
48
+ "151647": {
49
+ "content": "<|object_ref_end|>",
50
+ "single_word": false,
51
+ "lstrip": false,
52
+ "rstrip": false,
53
+ "normalized": false,
54
+ "special": true
55
+ },
56
+ "151648": {
57
+ "content": "<|box_start|>",
58
+ "single_word": false,
59
+ "lstrip": false,
60
+ "rstrip": false,
61
+ "normalized": false,
62
+ "special": true
63
+ },
64
+ "151649": {
65
+ "content": "<|box_end|>",
66
+ "single_word": false,
67
+ "lstrip": false,
68
+ "rstrip": false,
69
+ "normalized": false,
70
+ "special": true
71
+ },
72
+ "151650": {
73
+ "content": "<|quad_start|>",
74
+ "single_word": false,
75
+ "lstrip": false,
76
+ "rstrip": false,
77
+ "normalized": false,
78
+ "special": true
79
+ },
80
+ "151651": {
81
+ "content": "<|quad_end|>",
82
+ "single_word": false,
83
+ "lstrip": false,
84
+ "rstrip": false,
85
+ "normalized": false,
86
+ "special": true
87
+ },
88
+ "151652": {
89
+ "content": "<|vision_start|>",
90
+ "single_word": false,
91
+ "lstrip": false,
92
+ "rstrip": false,
93
+ "normalized": false,
94
+ "special": true
95
+ },
96
+ "151653": {
97
+ "content": "<|vision_end|>",
98
+ "single_word": false,
99
+ "lstrip": false,
100
+ "rstrip": false,
101
+ "normalized": false,
102
+ "special": true
103
+ },
104
+ "151654": {
105
+ "content": "<|vision_pad|>",
106
+ "single_word": false,
107
+ "lstrip": false,
108
+ "rstrip": false,
109
+ "normalized": false,
110
+ "special": true
111
+ },
112
+ "151655": {
113
+ "content": "<|image_pad|>",
114
+ "single_word": false,
115
+ "lstrip": false,
116
+ "rstrip": false,
117
+ "normalized": false,
118
+ "special": true
119
+ },
120
+ "151656": {
121
+ "content": "<|video_pad|>",
122
+ "single_word": false,
123
+ "lstrip": false,
124
+ "rstrip": false,
125
+ "normalized": false,
126
+ "special": true
127
+ },
128
+ "151657": {
129
+ "content": "<tool_call>",
130
+ "single_word": false,
131
+ "lstrip": false,
132
+ "rstrip": false,
133
+ "normalized": false,
134
+ "special": false
135
+ },
136
+ "151658": {
137
+ "content": "</tool_call>",
138
+ "single_word": false,
139
+ "lstrip": false,
140
+ "rstrip": false,
141
+ "normalized": false,
142
+ "special": false
143
+ },
144
+ "151659": {
145
+ "content": "<|fim_prefix|>",
146
+ "single_word": false,
147
+ "lstrip": false,
148
+ "rstrip": false,
149
+ "normalized": false,
150
+ "special": false
151
+ },
152
+ "151660": {
153
+ "content": "<|fim_middle|>",
154
+ "single_word": false,
155
+ "lstrip": false,
156
+ "rstrip": false,
157
+ "normalized": false,
158
+ "special": false
159
+ },
160
+ "151661": {
161
+ "content": "<|fim_suffix|>",
162
+ "single_word": false,
163
+ "lstrip": false,
164
+ "rstrip": false,
165
+ "normalized": false,
166
+ "special": false
167
+ },
168
+ "151662": {
169
+ "content": "<|fim_pad|>",
170
+ "single_word": false,
171
+ "lstrip": false,
172
+ "rstrip": false,
173
+ "normalized": false,
174
+ "special": false
175
+ },
176
+ "151663": {
177
+ "content": "<|repo_name|>",
178
+ "single_word": false,
179
+ "lstrip": false,
180
+ "rstrip": false,
181
+ "normalized": false,
182
+ "special": false
183
+ },
184
+ "151664": {
185
+ "content": "<|file_sep|>",
186
+ "single_word": false,
187
+ "lstrip": false,
188
+ "rstrip": false,
189
+ "normalized": false,
190
+ "special": false
191
+ },
192
+ "151665": {
193
+ "content": "<tool_response>",
194
+ "single_word": false,
195
+ "lstrip": false,
196
+ "rstrip": false,
197
+ "normalized": false,
198
+ "special": false
199
+ },
200
+ "151666": {
201
+ "content": "</tool_response>",
202
+ "single_word": false,
203
+ "lstrip": false,
204
+ "rstrip": false,
205
+ "normalized": false,
206
+ "special": false
207
+ },
208
+ "151667": {
209
+ "content": "<think>",
210
+ "single_word": false,
211
+ "lstrip": false,
212
+ "rstrip": false,
213
+ "normalized": false,
214
+ "special": false
215
+ },
216
+ "151668": {
217
+ "content": "</think>",
218
+ "single_word": false,
219
+ "lstrip": false,
220
+ "rstrip": false,
221
+ "normalized": false,
222
+ "special": false
223
+ },
224
+ "151669": {
225
+ "content": "<|PAD_TOKEN|>",
226
+ "single_word": false,
227
+ "lstrip": false,
228
+ "rstrip": false,
229
+ "normalized": false,
230
+ "special": true
231
+ }
232
+ }
233
+ }
qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-F16.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:141d507c4393251443afe63236d594f6b8c45f22cb546ff4076461ef53d9a9c1
3
+ size 1198182944
qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q4_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4d15b8fb273552fc9b1c6bc347185767e2f3dc0437a1cb14575080a2c5407bc8
3
+ size 396705312
qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q5_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4b09c532c64fd3b75eab6abc628329e1530242b350f54ef206c174c0fdbf2d68
3
+ size 444415520
qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q6_K.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:57a7472c85fe51c5205783e1d81aea69fff4fa4df5ae3edbf9b5e58bf0392937
3
+ size 495107616
qwen3-0.6b/gguf/txn-parser-qwen3-0.6b-Q8_0.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2b64fb71f6c9775fb2e73c3514109e640787bca28b2f67aec1e76c37ed71dffc
3
+ size 639447584