bugrabilge commited on
Commit
cd61ae5
·
verified ·
1 Parent(s): 8700330

Initial release: Omni-31B Turkish Reasoning Model v1

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ 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
README.md ADDED
@@ -0,0 +1,301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: gemma
3
+ language:
4
+ - tr
5
+ base_model: google/gemma-4-31B
6
+ tags:
7
+ - turkish
8
+ - türkçe
9
+ - chain-of-thought
10
+ - reasoning
11
+ - cot
12
+ - gemma-4
13
+ - text-generation
14
+ - fine-tuned
15
+ library_name: transformers
16
+ pipeline_tag: text-generation
17
+ model-index:
18
+ - name: Omni-31B-Turkish-Reasoning-Model
19
+ results: []
20
+ ---
21
+
22
+ Omni-31B Turkish Reasoning Model
23
+ Omni Türkçe Chain-of-Thought reasoning model özeti
24
+
25
+ Model Açıklaması
26
+ Omni-31B, Türkçe muhakeme, açıklayıcı analiz, çok adımlı problem çözme ve genel bilgi alanlarında adım adım düşünme yetkinliği için fine-tune edilmiş bir Gemma 4 tabanlı modeldir.
27
+
28
+ Bu model, Gemma 4 31B base model üzerine 249K filtrelenmiş Türkçe Chain-of-Thought (CoT) verisi ile full fine-tune edilmiştir. Eğitim, `<think>` blokları içinde görünür adım adım reasoning üretecek şekilde tasarlanmıştır.
29
+
30
+ Model, Türkçe kullanıcıların açıklayıcı sorularını yapılandırılmış şekilde yanıtlaması, çok aşamalı muhakeme gerektiren konuları parçalara ayırması ve uzun-form analiz üretmesi için optimize edilmiştir.
31
+
32
+ Türk yapay zeka topluluğuna faydalı olması dileğiyle. 🇹🇷
33
+
34
+ Önemli: Bu model araştırma ve eğitim amaçlıdır. Üretilen içerik nihai karar mekanizması olarak kullanılmamalı; profesyonel görüş gerektiren konularda (hukuk, sağlık, finans, mühendislik) lisanslı uzmanlara başvurulmalıdır.
35
+
36
+ Temel Yetenekler
37
+ - Türkçe Chain-of-Thought reasoning: `<think>` blokları içinde adım adım düşünme, plan kurma, ara doğrulama ve yapılandırılmış cevap üretme.
38
+ - Açıklayıcı analiz: Bilim, tarih, edebiyat, felsefe ve genel kültür konularında uzun-form Türkçe açıklama.
39
+ - Çok adımlı muhakeme: Karmaşık soruları parçalara ayırarak adım adım yanıtlama.
40
+ - Türkçe akıcılığı: Pre-training'den gelen Gemma 4 dil yeteneğinin Türkçe reasoning görevlerine uyarlanması.
41
+ - Format disiplini: `<think>...</think>` reasoning bloğu sonrası kullanıcıya yönelik temiz cevap üretimi.
42
+
43
+ Model Detayları
44
+ | Özellik | Değer |
45
+ |---|---|
46
+ | Model adı | bugrabilge/Omni-31B-Turkish-Reasoning-Model |
47
+ | Base model | google/gemma-4-31B |
48
+ | Mimari | Dense Causal LM, text-only deployment |
49
+ | Parametre | 31B |
50
+ | Fine-tuning yöntemi | Full Supervised Fine-Tuning (16-bit weights) |
51
+ | Eğitim dili | Türkçe |
52
+ | Uzmanlaşma | Türkçe Chain-of-Thought reasoning |
53
+ | Max training sequence length | 8192 token |
54
+ | Deployment mode | text_only |
55
+
56
+ Eğitim Özeti
57
+ | Metrik | Değer |
58
+ |---|---|
59
+ | Eğitim verisi | 249,292 Türkçe CoT örneği |
60
+ | Veri kaynağı | ~30GB ham Türkçe CoT veriden kural-bazlı pipeline ile filtrelenmiş |
61
+ | Framework | HuggingFace Transformers + DeepSpeed ZeRO-3 |
62
+ | Effective batch size | 128 (1 × 16 grad_accum × 8 GPU) |
63
+ | Epoch | 1 |
64
+ | Precision | bfloat16 |
65
+ | Attention | SDPA |
66
+ | Label masking | Assistant-only training hedefi |
67
+ | Thinking davranışı | `<think>...</think>` bloğu ile görünür reasoning |
68
+ | Ortalama cevap uzunluğu | ~5,000-7,000 token (uzun-form akademik stil) |
69
+
70
+ Önerilen Kullanım Alanları
71
+ - Türkçe eğitim asistanı (açıklayıcı içerik)
72
+ - Bilim, tarih, edebiyat konularında uzun-form analiz
73
+ - Çok adımlı muhakeme gerektiren soru-cevap
74
+ - Akademik tarzda Türkçe içerik üretimi ve taslak hazırlama
75
+ - Türkçe reasoning üzerine araştırma
76
+
77
+ Kullanım
78
+
79
+ Kurulum
80
+ ```bash
81
+ pip install "transformers>=4.50.0" "torch>=2.4.0" accelerate safetensors sentencepiece
82
+ ```
83
+
84
+ > **Not:** Model `chat_template.jinja` formatı kullanır (Transformers 4.50+ convention). Daha eski versiyonlarda chat template doğru yüklenmeyebilir.
85
+
86
+ Transformers ile örnek
87
+ ```python
88
+ from transformers import AutoModelForCausalLM, AutoTokenizer
89
+ import torch
90
+
91
+ model_id = "bugrabilge/Omni-31B-Turkish-Reasoning-Model"
92
+
93
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
94
+
95
+ model = AutoModelForCausalLM.from_pretrained(
96
+ model_id,
97
+ torch_dtype=torch.bfloat16,
98
+ device_map="auto",
99
+ )
100
+
101
+ messages = [
102
+ {
103
+ "role": "system",
104
+ "content": (
105
+ "Sen adım adım düşünen bir Türkçe asistansın. "
106
+ "Cevap vermeden önce <think> bloğunda muhakemeni yap, "
107
+ "ardından kullanıcıya net bir cevap ver."
108
+ ),
109
+ },
110
+ {
111
+ "role": "user",
112
+ "content": "Fotosentez sürecini adım adım açıkla ve neden hayat için kritik olduğunu belirt.",
113
+ },
114
+ ]
115
+
116
+ text = tokenizer.apply_chat_template(
117
+ messages,
118
+ tokenize=False,
119
+ add_generation_prompt=True,
120
+ )
121
+
122
+ inputs = tokenizer([text], return_tensors="pt").to(model.device)
123
+
124
+ outputs = model.generate(
125
+ **inputs,
126
+ max_new_tokens=7168,
127
+ min_new_tokens=80,
128
+ temperature=0.7,
129
+ top_p=0.9,
130
+ do_sample=True,
131
+ eos_token_id=[1, 106],
132
+ )
133
+
134
+ print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False))
135
+ ```
136
+
137
+ vLLM ile deploy
138
+ ```bash
139
+ vllm serve bugrabilge/Omni-31B-Turkish-Reasoning-Model \
140
+ --tensor-parallel-size 8 \
141
+ --dtype bfloat16 \
142
+ --max-model-len 8192 \
143
+ --gpu-memory-utilization 0.90 \
144
+ --limit-mm-per-prompt '{"image":0,"audio":0}' \
145
+ --port 8000
146
+ ```
147
+
148
+ Önerilen Sampling Parametreleri
149
+
150
+ Model uzun-form (5K-7K token) cevap üretecek şekilde eğitilmiştir. Güvenilir çalışma için aşağıdaki parametrelerin kullanılması önerilir.
151
+
152
+ **vLLM / OpenAI-uyumlu API için:**
153
+
154
+ ```python
155
+ sampling_params = {
156
+ "temperature": 0.7,
157
+ "top_p": 0.9,
158
+ "min_tokens": 80,
159
+ "max_tokens": 7168,
160
+ "stop": ["<turn|>", "<think>", "```\n```"]
161
+ }
162
+ ```
163
+
164
+ | Parametre | Değer | Sebep |
165
+ |---|---|---|
166
+ | `max_tokens` | 7168 | Eğitim verisi cevap dağılımının üst sınırına yakın; modelin natural EOS üretmesi için yeterli alan |
167
+ | `min_tokens` | 80 | Erken stop'u önler, modelin `<think>` bloğunu tamamlamasına imkan tanır |
168
+ | `stop` | 3'lü liste | `<turn|>` natural EOS; `<think>` ve markdown fence olası degenerate pattern'leri keser |
169
+ | `temperature` | 0.7 | Eğitim distribusyonuna sadık, degenerate loop riskini azaltır |
170
+
171
+ **Transformers (`model.generate`) için:**
172
+
173
+ ```python
174
+ generation_kwargs = {
175
+ "temperature": 0.7,
176
+ "top_p": 0.9,
177
+ "min_new_tokens": 80,
178
+ "max_new_tokens": 7168,
179
+ "do_sample": True,
180
+ "eos_token_id": [1, 106],
181
+ }
182
+ ```
183
+
184
+ > **Not:** Transformers ve vLLM parametre adlandırması farklıdır:
185
+ > - Transformers: `min_new_tokens`, `max_new_tokens`
186
+ > - vLLM: `min_tokens`, `max_tokens`
187
+ > Anlamları aynıdır (sadece üretilecek yeni token sayısı, prompt hariç).
188
+
189
+ vLLM API çağrısı örneği:
190
+ ```bash
191
+ curl http://localhost:8000/v1/chat/completions \
192
+ -H "Content-Type: application/json" \
193
+ -d '{
194
+ "model": "bugrabilge/Omni-31B-Turkish-Reasoning-Model",
195
+ "messages": [
196
+ {"role": "system", "content": "Sen adım adım düşünen bir Türkçe asistansın."},
197
+ {"role": "user", "content": "..."}
198
+ ],
199
+ "max_tokens": 7168,
200
+ "min_tokens": 80,
201
+ "temperature": 0.7,
202
+ "top_p": 0.9,
203
+ "stop": ["<turn|>", "<think>", "```\n```"]
204
+ }'
205
+ ```
206
+
207
+ Önerilen Sistem Talimatı
208
+ ```
209
+ Sen Türkçe konuşan, adım adım düşünen bir yapay zeka asistanısın.
210
+
211
+ Çalışma şeklin:
212
+ - Cevap vermeden önce <think> bloğunda muhakemeni adım adım yap.
213
+ - Düşünme aşamasında soruyu parçalara ayır, varsayımlarını netleştir,
214
+ ara sonuçları doğrula.
215
+ - </think> sonrası kullanıcıya net, yapılandırılmış ve gereksiz tekrar
216
+ içermeyen bir cevap ver.
217
+ - Emin olmadığın bilgilerde belirsizliği açıkça belirt.
218
+ - Türkçe açıkla; teknik terimler gerektiğinde parantez içinde
219
+ orijinal formuyla koru.
220
+ ```
221
+
222
+ Çıktı Formatı
223
+ Model cevaplarını `<think>...</think>` bloğu ile başlatır, ardından kullanıcıya yönelik nihai cevabını verir:
224
+
225
+ ```
226
+ <think>
227
+ Soruyu analiz ediyorum. Fotosentez bitkilerin güneş ışığı, su ve karbondioksiti
228
+ kullanarak glikoz ve oksijen ürettiği biyokimyasal süreçtir...
229
+ </think>
230
+
231
+ Fotosentez, yaşamın temel taşlarından biridir. Süreç şu aşamalardan oluşur:
232
+ ...
233
+ ```
234
+
235
+ Token Budget Hesabı
236
+ Toplam context bütçesi: **prompt + completion ≤ 8192 token**.
237
+
238
+ Eğer prompt'unuz uzunsa `max_tokens` değerini dinamik olarak hesaplayın:
239
+
240
+ ```python
241
+ # Önce mesajları render et
242
+ text = tokenizer.apply_chat_template(
243
+ messages,
244
+ tokenize=False,
245
+ add_generation_prompt=True,
246
+ )
247
+ prompt_tokens = len(tokenizer.encode(text))
248
+ available = 8192 - prompt_tokens - 50 # 50 token safety margin
249
+ max_tokens = min(available, 7168)
250
+ ```
251
+
252
+ Quantization
253
+
254
+ Topluluk tarafından oluşturulacak quantized versiyonlar (GGUF, AWQ, GPTQ) için bu repo'yu base olarak kullanabilirsiniz. Quantize edilmiş versiyonlar yayınlanırsa bu bölüm güncellenecektir.
255
+
256
+ Bilinen Teknik Sınırlamalar
257
+
258
+ 1. **Uzun-form eğitim verisi:** Model eğitim verisi ortalama 5K-7K token cevap içerir,
259
+ bu nedenle akademik/açıklayıcı stilde uzun cevaplar üretmeye eğilimlidir. Kısa
260
+ ve net cevap istendiğinde sistem promptunda explicit belirtilmelidir.
261
+
262
+ 2. **Format varyasyonu:** Bazı cevaplarda model önce düz metin, ardından markdown
263
+ yapılandırılmış versiyon üretebilir. Bu eğitim verisi karakteristiğidir.
264
+
265
+ 3. **`<think>` tetikleme:** Uzun ve açıklayıcı sorularda `<think>` bloğu güvenilir
266
+ şekilde tetiklenir. Daha tutarlı `<think>` davranışı için sistem promptunda
267
+ explicit talep edilmelidir.
268
+
269
+ 4. **Yetersiz `max_tokens` riski:** `max_tokens` değeri 7000'in altında ayarlanırsa
270
+ model cevabını tamamlayamayabilir ve generation pattern'lerine girebilir. Önerilen
271
+ stop sequence'leri ile bu durum güvenli şekilde yönetilir.
272
+
273
+ 5. **Multimodal değil:** Sadece text generation desteklenir; mimari image/audio
274
+ destekliyor ancak eğitim text-only yapıldı.
275
+
276
+ Risk Uyarısı ve Kullanım Sınırları
277
+ - Model gerçek zamanlı bilgiye bağlı değildir; güncel olay, fiyat, mevzuat veya istatistik gerektiren sorularda resmi kaynak kontrolü gerekir.
278
+ - Üretilen yanıtlar profesyonel danışmanlık (hukuk, sağlık, finans, mühendislik) yerine geçmez.
279
+ - Model factual hata üretebilir; kritik kullanımlarda çıktıların doğrulanması gerekir.
280
+ - Model cevapları nihai karar mekanizması olarak kullanılmamalıdır.
281
+
282
+ Citation
283
+ Bu modeli kullanırsanız aşağıdaki şekilde atıfta bulunabilirsiniz:
284
+
285
+ ```bibtex
286
+ @model{Omni31B,
287
+ author = {Buğra Bilge Çelik},
288
+ title = {Omni-31B: A Fine-tuned Gemma 4 31B Model for Turkish Chain-of-Thought Reasoning},
289
+ year = {2026},
290
+ publisher = {Hugging Face},
291
+ url = {https://huggingface.co/bugrabilge/Omni-31B-Turkish-Reasoning-Model}
292
+ }
293
+ ```
294
+
295
+ İletişim
296
+ - Hugging Face: [@bugrabilge](https://huggingface.co/bugrabilge)
297
+ - LinkedIn: [bugrabilgecelik](https://www.linkedin.com/in/bugrabilgecelik/)
298
+ - GitHub: [bugrabilge](https://github.com/bugrabilge)
299
+ - E-posta: bugrabilgee@gmail.com
300
+
301
+ Disclaimer: Bu model araştırma, eğitim ve genel bilgilendirme amaçlıdır. Modelin çıktıları profesyonel danışmanlık değildir ve model çıktılarına dayanarak alınan kararlardan model geliştiricisi sorumlu tutulamaz.
chat_template.jinja ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- for message in messages -%}
2
+ {%- if message['role'] == 'system' %}<|turn>system
3
+ {{ message['content'] }}<turn|>
4
+ {% elif message['role'] == 'user' %}<|turn>user
5
+ {{ message['content'] }}<turn|>
6
+ {% elif message['role'] == 'assistant' %}<|turn>model
7
+ {{ message['content'] }}<turn|>
8
+ {% endif -%}
9
+ {%- endfor -%}
10
+ {%- if add_generation_prompt %}<|turn>model
11
+ {% endif -%}
config.json ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Gemma4ForConditionalGeneration"
4
+ ],
5
+ "audio_config": null,
6
+ "audio_token_id": 258881,
7
+ "boa_token_id": 256000,
8
+ "boi_token_id": 255999,
9
+ "dtype": "bfloat16",
10
+ "eoa_token_id": 258883,
11
+ "eoa_token_index": 258883,
12
+ "eoi_token_id": 258882,
13
+ "image_token_id": 258880,
14
+ "initializer_range": 0.02,
15
+ "model_type": "gemma4",
16
+ "pad_token_id": 0,
17
+ "text_config": {
18
+ "attention_bias": false,
19
+ "attention_dropout": 0.0,
20
+ "attention_k_eq_v": true,
21
+ "bos_token_id": 2,
22
+ "dtype": "bfloat16",
23
+ "enable_moe_block": false,
24
+ "eos_token_id": 1,
25
+ "expert_intermediate_size": null,
26
+ "final_logit_softcapping": 30.0,
27
+ "global_head_dim": 512,
28
+ "head_dim": 256,
29
+ "hidden_activation": "gelu_pytorch_tanh",
30
+ "hidden_size": 5376,
31
+ "hidden_size_per_layer_input": 0,
32
+ "initializer_range": 0.02,
33
+ "intermediate_size": 21504,
34
+ "layer_types": [
35
+ "sliding_attention",
36
+ "sliding_attention",
37
+ "sliding_attention",
38
+ "sliding_attention",
39
+ "sliding_attention",
40
+ "full_attention",
41
+ "sliding_attention",
42
+ "sliding_attention",
43
+ "sliding_attention",
44
+ "sliding_attention",
45
+ "sliding_attention",
46
+ "full_attention",
47
+ "sliding_attention",
48
+ "sliding_attention",
49
+ "sliding_attention",
50
+ "sliding_attention",
51
+ "sliding_attention",
52
+ "full_attention",
53
+ "sliding_attention",
54
+ "sliding_attention",
55
+ "sliding_attention",
56
+ "sliding_attention",
57
+ "sliding_attention",
58
+ "full_attention",
59
+ "sliding_attention",
60
+ "sliding_attention",
61
+ "sliding_attention",
62
+ "sliding_attention",
63
+ "sliding_attention",
64
+ "full_attention",
65
+ "sliding_attention",
66
+ "sliding_attention",
67
+ "sliding_attention",
68
+ "sliding_attention",
69
+ "sliding_attention",
70
+ "full_attention",
71
+ "sliding_attention",
72
+ "sliding_attention",
73
+ "sliding_attention",
74
+ "sliding_attention",
75
+ "sliding_attention",
76
+ "full_attention",
77
+ "sliding_attention",
78
+ "sliding_attention",
79
+ "sliding_attention",
80
+ "sliding_attention",
81
+ "sliding_attention",
82
+ "full_attention",
83
+ "sliding_attention",
84
+ "sliding_attention",
85
+ "sliding_attention",
86
+ "sliding_attention",
87
+ "sliding_attention",
88
+ "full_attention",
89
+ "sliding_attention",
90
+ "sliding_attention",
91
+ "sliding_attention",
92
+ "sliding_attention",
93
+ "sliding_attention",
94
+ "full_attention"
95
+ ],
96
+ "max_position_embeddings": 262144,
97
+ "model_type": "gemma4_text",
98
+ "moe_intermediate_size": null,
99
+ "num_attention_heads": 32,
100
+ "num_experts": null,
101
+ "num_global_key_value_heads": 4,
102
+ "num_hidden_layers": 60,
103
+ "num_key_value_heads": 16,
104
+ "num_kv_shared_layers": 0,
105
+ "pad_token_id": 0,
106
+ "rms_norm_eps": 1e-06,
107
+ "rope_parameters": {
108
+ "full_attention": {
109
+ "partial_rotary_factor": 0.25,
110
+ "rope_theta": 1000000.0,
111
+ "rope_type": "proportional"
112
+ },
113
+ "sliding_attention": {
114
+ "rope_theta": 10000.0,
115
+ "rope_type": "default"
116
+ }
117
+ },
118
+ "sliding_window": 1024,
119
+ "tie_word_embeddings": true,
120
+ "top_k_experts": null,
121
+ "use_bidirectional_attention": "vision",
122
+ "use_cache": true,
123
+ "use_double_wide_mlp": false,
124
+ "vocab_size": 262144,
125
+ "vocab_size_per_layer_input": 262144
126
+ },
127
+ "tie_word_embeddings": true,
128
+ "transformers_version": "5.5.0",
129
+ "use_cache": false,
130
+ "video_token_id": 258884,
131
+ "vision_config": {
132
+ "_name_or_path": "",
133
+ "architectures": null,
134
+ "attention_bias": false,
135
+ "attention_dropout": 0.0,
136
+ "chunk_size_feed_forward": 0,
137
+ "default_output_length": 280,
138
+ "dtype": "bfloat16",
139
+ "global_head_dim": 72,
140
+ "head_dim": 72,
141
+ "hidden_activation": "gelu_pytorch_tanh",
142
+ "hidden_size": 1152,
143
+ "id2label": {
144
+ "0": "LABEL_0",
145
+ "1": "LABEL_1"
146
+ },
147
+ "initializer_range": 0.02,
148
+ "intermediate_size": 4304,
149
+ "is_encoder_decoder": false,
150
+ "label2id": {
151
+ "LABEL_0": 0,
152
+ "LABEL_1": 1
153
+ },
154
+ "max_position_embeddings": 131072,
155
+ "model_type": "gemma4_vision",
156
+ "num_attention_heads": 16,
157
+ "num_hidden_layers": 27,
158
+ "num_key_value_heads": 16,
159
+ "output_attentions": false,
160
+ "output_hidden_states": false,
161
+ "patch_size": 16,
162
+ "pooling_kernel_size": 3,
163
+ "position_embedding_size": 10240,
164
+ "problem_type": null,
165
+ "return_dict": true,
166
+ "rms_norm_eps": 1e-06,
167
+ "rope_parameters": {
168
+ "rope_theta": 100.0,
169
+ "rope_type": "default"
170
+ },
171
+ "standardize": true,
172
+ "use_clipped_linears": false
173
+ },
174
+ "vision_soft_tokens_per_image": 280
175
+ }
generation_config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 2,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 1,
6
+ 106
7
+ ],
8
+ "pad_token_id": 0,
9
+ "temperature": 1.0,
10
+ "top_k": 64,
11
+ "top_p": 0.95,
12
+ "transformers_version": "5.5.0"
13
+ }
model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1dd1e17063318be65eab9da8b6dfb7c3c0657a0740eba0dd263fe834034a6f84
3
+ size 49923154850
model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61970f7652225b099cb5f7812ddf2bc93ab0c1bd7cd3a5481c8551b16f3ec7bc
3
+ size 12623183414
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
processor_config.json ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "audio_ms_per_token": 40,
3
+ "audio_seq_length": 750,
4
+ "feature_extractor": {
5
+ "dither": 0.0,
6
+ "feature_extractor_type": "Gemma4AudioFeatureExtractor",
7
+ "feature_size": 128,
8
+ "fft_length": 512,
9
+ "fft_overdrive": false,
10
+ "frame_length": 320,
11
+ "hop_length": 160,
12
+ "input_scale_factor": 1.0,
13
+ "max_frequency": 8000.0,
14
+ "mel_floor": 0.001,
15
+ "min_frequency": 0.0,
16
+ "padding_side": "right",
17
+ "padding_value": 0.0,
18
+ "per_bin_mean": null,
19
+ "per_bin_stddev": null,
20
+ "preemphasis": 0.0,
21
+ "preemphasis_htk_flavor": true,
22
+ "return_attention_mask": true,
23
+ "sampling_rate": 16000
24
+ },
25
+ "image_processor": {
26
+ "do_convert_rgb": true,
27
+ "do_normalize": false,
28
+ "do_rescale": true,
29
+ "do_resize": true,
30
+ "image_mean": [
31
+ 0.0,
32
+ 0.0,
33
+ 0.0
34
+ ],
35
+ "image_processor_type": "Gemma4ImageProcessor",
36
+ "image_seq_length": 280,
37
+ "image_std": [
38
+ 1.0,
39
+ 1.0,
40
+ 1.0
41
+ ],
42
+ "max_soft_tokens": 280,
43
+ "patch_size": 16,
44
+ "pooling_kernel_size": 3,
45
+ "resample": 3,
46
+ "rescale_factor": 0.00392156862745098
47
+ },
48
+ "image_seq_length": 280,
49
+ "processor_class": "Gemma4Processor",
50
+ "video_processor": {
51
+ "do_convert_rgb": true,
52
+ "do_normalize": true,
53
+ "do_rescale": true,
54
+ "do_resize": true,
55
+ "do_sample_frames": true,
56
+ "image_mean": [
57
+ 0.0,
58
+ 0.0,
59
+ 0.0
60
+ ],
61
+ "image_std": [
62
+ 1.0,
63
+ 1.0,
64
+ 1.0
65
+ ],
66
+ "max_soft_tokens": 70,
67
+ "num_frames": 32,
68
+ "patch_size": 16,
69
+ "pooling_kernel_size": 3,
70
+ "resample": 3,
71
+ "rescale_factor": 0.00392156862745098,
72
+ "return_metadata": false,
73
+ "video_processor_type": "Gemma4VideoProcessor"
74
+ }
75
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9ef315a49d437f8c1f649a1438dc74245710a37b265c20ed6814766a7c171fa7
3
+ size 32170324
tokenizer_config.json ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "audio_token": "<|audio|>",
3
+ "backend": "tokenizers",
4
+ "boa_token": "<|audio>",
5
+ "boi_token": "<|image>",
6
+ "bos_token": "<bos>",
7
+ "eoa_token": "<audio|>",
8
+ "eoc_token": "<channel|>",
9
+ "eoi_token": "<image|>",
10
+ "eos_token": "<eos>",
11
+ "eot_token": "<turn|>",
12
+ "escape_token": "<|\"|>",
13
+ "etc_token": "<tool_call|>",
14
+ "etd_token": "<tool|>",
15
+ "etr_token": "<tool_response|>",
16
+ "extra_special_tokens": [
17
+ "<|video|>"
18
+ ],
19
+ "image_token": "<|image|>",
20
+ "is_local": true,
21
+ "mask_token": "<mask>",
22
+ "max_length": 8192,
23
+ "model_max_length": 1000000000000000019884624838656,
24
+ "model_specific_special_tokens": {
25
+ "audio_token": "<|audio|>",
26
+ "boa_token": "<|audio>",
27
+ "boi_token": "<|image>",
28
+ "eoa_token": "<audio|>",
29
+ "eoc_token": "<channel|>",
30
+ "eoi_token": "<image|>",
31
+ "eot_token": "<turn|>",
32
+ "escape_token": "<|\"|>",
33
+ "etc_token": "<tool_call|>",
34
+ "etd_token": "<tool|>",
35
+ "etr_token": "<tool_response|>",
36
+ "image_token": "<|image|>",
37
+ "soc_token": "<|channel>",
38
+ "sot_token": "<|turn>",
39
+ "stc_token": "<|tool_call>",
40
+ "std_token": "<|tool>",
41
+ "str_token": "<|tool_response>",
42
+ "think_token": "<|think|>"
43
+ },
44
+ "pad_to_multiple_of": null,
45
+ "pad_token": "<pad>",
46
+ "pad_token_type_id": 0,
47
+ "padding_side": "right",
48
+ "processor_class": "Gemma4Processor",
49
+ "soc_token": "<|channel>",
50
+ "sot_token": "<|turn>",
51
+ "stc_token": "<|tool_call>",
52
+ "std_token": "<|tool>",
53
+ "str_token": "<|tool_response>",
54
+ "stride": 0,
55
+ "think_token": "<|think|>",
56
+ "tokenizer_class": "GemmaTokenizer",
57
+ "truncation_side": "right",
58
+ "truncation_strategy": "longest_first",
59
+ "unk_token": "<unk>"
60
+ }