Dokümantasyon
ufakzeka-1’i kendi bilgisayarınızda çalıştırmak için gereken her şey. Model standart Qwen3 mimarisindedir; transformers ile ek kod gerekmez. GGUF dosyaları için llama.cpp’ye küçük bir yama uygulamanız gerekir.
Hızlı başlangıç
Python. Sohbet biçimini apply_chat_template uygular; sistem mesajı vermeyin.
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("ufakai/ufakzeka-1")
model = AutoModelForCausalLM.from_pretrained("ufakai/ufakzeka-1")
msgs = [{"role": "user", "content": "Merhaba, sen kimsin?"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt")
out = model.generate(ids, max_new_tokens=520, do_sample=True, temperature=0.3, top_p=0.9, top_k=40)
print(tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True))Önce q8_0 dosyasını indirin, sonra yamalı llama.cpp ile çalıştırın (yama için aşağıya bakın). Bayraklar önerilen örnekleme ayarlarıdır.
hf download ufakai/ufakzeka-1-GGUF ufakzeka-1-q8_0.gguf --local-dir .
llama-cli -m ufakzeka-1-q8_0.gguf \
--temp 0.3 --top-k 40 --top-p 0.9 --min-p 0 \
--repeat-penalty 1.0 --dry-multiplier 0 -n 520llama-server, sohbet tamamlama biçiminde bir HTTP uç noktası açar. Demo sitesi de böyle çalışmaktadır: 2 vCPU’lu bir sunucuda q8_0 ile tek istekte saniyede 137 token, iki eşzamanlı istekte 70’er token.
llama-server -m ufakzeka-1-q8_0.gguf --port 8080 \
--temp 0.3 --top-k 40 --top-p 0.9 --repeat-penalty 1.0 --dry-multiplier 0
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "Merhaba, sen kimsin?"}], "max_tokens": 520}'Dosyalar
| Dosya | Ne için | Boyut | Not |
|---|---|---|---|
ufakai/ufakzeka-1 | Sohbet modeli, transformers | Bu sayfadaki örneklerin kullandığı model. Model kartı buradadır. | |
ufakai/ufakzeka-1-base | Temel model, transformers | Ön eğitim sonrası ağırlıklar; ince ayar ve araştırma için. | |
ufakzeka-1-f16.gguf | llama.cpp, referans | 367 MB | transformers ile aynı tokenizasyon; ortalama logit farkı 0,002 nat; sekiz soruluk açgözlü çözümleme (greedy decoding) testinde birebir aynı cevaplar. |
ufakzeka-1-q8_0.gguf | llama.cpp, önerilen | 196 MB | Aynı tokenizasyon; 0,03 nat; aynı testte birebir aynı cevaplar. |
- SHA-256 · ufakzeka-1-f16.gguf
d1e711e473c88bd5eecc06030e3a8832596a234e898df912d06960426c2e38b8- SHA-256 · ufakzeka-1-q8_0.gguf
6a06fbffe77b8c70ee084ce8901edaaaeec4c23fd7360296259a78111facdf5e
4 bitlik dosya yayımlanmadı: aynı modelin daha önceki bir kontrol noktasında 4 bit kuantizasyon (quantization) perplexity’yi yüzde 5 kötüleştirdi ve cevapları değiştirdi.
Örnekleme ayarları
| Ayar | Değer | Neden |
|---|---|---|
temperature | 0,3 | Demo bu değerle çalışmaktadır; 0,45 daha kötü sonuç verdi. |
top_p / top_k | 0,9 / 40 | Demo ile aynı. |
repeat_penalty | 1,0 (kapalı) | Tekrarlanan rakam tokenlarını bastırıp sütun aritmetiğini bozmaktadır. |
DRY | 0 (kapalı) | Aynı nedenle. |
max_new_tokens | en az 420 | Aritmetik adım adım ve uzun yazılır; bu bilinçli bir tercihtir. Örneklerde 520. |
sistem istemi | yok | Model yalnızca kullanıcı ve asistan turlarıyla eğitildi; sistem mesajı (system prompt) görmedi. |
Sohbet biçimi
Sohbet biçimi ChatML’dir: her tur <|im_start|> ile açılır, rol adı ve satır sonu gelir, <|im_end|> ile kapanır. Modelin cevabı için <|im_start|>assistant satırı eklenir. transformers’taki apply_chat_template ve llama.cpp bunu kendiliğinden yapar; kendi sunucunuzu yazıyorsanız istem tam olarak şöyle görünmelidir:
<|im_start|>user
Merhaba, sen kimsin?<|im_end|>
<|im_start|>assistant
llama.cpp yaması
Tokenizer, Türkçe metinle eğitilmiş bayt düzeyinde bir BPE’dir (byte-level byte pair encoding). Ön tokenizer (pre-tokenizer) olarak Qwen2 deseni, İngilizce kısaltma kuralı çıkarılarak kullanılmıştır; o kural “Ankara’da” gibi kesme işaretli sözcükleri eğitimdekinden farklı bölüyordu. GGUF dosyası bu yüzden tokenizer.ggml.pre = "ufakzeka" değerini taşımaktadır ve bu adı tanımayan llama.cpp sürümleri dosyayı şu hatayla açmaz:
unknown pre-tokenizer type: 'ufakzeka'Yama 4 dosyada 15 satır değiştirir ve dosyaları değil, llama.cpp’yi düzeltir. Uygulamak için:
hf download ufakai/ufakzeka-1-GGUF llama.cpp-ufakzeka-pretok.patch --local-dir .
git clone https://github.com/ggml-org/llama.cpp && cd llama.cpp
git apply ../llama.cpp-ufakzeka-pretok.patch
cmake -B build && cmake --build build --config Release -j
./build/bin/llama-cli -m ../ufakzeka-1-q8_0.gguf --temp 0.3 --top-k 40 --top-p 0.9 --repeat-penalty 1.0 --dry-multiplier 0 -n 520Yama, eylül 2026 tarihli llama.cpp kaynağına göre yazıldı; temiz uygulanmazsa değişiklikler elle yapılacak kadar küçüktür. Yama llama.cpp projesine alındığında Ollama ve LM Studio da çalışacak. Yama dosyası.
Dosyayı qwen2 kuralıyla adlandırmak her yerde açılmasını sağlardı, ama o kural kesme işaretinden sonra d, t, s, m ve v ile başlayan her eki böler (Ankara’da → ’d + a). Kesme işaretinin yoğun olduğu kısa bir örnekte (yaklaşık 3.500 karakter) perplexity 15,4’ten 19,0’a çıktı ve altı sorudan ikisinin cevabı değişti; bu yüzden öyle bir dosya yayımlanmadı.
Neyi yapamaz
Bu bir araştırma modelidir, asistan değil. Bilmediği bilgileri uydurur, kod yazamaz, ikinci turda doğru bir hesabı bozabilir, uzun bir hikâyeden sonra kimin kim olduğunu karıştırabilir ve 2026 yazından sonrasını bilmez. Ölçülmüş sınırlar ana sayfada ve model kartında sayılarıyla yazılıdır.
Lisans ve veri
Ağırlıklar Apache-2.0 lisanslıdır. Eğitim verisinin tamamı ticari kullanıma izin veren lisanslı kaynaklardandır; kaynak listesi, lisansları ve dışarıda bırakılanlar model kartındadır. Model kartı.