passing2961 commited on
Commit
e172dab
·
verified ·
1 Parent(s): 446fe3c

Release Finch-8B-KTO: model weights + README + assets

Browse files
.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ assets/intro_teaser.png filter=lfs diff=lfs merge=lfs -text
38
+ assets/results_kto.png filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ library_name: transformers
6
+ pipeline_tag: text-generation
7
+ base_model:
8
+ - minnesotanlp/Finch-8B
9
+ datasets:
10
+ - minnesotanlp/Finch-Collection
11
+ tags:
12
+ - evolution-fine-tuning
13
+ - evolutionary-search
14
+ - discovery
15
+ - preference-learning
16
+ - kto
17
+ - mutation-operator
18
+ - mid-training
19
+ ---
20
+
21
+ <div align="center">
22
+
23
+
24
+ <h2 style="font-weight: bold; font-size: 1.8em; margin-top: 11px;">
25
+ Evolution Fine-Tuning: Learning to Discover Across 371 Optimization Tasks
26
+ </h2>
27
+ <p style="font-size: 1.05em; margin-top: 4px;">
28
+ <em>A mid-training "practice phase" that teaches small open-source LLMs <strong>how to evolve solutions</strong>.</em>
29
+ </p>
30
+
31
+ <p align="center">
32
+ <a href="https://open-galapagos.github.io/evolution_finetuning/"><img src="https://img.shields.io/badge/Website-Project%20Page-1E90FF.svg?logo=googlechrome&logoColor=white" alt="Website"/></a>
33
+ <a href="https://github.com/Open-Galapagos/evolution_finetuning"><img src="https://img.shields.io/badge/GitHub-Code-181717.svg?logo=github" alt="GitHub"/></a>
34
+ <a href="https://huggingface.co/datasets/minnesotanlp/Finch-Collection"><img src="https://img.shields.io/badge/HuggingFace-Dataset-FFD21E.svg?logo=huggingface" alt="Dataset"/></a>
35
+ <a href="https://huggingface.co/minnesotanlp/Finch-2B"><img src="https://img.shields.io/badge/-Finch--2B-FFD21E?logo=huggingface&logoColor=black" alt="Finch-2B"/></a>
36
+ <a href="https://huggingface.co/minnesotanlp/Finch-4B"><img src="https://img.shields.io/badge/-Finch--4B-FFD21E?logo=huggingface&logoColor=black" alt="Finch-4B"/></a>
37
+ <a href="https://huggingface.co/minnesotanlp/Finch-8B"><img src="https://img.shields.io/badge/-Finch--8B-FFD21E?logo=huggingface&logoColor=black" alt="Finch-8B"/></a>
38
+ <a href="https://huggingface.co/minnesotanlp/Finch-9B"><img src="https://img.shields.io/badge/-Finch--9B-FFD21E?logo=huggingface&logoColor=black" alt="Finch-9B"/></a>
39
+ <a href="https://huggingface.co/minnesotanlp/Finch-4B-KTO"><img src="https://img.shields.io/badge/-Finch--4B--KTO-FFD21E?logo=huggingface&logoColor=black" alt="Finch-4B-KTO"/></a>
40
+ <a href="https://www.apache.org/licenses/LICENSE-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="Apache 2.0"/></a>
41
+ </p>
42
+
43
+ </div>
44
+
45
+ **Finch-8B-KTO** extends [**`Finch-8B`**](https://huggingface.co/minnesotanlp/Finch-8B) with a second, preference-learning stage ([**KTO**](https://arxiv.org/abs/2402.01306)). On top of evolution fine-tuning — which teaches the model *how to evolve a solution* as a **mutation operator** — KTO adds the ability to **self-judge** which candidate solutions are promising and which fall short. It is the family's **strongest offline-RL variant**, surpassing the best human score on multiple mathematical-discovery tasks. Lineage: **Qwen3-8B → Finch-8B (EFT + SFT) → Finch-8B-KTO**.
46
+
47
+ ## TL;DR
48
+
49
+ Evolution Fine-Tuning (EFT) turns evolutionary search **trajectories** into supervision, moving discovery behavior from the *scaffold* into the *model*. **KTO** then trains the model on `improved` vs. `regressed` transitions jointly, so it internalizes a sense of solution quality — pushing Finch-8B past the best human score on both autocorrelation-inequality tasks.
50
+
51
+ <div align="center">
52
+ <img src="./assets/intro_teaser.png" alt="EFT as mid-training" width="960"/>
53
+ </div>
54
+
55
+ - (Left) EFT acts as mid-training, boosting Finch's discovery on the Erdős minimum-overlap problem under both test-time search and test-time learning.
56
+ - (Right) On NP-hard competitive programming, Finch composes strategies learned across diverse domains, while the base model relies on a single repetitive strategy.
57
+
58
+ ## Finch family
59
+
60
+ | Model | Base | Params | Training | 🤗 Hugging Face |
61
+ |---|---|---:|---|:---:|
62
+ | `Finch-2B` | Qwen3.5-2B | 2B | EFT | [![Open on Hugging Face](https://img.shields.io/badge/-Open-FFD21E?logo=huggingface&logoColor=black)](https://huggingface.co/minnesotanlp/Finch-2B) |
63
+ | `Finch-4B` | Qwen3.5-4B | 4B | EFT | [![Open on Hugging Face](https://img.shields.io/badge/-Open-FFD21E?logo=huggingface&logoColor=black)](https://huggingface.co/minnesotanlp/Finch-4B) |
64
+ | `Finch-8B` | Qwen3-8B | 8B | EFT | [![Open on Hugging Face](https://img.shields.io/badge/-Open-FFD21E?logo=huggingface&logoColor=black)](https://huggingface.co/minnesotanlp/Finch-8B) |
65
+ | `Finch-9B` | Qwen3.5-9B | 9B | EFT | [![Open on Hugging Face](https://img.shields.io/badge/-Open-FFD21E?logo=huggingface&logoColor=black)](https://huggingface.co/minnesotanlp/Finch-9B) |
66
+ | `Finch-4B-KTO` | Qwen3.5-4B | 4B | EFT + KTO | [![Open on Hugging Face](https://img.shields.io/badge/-Open-FFD21E?logo=huggingface&logoColor=black)](https://huggingface.co/minnesotanlp/Finch-4B-KTO) |
67
+ | **`Finch-8B-KTO`** ← *this model* | **Qwen3-8B** | **8B** | **EFT + KTO** | [![Open on Hugging Face](https://img.shields.io/badge/-Open-FFD21E?logo=huggingface&logoColor=black)](https://huggingface.co/minnesotanlp/Finch-8B-KTO) |
68
+
69
+ ## How to Use Finch
70
+
71
+ 1. **Execute OpenEvolve scaffold with Finch**
72
+
73
+ Finch is a **mutation operator for evolutionary search**, most effective driven by a scaffold such as **OpenEvolve** (`T = 100`, temperature `0.7`, top-`p` `0.95`, up to `30K` tokens).
74
+ You can also use other scaffolds in the [SkyDiscover](https://github.com/skydiscover-ai/skydiscover) framework, but we do not guarantee performance, as our model is trained on OpenEvolve's trajectories — one of this work's limitations.
75
+
76
+ 2. **Calling Finch directly**
77
+
78
+ You can also call Finch directly:
79
+
80
+ **System prompt** (task-level instruction from the OpenEvolve scaffold):
81
+ ```
82
+ You are an expert mathematician specializing in circle packing problems and computational geometry.
83
+ Your task is to improve a constructor function that directly produces a specific arrangement of
84
+ 26 circles in a unit square, maximizing the sum of their radii.
85
+ The AlphaEvolve paper achieved a sum of 2.635 for n=26.
86
+
87
+ Key geometric insights:
88
+ - Circle packings often follow hexagonal patterns in the densest regions
89
+ - Maximum density for infinite circle packing is pi/(2*sqrt(3)) ≈ 0.9069
90
+ - Edge effects make square container packing harder than infinite packing
91
+ - Similar radius circles often form regular patterns, while varied radii allow better space utilization
92
+ ```
93
+
94
+ **User prompt** (evolutionary state — current program + evaluator feedback + evolutionary history):
95
+ ```
96
+ # Current Program Information
97
+ - Fitness: 0.3642 (sum_radii: 0.9598)
98
+ - Focus areas: Fitness unchanged at 0.3642. Consider simplifying — code length exceeds 500 characters.
99
+
100
+ # Program Evolution History
101
+ ## Previous Attempts
102
+
103
+ ### Attempt 1
104
+ - Changes: Replace concentric ring placement with hexagonal lattice (5-6-5-6-5 row pattern)
105
+ - Metrics: sum_radii: 0.9598, validity: 1.0 — Improvement in all metrics
106
+
107
+ # Current Program
108
+
109
+ # EVOLVE-BLOCK-START
110
+ import numpy as np
111
+
112
+ def construct_packing():
113
+ n = 26
114
+ centers = np.zeros((n, 2))
115
+ centers[0] = [0.5, 0.5] # center circle
116
+ for i in range(8): # inner ring
117
+ angle = 2 * np.pi * i / 8
118
+ centers[i+1] = [0.5 + 0.3*np.cos(angle), 0.5 + 0.3*np.sin(angle)]
119
+ for i in range(16): # outer ring
120
+ angle = 2 * np.pi * i / 16
121
+ centers[i+9] = [0.5 + 0.7*np.cos(angle), 0.5 + 0.7*np.sin(angle)]
122
+ centers = np.clip(centers, 0.01, 0.99)
123
+ radii = compute_max_radii(centers)
124
+ return centers, radii, np.sum(radii)
125
+ # EVOLVE-BLOCK-END
126
+ ```
127
+
128
+ ```python
129
+ import torch
130
+ from transformers import AutoModelForCausalLM, AutoTokenizer
131
+
132
+ model_id = "minnesotanlp/Finch-8B-KTO"
133
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
134
+ model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
135
+
136
+ # Given an evolutionary state — task instruction + parent program + evolutionary history
137
+ # + evaluator feedback — Finch proposes an improved candidate program.
138
+ messages = [
139
+ {"role": "system", "content": SYSTEM_PROMPT}, # provided by your evolutionary scaffold
140
+ {"role": "user", "content": USER_PROMPT}, # parent program + feedback + history
141
+ ]
142
+ inputs = tokenizer.apply_chat_template(
143
+ messages, add_generation_prompt=True, return_tensors="pt"
144
+ ).to(model.device)
145
+
146
+ out = model.generate(inputs, max_new_tokens=30000, do_sample=True, temperature=0.7, top_p=0.95)
147
+ print(tokenizer.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))
148
+ ```
149
+
150
+ ## Training
151
+
152
+ Two stages:
153
+
154
+ - **Stage 1 — EFT (SFT).** [`Finch-8B`](https://huggingface.co/minnesotanlp/Finch-8B): full SFT of **Qwen3-8B** on `improved` transitions from the [Finch Collection](https://huggingface.co/datasets/minnesotanlp/Finch-Collection) (355 training tasks; one run/task → **30,445** examples; 900 for validation) with [LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory) — 1 epoch, global batch size 128, LR 1e-5, on 8× NVIDIA H200 140GB.
155
+ - **Stage 2 — KTO.** Preference learning ([KTO](https://arxiv.org/abs/2402.01306)) on `improved` (desirable) and `regressed` (undesirable) transitions jointly, maximizing the contrastive signal that guides the model toward self-judging which solutions are promising and which fall short.
156
+ - **Teacher (data).** Trajectories generated by **Qwen3.5-397B-A17B** inside the **OpenEvolve** scaffold.
157
+
158
+ ## Results
159
+
160
+ - Finch outperforms its same-size base model by +10.2% on 22 held-out tasks across 5 domains, with improvements of up to +290% on individual tasks.
161
+ - Larger models benefit more, and Finch-4B matches a model roughly 2× larger on the Erdős task.
162
+
163
+
164
+ <div align="center">
165
+ <img src="./assets/results_main.png" alt="main results" width="900"/>
166
+ </div>
167
+
168
+ - On competitive programming (FrontierCS), Finch-9B averages 46.01 vs base Qwen3.5-9B's 32.46; on CALICO's P263 (UC Berkeley's official open-ended contest) it scores 86.10 vs 55.09
169
+
170
+
171
+ <div align="center">
172
+ <img src="./assets/results_frontiercs.png" alt="frontiercs results" width="760"/>
173
+ </div>
174
+
175
+ - With preference learning (KTO), Finch-8B surpasses the best human score on AC1 and AC2, while its competitive programming score improves from 24.56 → 37.30.
176
+ - Finch-8B matches SOTA on two circle-packing tasks and improves the Erdős task by +3.2%.
177
+
178
+ <div align="center">
179
+ <img src="./assets/results_kto_ttrl.png" alt="frontiercs results" width="760"/>
180
+ </div>
181
+
182
+ ## Limitations
183
+
184
+ Trajectories are collected and evaluated only with **OpenEvolve**; behavior under different scaffolds is not guaranteed.
185
+
186
+ ## License
187
+
188
+ The **Finch Collection** is released under the [**CC-BY 4.0 License**](https://creativecommons.org/licenses/by/4.0/) and is recommended for **non-commercial academic research**. The accompanying **code** and **Finch model weights** are released under the [**Apache 2.0 License**](https://www.apache.org/licenses/LICENSE-2.0).
189
+
190
+ ## Acknowledgements
191
+
192
+ This research was supported by the "Advanced GPU Utilization Support Program" funded by the Government of the Republic of Korea (Ministry of Science and ICT). We are grateful to the SkyDiscover team for their valuable feedback on the dataset construction process, the use of the SkyDiscover framework, and the overall direction of this research — in particular, [Shu Liu](https://shulynnliu.com/), [Shubham Agarwal](https://skejriwal44.github.io/), and [Mert Cemri](https://people.eecs.berkeley.edu/~mert_cemri/) for their insightful comments and discussions. We also thank the OpenEvolve team, especially Ritik Vijayvergiya and [Asankhaya Sharma](https://asankhaya.github.io/), for their guidance on using the OpenEvolve framework and for their thoughtful comments on this work. We further thank the authors of ALE-Bench, especially [Yuki Imajuku](https://imajuku.tech/), and the AtCoder team for authorizing the public release of the evolutionary search trajectories derived from their CC BY-ND 4.0-licensed dataset. Finally, we thank [Byung-Kwan Lee](https://byungkwanlee.github.io/ByungKwanLee-CV/) for valuable feedback during the early stages of this project.
193
+
194
+
195
+ ## Citation
196
+
197
+ ```bibtex
198
+ @misc{lee2026evolutionfinetuning,
199
+ title = {Evolution Fine-Tuning: Learning to Discover Across 371 Optimization Tasks},
200
+ author = {Young-Jun Lee and Seungone Kim and Minki Kang and Alistair Cheong and Zerui Chen and Seungho Han and Taehee Jung and Dongyeop Kang},
201
+ year = {2026},
202
+ note = {Preprint},
203
+ url = {https://open-galapagos.github.io/evolution_finetuning/},
204
+ }
205
+ ```
assets/finch_icon.png ADDED
assets/intro_teaser.png ADDED

Git LFS Details

  • SHA256: 50e825db841e72ac37560145a523697a4b009e320df28193f23bb467f9e8a85d
  • Pointer size: 131 Bytes
  • Size of remote file: 436 kB
assets/results_kto.png ADDED

Git LFS Details

  • SHA256: b5da7421d1350a0fd86fcb649a9f000bf5420259d316c5a1898673db951295f8
  • Pointer size: 131 Bytes
  • Size of remote file: 153 kB
chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3ForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": null,
8
+ "dtype": "bfloat16",
9
+ "eos_token_id": 151645,
10
+ "head_dim": 128,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 4096,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 12288,
15
+ "layer_types": [
16
+ "full_attention",
17
+ "full_attention",
18
+ "full_attention",
19
+ "full_attention",
20
+ "full_attention",
21
+ "full_attention",
22
+ "full_attention",
23
+ "full_attention",
24
+ "full_attention",
25
+ "full_attention",
26
+ "full_attention",
27
+ "full_attention",
28
+ "full_attention",
29
+ "full_attention",
30
+ "full_attention",
31
+ "full_attention",
32
+ "full_attention",
33
+ "full_attention",
34
+ "full_attention",
35
+ "full_attention",
36
+ "full_attention",
37
+ "full_attention",
38
+ "full_attention",
39
+ "full_attention",
40
+ "full_attention",
41
+ "full_attention",
42
+ "full_attention",
43
+ "full_attention",
44
+ "full_attention",
45
+ "full_attention",
46
+ "full_attention",
47
+ "full_attention",
48
+ "full_attention",
49
+ "full_attention",
50
+ "full_attention",
51
+ "full_attention"
52
+ ],
53
+ "max_position_embeddings": 131072,
54
+ "max_window_layers": 36,
55
+ "model_type": "qwen3",
56
+ "num_attention_heads": 32,
57
+ "num_hidden_layers": 36,
58
+ "num_key_value_heads": 8,
59
+ "pad_token_id": 151643,
60
+ "rms_norm_eps": 1e-06,
61
+ "rope_parameters": {
62
+ "attention_factor": 1.0,
63
+ "factor": 1.5,
64
+ "original_max_position_embeddings": 131072,
65
+ "rope_theta": 1000000,
66
+ "rope_type": "yarn"
67
+ },
68
+ "sliding_window": null,
69
+ "tie_word_embeddings": false,
70
+ "transformers_version": "5.2.0",
71
+ "use_cache": false,
72
+ "use_sliding_window": false,
73
+ "vocab_size": 151936
74
+ }
generation_config.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "do_sample": true,
3
+ "eos_token_id": [
4
+ 151645,
5
+ 151643
6
+ ],
7
+ "pad_token_id": 151643,
8
+ "temperature": 0.6,
9
+ "top_k": 20,
10
+ "top_p": 0.95,
11
+ "transformers_version": "5.2.0"
12
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7248a69f581975c50723005a85c27a3750e0e10d01d42012f4d83d215bea00c7
3
+ size 16381517208
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506
3
+ size 11422650
tokenizer_config.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "extra_special_tokens": [
9
+ "<|im_start|>",
10
+ "<|im_end|>",
11
+ "<|object_ref_start|>",
12
+ "<|object_ref_end|>",
13
+ "<|box_start|>",
14
+ "<|box_end|>",
15
+ "<|quad_start|>",
16
+ "<|quad_end|>",
17
+ "<|vision_start|>",
18
+ "<|vision_end|>",
19
+ "<|vision_pad|>",
20
+ "<|image_pad|>",
21
+ "<|video_pad|>"
22
+ ],
23
+ "is_local": false,
24
+ "model_max_length": 131072,
25
+ "pad_token": "<|endoftext|>",
26
+ "padding_side": "right",
27
+ "split_special_tokens": false,
28
+ "tokenizer_class": "Qwen2Tokenizer",
29
+ "unk_token": null
30
+ }