CoolFace
Modelpublic

serda-dev/Jamba2-3B-Turkish

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
1likes118downloads
Model Card

Alt Text

Tekrardan kontrol ediliyor... Beklemede kalın.

Jamba2-3B Turkish CPT + SFT

Bu model, `ai21labs/AI21-Jamba2-3B` temel modeli üzerine Türkçe odaklı continued pre-training (CPT) ve ardından instruction supervised fine-tuning (SFT) uygulanarak hazırlanmıştır.

Eğitim hattı üç aşamadan oluşur:

  1. 1.Temel model: ai21labs/AI21-Jamba2-3B
  2. 2.Türkçe CPT modeli: serda-dev/Jamba2-3B-Turkish
  3. 3.Bu model: CPT modeli üzerine Türkçe instruction verileriyle QLoRA SFT uygulanmış sürüm

Model Türkçe sohbet, komut takip etme, soru-cevap, açıklama, özetleme ve genel metin üretimi için tasarlanmıştır.

Model Details

FieldValue
Model typeJamba causal language model
Original base modelai21labs/AI21-Jamba2-3B
CPT checkpointserda-dev/Jamba2-3B-Turkish
LanguageTurkish (tr)
TaskText generation, chat, instruction following
ArchitectureJambaForCausalLM
Hidden size2560
Layers28
Attention heads20
Vocabulary size69,632
Saved dtypebfloat16
SFT context length1024 tokens

Training Overview

1. Continued Pre-Training

İlk aşamada ai21labs/AI21-Jamba2-3B, Türkçe dil dağılımına uyum sağlaması için continued pre-training ile eğitildi. CPT aşamasında yaklaşık 200 GB düzeyinde Türkçe ağırlıklı metin verisi kullanıldı.

CPT süreci yalnızca Türkçe metinle sınırlı tutulmadı. Türkçe adaptasyon sırasında modelin genel muhakeme, matematik, yapısal metin ve kod benzeri bağımlılıkları kaybetmemesi için Türkçe veriyle birlikte seçilmiş İngilizce kaynaklar da karıştırıldı.

Repo konfigürasyonundaki dört fazlı CPT müfredatı:

PhasePurposeTurkish targetEnglish / auxiliary target
1Turkish bridge30 GB10 GB DCLM + 5 GB English Wikipedia
2High-quality transfer30 GB10 GB FineWeb-Edu (score >= 4.0)
3Reasoning preservation30 GB10 GB OpenWebMath
4Annealing / code preservation30 GB10 GB StarCoder Python

Türkçe ana kaynak:

text
***Private Repo***

CPT tarafında uzun JSONL/GZ shard'ları stream edilerek okunmuş, tokenlar tekrar kullanılabilir token cache shard'larına paketlenmiş ve eğitim checkpoint/resume destekli şekilde yürütülmüştür.

2. Supervised Fine-Tuning

CPT modeli üzerine Türkçe instruction verileriyle SFT uygulanmıştır. SFT eğitimi QLoRA ile yapılmış, ardından adapter tam modelle birleştirilebilir şekilde kaydedilmiştir.

SFT verisi farklı şemalardan tek bir eğitim formatına normalize edilmiştir:

  • prompt_answer
  • system_prompt_answer
  • messages

Yerel veri hazırlama raporundaki SFT istatistikleri:

MetricValue
Source files processed5
Rows seen2,882,664
Rows written2,882,519
Rows skipped145
Accepted SFT rows2,882,519
prompt_answer rows2,605,516
messages rows271,424
system_prompt_answer rows5,579
JSONL shards46

Kullanılan kaynak şemalar arasında system/user/assistant, messages + answer, talimat/giriş/çıktı, soru/cevap ve input/output biçimleri bulunur.

SFT Hyperparameters

SettingValue
MethodQLoRA
Quantization during training4-bit NF4
Double quantizationEnabled
Compute dtypebfloat16
LoRA rank16
LoRA alpha32
LoRA dropout0.05
Target modulesq_proj, k_proj, v_proj, o_proj, up_proj, down_proj, gate_proj
Optimizeradamw_8bit
Learning rate2e-5
Weight decay0.01
Warmup steps100
Micro batch size1
Gradient accumulation8
Max sequence length1024
Max steps5,000
Total SFT tokens40,960,000
Training timeabout 4.44 hours

Evaluation

Model Turkish MMLU üzerinde yerel olarak kontrol edilmiştir. Bu sonuç kapsamlı bir benchmark iddiası değil, aynı eval scriptiyle alınmış pratik bir doğrulama sonucudur.

DatasetSplit/FileQuestionsAccuracyAnswered Accuracy
alibayram/turkish_mmlutrain-00000-of-00001.parquet2,00036.5%36.70%

Not: Çoktan seçmeli benchmarklarda prompt/parse formatı sonuca hassastır. Modeli farklı bir chat template, adapter merge veya generation ayarıyla değerlendirirken aynı evaluation formatının korunması önerilir.

Intended Use

Bu model aşağıdaki kullanımlar için uygundur:

  • Türkçe sohbet ve asistan uygulamaları
  • Türkçe instruction-following prototipleri
  • Türkçe soru-cevap ve açıklama üretimi
  • Yerel RAG veya agent sistemlerinde Türkçe yanıt üretimi
  • Türkçe veriyle daha ileri fine-tuning çalışmaları

Out-of-Scope Use

Model tıbbi, hukuki, finansal veya güvenlik açısından kritik kararlar için tek başına otorite olarak kullanılmamalıdır. Zararlı içerik üretimi, kişisel veri çıkarma, kimlik avı, kötüye kullanım otomasyonu veya yasa dışı amaçlar kapsam dışıdır.

Usage

Full merged model

Bu repo tam model ağırlıklarını içeriyorsa doğrudan AutoModelForCausalLM ile yüklenebilir:

python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "serda-dev/Jamba2-3B-Turkish-SFT"  # replace with this repo id

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    torch_dtype=torch.bfloat16,
    attn_implementation="sdpa",
    trust_remote_code=True,
)
model.eval()

messages = [
    {"role": "system", "content": "Sen Türkçe yanıt veren yardımcı bir asistansın."},
    {"role": "user", "content": "Bu model ne için kullanılır?"},
]

input_ids = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt",
).to(model.device)

with torch.no_grad():
    output_ids = model.generate(
        input_ids,
        max_new_tokens=256,
        do_sample=True,
        temperature=0.7,
        top_p=0.9,
        repetition_penalty=1.05,
    )

print(tokenizer.decode(output_ids[0][input_ids.shape[-1]:], skip_special_tokens=True))

PEFT adapter version

Bu repo yalnızca LoRA/QLoRA adapter ağırlıklarını içeriyorsa base model ile birlikte yükleyin:

python
import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

base_model_id = "serda-dev/Jamba2-3B-Turkish"
adapter_id = "serda-dev/Jamba2-3B-Turkish-SFT"  # replace with this repo id

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_use_double_quant=True,
    bnb_4bit_compute_dtype=torch.bfloat16,
)

tokenizer = AutoTokenizer.from_pretrained(adapter_id)
model = AutoModelForCausalLM.from_pretrained(
    base_model_id,
    device_map="auto",
    torch_dtype=torch.bfloat16,
    quantization_config=bnb_config,
    attn_implementation="sdpa",
    trust_remote_code=True,
)
model = PeftModel.from_pretrained(model, adapter_id)
model.eval()

Prompt Format

Model chat template ile eğitilmiştir. tokenizer.apply_chat_template(...) kullanılması önerilir.

Örnek format:

text
<|im_start|>system
Sen Türkçe yanıt veren yardımcı bir asistansın.<|im_end|>
<|im_start|>user
Soru veya talimat<|im_end|>
<|im_start|>assistant

Limitations and Risks

  • Model Türkçe kullanım için optimize edilmiştir; diğer dillerde performans değişebilir.
  • SFT verisi farklı kaynak ve şemalardan dönüştürüldüğü için veri kalitesi homojen değildir.
  • Model yanlış, eksik veya uydurma bilgi üretebilir.
  • Kod, sağlık, hukuk ve finans gibi alanlarda uzman doğrulaması gerekir.
  • Safety alignment kapsamı sınırlıdır; üretimler uygulama katmanında filtrelenmelidir.
  • Eğitim verisi lisansları ve dağıtım koşulları, modeli public olarak paylaşmadan önce ayrıca doğrulanmalıdır.

Reproducibility Notes

CPT ve SFT süreçlerinde kullanılan yerel repo klasörleri:

  • https://github.com/serda-dev/mamba-turkish-cptraining/tree/jamba-cpt
  • https://github.com/serda-dev/jamba-sft-turkish

Citation

Upstream model:

bibtex
@misc{ai21jamba2,
  title = {AI21 Jamba2-3B},
  author = {AI21 Labs},
  url = {https://huggingface.co/ai21labs/AI21-Jamba2-3B}
}

Framework Versions

  • Transformers: 4.57.6
  • PEFT: 0.18.1
  • Training dtype: bfloat16