Sohbet, yoklama, ölçüm ve değerlendirme¶
Bir modeli hazırladıktan sonra onu makinenizde dört komutla kullanırsınız: chat terminalde modelle konuşur, probe modelin bir aygıtta derlenip çalıştığını yoklar, bench hızını ölçer, eval ise nicemlemenin (quantization) yanıtları ne kadar değiştirdiğini ölçer. Beşinci komut publish, modeli Hugging Face Hub'a yükler. Bunların hiçbiri model indirmez veya dönüştürmez; henüz bir model hazırlamadıysanız Model hazırlama sayfasından başlayın.
Artifact'i seçmek¶
Bu sayfadaki her komut aynı türden bir başvuru alır: yonga list çıktısındaki hazırlanmış model (artifact) kimliği, artifact'in dizini ya da onu hazırlarken kullandığınız Hugging Face model kimliği.
Bir model kimliği çoğu zaman birden fazla artifact'e karşılık gelir; örneğin biri NPU, biri GPU için hazırlanmış olabilir. yonga bu durumda hazır olanların en yenisini alır ve hangisini seçtiğini söyler:
Using ID (PROFILE, DEVICE), the newest of N ready artifacts for MODEL; pass the artifact id to choose another.
Belirli bir artifact istiyorsanız kimliğini verin. Bu makinede hiç hazırlanmamış bir model kimliği, önce çalıştırmanız gereken yonga prepare komutuyla birlikte reddedilir; yan etki olarak hiçbir şey dönüştürülmez.
Terminalde sohbet¶
Hazırlanmış bir modelle sohbet etmek için şunu çalıştırın:
yonga önce modeli yükler (derler), ardından model, aygıt, profil, çıktı sınırı, örnekleme ayarları ve derleme önbelleğini gösteren bir açılış paneli çizer. Seçilen aygıtta yüklenemeyen bir model chat komutunu orada, nedenini söyleyen bir çıkış koduyla sonlandırır; örneğin NPU derleyicisi modeli reddettiğinde 51.
Aşağıdaki, referans makinenin NPU'sunda Qwen3-0.6B ile yapılmış gerçek bir oturumdur (kısaltılmıştır):
Loading the model on NPU...
╭──────────────────────────────── Local Chat ────────────────────────────────╮
│ Model cc24636a2f49356a │
│ Source Qwen/Qwen3-0.6B@c1899de289a0 │
│ Profile npu-int4-sym-g128 │
│ Device NPU │
│ Max output 4096 tokens │
│ Reasoning display hidden │
│ Compile cache enabled │
│ … │
│ Chat profile chat-qwen3 │
│ Thinking mode off (enable_thinking=false) │
│ Sampling temp 0.7 • top-p 0.8 • top-k 20 │
│ Metrics footer on │
╰──────────────────────────── /help for commands ────────────────────────────╯
Generating a reply...
╭────────────────────────────────────────────────────────────────────────────╮
│ An NPU is a term used in the field of computing and networking, │
│ referring to a type of network protocol or data format. │
╰────────────────────────────────────────────────────────────────────────────╯
TTFT 391 ms • 44.3 tok/s • TPOT 22.6 ms/token • 22 → 27 tokens
Goodbye.
Yanıt yanlış; INT4'e nicemlenmiş 0.6B'lik bir model için bu olağan dışı değil. Nicemlemenin bedelini sayıya dökmek için eval bölümüne bakın.
Seçenekler¶
| Seçenek | Ne yapar |
|---|---|
--device auto\|npu\|gpu\|cpu |
Modelin çalışacağı aygıt. Verilmezse yonga önce ayarlarınızdaki varsayılan aygıtı, ardından artifact'in hazırlandığı ve yoklandığı aygıtı kullanır. |
--max-new-tokens N |
Yanıt başına çıktı token sınırı. Varsayılan değer modelin sohbet profilinden gelir (yukarıdaki oturumda 4096). |
--temperature X |
Örnekleme sıcaklığı. 0 açgözlü (greedy) kod çözme demektir. |
--top-p X |
Çekirdek (nucleus) örnekleme olasılığı. |
--top-k N |
Top-k örnekleme sınırı. |
--system TEXT |
Oturumun tamamı için sistem istemi. |
--show-reasoning |
Modelin akıl yürütme bloklarını gizlemek yerine gösterir (aşağıya bakın). |
Örnekleme varsayılanları, uyumluluk kayıt defterindeki (registry) sohbet profilinden gelir ve açılış panelinde görünür. chat, --json kabul etmez: bir sohbet tek bir belge değildir. Makinenin okuyabileceği çıktı için yonga bench --json kullanın.
Sohbet içindeki komutlar¶
Mesaj göndermek yerine komut çalıştırmak için satıra / ile başlayın. /help bu listeyi yazdırır.
| Komut | Ne yapar |
|---|---|
/help |
Komut listesini gösterir. |
/reset |
Sohbet geçmişini unutur (sistem istemi korunur). |
/clear |
Ekranı temizler. |
/tokens N |
Bir yanıttaki en fazla token sayısını ayarlar. |
/temp X |
Örnekleme sıcaklığını 0.0 ile 2.0 arasında ayarlar (/temperature da çalışır). |
/top-p X |
Çekirdek örneklemeyi 0.0 ile 1.0 arasında ayarlar. |
/top-k N |
Top-k örneklemeyi ayarlar; 0 kapatır. |
/reasoning on\|off |
Modelin akıl yürütme bloğunu gösterir veya gizler. |
/stats on\|off |
Ölçüm satırını gösterir veya gizler. |
/model |
Yüklü modeli, aygıtı ve profili yeniden gösterir. |
/exit |
Sohbetten çıkar (/quit, /q ve /bye da çalışır). |
Akıl yürütme ve düşünme modu¶
Bazı modeller (örneğin Qwen3) yanıttan önce gizli bir akıl yürütme bloğu yazar. yonga bu bloğu varsayılan olarak çıkarır ve yalnızca yanıtı gösterir. --show-reasoning ile akıl yürütme, etiketleri olmadan, yanıtın üstünde soluk bir panelde görünür. Sohbet şablonunda düşünme anahtarı olan bir modelde --show-reasoning, oturum için düşünme modunu da açar.
/reasoning on yalnızca neyin gösterileceğini değiştirir. Oturumda düşünme modu kapalıysa model gösterilecek bir akıl yürütme üretmeyebilir; yonga bunu söyler ve sohbeti --show-reasoning ile yeniden başlatmanızı önerir.
Ölçüm satırı¶
chat her yanıttan sonra şuna benzer soluk bir satır yazdırır:
Bunlar sırasıyla ilk token süresi, üretim hızı, çıktı token'ı başına süre ve token cinsinden istem ile yanıt uzunluklarıdır. /stats off satırı gizler. Terimler bench bölümünde açıklanıyor.
Yanıtı durdurmak, çıkmak¶
- Yanıt üretilirken Ctrl-C üretimi bir sonraki token'da durdurur, yanıtı ve onu isteyen mesajı birlikte atar ve sizi giriş satırına geri döndürür. Üretim durmadan basılan ikinci Ctrl-C,
chatkomutunu sonlandırır (çıkış kodu 60). - Giriş satırındayken Ctrl-C veya Ctrl-D,
/exitya da yönlendirilmiş girdinin bitmesi sohbetten çıkarır.
Son mesaj başarısız olduysa ve hemen ardından çıkarsanız, chat 0 yerine o hatanın koduyla çıkar; böylece bir betik bunu fark edebilir.
İpucu
chat standart girdiyi okur, bu yüzden hızlı bir denetimi betiğe dökebilirsiniz:
Not
Giriş satırına yazdıklarınız, ok tuşlarıyla geri çağırabilmeniz için ~/.local/share/yonga/chat-history/ altında istem geçmişi olarak tutulur. Yanıtlar saklanmaz. Bkz. Gizlilik ve güvenlik.
probe ile aygıtı yoklamak¶
probe, hazırlanmış bir artifact'i bir aygıtta derler ve neyin çalıştığını raporlar. Tokenizer'ı okur, dil modelini derler ve ham derlemenin tek başına karar veremediği yerlerde gerçek OpenVINO GenAI hattını (pipeline) kurup birkaç token üretir. NPU'da bu her LLM için geçerlidir.
NPU ✓ ok
· language deferred 579 ms the raw compile is not conclusive here; the GenAI pipeline decides
✓ tokenizer ok 28 ms
✓ smoke test ok 2.0 s generated 24 token(s)
Varsayılan --device auto'dur ve aday olan her aygıtı dener. Bir aygıt başarısız olurken bir diğeri geçerse, başarısız olan yalnızca bilgi amaçlı raporlanır. --all-submodels yalnızca dil modelini değil, her alt modeli derler. --json raporu JSON olarak verir.
Büyük modeller: --quick ve --timeout¶
Küçük bir modelde hattın kurulması birkaç saniye sürer. NPU'daki büyük bir modelde ise bu tam bir NPU derlemesidir; on dakikayı rahatça aşabilir ve birkaç GiB RAM kullanabilir. İki seçenek bu süreyi kısaltır; birlikte kullanılamazlar:
yonga probe ARTIFACT --device npu --quick # hattı hiç kurmaz
yonga probe ARTIFACT --device npu --timeout 600 # hattı alt süreçte kurar, 600 sn sonra durdurur
İkisi de aygıtı inconclusive (sonuçsuz) bırakabilir: ne çalışıyor ne de başarısız sayılır. Hiçbir aygıt geçmediğinde ve hiçbiri kesin olarak başarısız olmadığında probe 2 koduyla çıkar (--json çıktısında "inconclusive": true):
NPU ! inconclusive
· language deferred 643 ms the raw compile is not conclusive here; the GenAI pipeline decides
✓ tokenizer ok 27 ms
…
- Settle it by building the pipeline: yonga probe … --device npu
- Or bound the wait: yonga probe … --device npu --timeout SECONDS
Sonucu netleştirmek için komutu --quick olmadan ya da daha uzun bir --timeout ile yeniden çalıştırın.
| Çıkış kodu | Anlamı |
|---|---|
| 0 | En az bir aygıt geçti. |
| 2 | Sonuçsuz: hiçbir aygıt geçmedi, hiçbiri de kesin olarak başarısız olmadı. |
| 51 ve diğerleri | İlk kesin hatanın kodu; örneğin NPU derleyicisi modeli reddettiğinde 51. |
probe sizin yerinize aygıt değiştirmez. Ayrıntılar probe belirtiminde.
bench ile hız ölçmek¶
bench sabit bir istem kümesini çalıştırır, yeniden üretilebilir bir JSON sonucu kaydeder ve bir özet yazdırır.
| Seçenek | Varsayılan | Ne yapar |
|---|---|---|
--suite |
standard |
quick (tek kısa istem), standard (kısa, orta ve uzun bağlamlı istemler) veya long (buna daha uzun bir çözümleme istemi ekler). |
--runs N |
3 | İstem başına ölçülen çalıştırma sayısı. |
--warmups N |
1 | İstem başına ısınma çalıştırması. Kaydedilir ama ortalamalara katılmaz. |
--device |
artifact'in aygıtı | auto, npu, gpu veya cpu. |
--json |
Sonucun tamamını JSON olarak verir; dosya yolu result_path alanındadır. |
Sonuçların karşılaştırılabilir olması için her çalıştırma açgözlü kod çözme kullanır ve en fazla 256 yeni token üretir. Aşağıdaki, referans makinenin (Intel Core Ultra 7 268V, yonga 0.5.0) NPU'sundaki standart performans ölçümüdür:
Model Qwen/Qwen3-0.6B
Artifact cc24636a2f49356a
Device NPU
Profile npu-int4-sym-g128
Suite standard (3 runs, 1 warmup)
Max new tokens 256
Compile 858 ms
Prompt In tok Out tok TTFT tok/s TPOT Wall
──────────────────────────────────────────────────────────────────────────
short-instruction 31 256 164.4 ms 68.2 14.7 ms 3.9 s
medium-explanation 104 256 164.7 ms 67.7 14.8 ms 3.9 s
long-context 623 256 165.0 ms 67.7 14.8 ms 3.9 s
Saved: …/benchmarks/20261011T170311Z-npu-standard-96ace441.json
Sütunlar şöyle okunur:
| Sütun | Anlamı |
|---|---|
| In tok / Out tok | Token cinsinden istem uzunluğu ve üretilen uzunluk. |
| TTFT | İlk token süresi (time to first token): istemin verilmesinden ilk üretilen token'a kadar geçen süre. İstemin tamamının okunmasını kapsar; yanıt başlamadan önce hissettiğiniz gecikme budur. |
| tok/s | Saniyede üretilen token. |
| TPOT | İlkinden sonraki her çıktı token'ı için geçen süre (time per output token); kabaca üretim hızının tersidir. |
| Wall | Bir çalıştırmanın toplam süresi. |
| Compile | İlk çalıştırmadan önce modelin derlenip yüklenme süresi. |
JSON dosyası ~/.local/share/yonga/benchmarks/ altına kaydedilir. Donanımı, paket sürümlerini, aygıt özelliklerini, üretim ayarlarını, her istemin özetini (hash) ve her bir çalıştırmayı kaydeder; böylece sonraki bir sonuç onunla adil biçimde karşılaştırılabilir. bench başarıda 0, bazı çalıştırmalar başarısız olduğunda 2, hiçbir çalıştırma ölçüm üretemediğinde 52 koduyla çıkar.
eval ile nicemlemenin bedelini ölçmek¶
bench bir artifact'in ne kadar hızlı olduğunu söyler; eval ise nicemlemenin modeli ne kadar değiştirdiğini. Aday modelin sonraki token tahminlerini, aynı ağırlıkların daha yüksek hassasiyetli bir referans artifact'inin tahminleriyle, aynı metni okuyarak karşılaştırır. Örnekleme yapılmadığından sonuç belirlenimcidir (deterministic).
Olağan akış, CPU'da neredeyse kayıpsız bir INT8 referans hazırlayıp INT4 artifact'inizi onunla karşılaştırmaktır:
yonga prepare Qwen/Qwen3-0.6B --device cpu --profile cpu-int8-asym-ref --yes
yonga list # iki artifact kimliğini not edin
yonga eval INT4_ARTIFACT --reference REF_ARTIFACT
Üç şey raporlar; hem toplamda hem de yerleşik metin derleminin her parçası için (düzyazı, teknik yazı, Python, aritmetik, diyalog, Türkçe ve diğerleri):
| Ölçüt | Anlamı |
|---|---|
| Mean KL | Referanstan ortalama KL ıraksaması, nat cinsinden. Düşük olan daha yakındır; 0 aynı demektir. Artifact'leri sıralarken bakılacak sayı budur. |
| Top-1 agreement | İkisinin en olası sonraki token'da ne sıklıkla anlaştığı. |
| Perplexity | Her artifact'in derlem üzerindeki şaşkınlık (perplexity) değeri ve adayın referansa göre değişimi. |
Örneğin proje, Qwen3.5-9B'yi bir INT8 referansa karşı şöyle ölçtü (PROFILE_COMPARISON.md):
npu-int4-sym-cw |
gpu-int4-asym-g128 |
|
|---|---|---|
| Mean KL (nat) | 0,1972 | 0,0799 |
| Top-1 agreement | %81,82 | %86,80 |
| Perplexity (referans 4,655) | 5,700 (+%22,44) | 4,983 (+%7,05) |
Seçenekler:
--device cpu(varsayılan) tam hassasiyette çalışır; böylece ölçtüğünüz fark nicemlemeden gelir.--device gpuGPU'nun gerçekte ne hesapladığını ölçer.--device npuyoktur: bir NPU artifact'i de diğerleri gibi CPU'da değerlendirilir.--corpus FILEkendi metninizi okur (yerleşik biçimde bir.jsonya da boş satırlardan bölünen düz.txt).--allow-different-sources, aynı modeli tutan farklı depolardan dönüştürülmüş artifact'leri karşılaştırır; örneğin bir GGUF sürümünü ve özgün ağırlıkları. yonga, kökene sizin kefil olduğunuzu kaydeder.--jsonsonucu JSON olarak verir.
Model 16 bit hassasiyette belleğe sığıyorsa referans olarak cpu-fp16-ref kullanın. Sonuç ~/.local/share/yonga/evaluations/ altına kaydedilir ve çıktı Saved: PATH ile biter. Daha fazlası eval belirtiminde.
Hugging Face Hub'a yayımlamak¶
publish, hazırlanmış bir artifact'i, manifest'ten üretilen bir model kartıyla Hub'a yükler: revizyonlarıyla köken, dışa aktarma ayarları, onarımlar, hangi aygıtların yoklamayı geçtiği ve her dosyanın SHA-256 özeti. Yalnızca siz çağırdığınızda çalışır; başka hiçbir komut bir şey yüklemez.
yonga publish ARTIFACT --repo you/model-openvino-int4 --dry-run # kart ve yükleme listesi, yükleme yok
yonga publish ARTIFACT --repo you/model-openvino-int4 # özel depo, önce sorar
- Ad alanına yazma yetkisi olan bir Hugging Face erişim belirteci (token) gerekir (
hf auth loginveyaHF_TOKEN); yoksa 21 koduyla durur (--dry-runyalnızca uyarır). --repoher zaman zorunludur.--publicvermediğiniz sürece depo özeldir; var olan bir depoya yalnızca--updateile yazılır.- Lisanslar önce Hub'da denetlenir. Türev çalışmayı yasaklayan bir lisans reddedilir; yonga'nın sınıflandıramadığı bir lisans için, onu okuduğunuzu beyan eden
--license-reviewedgerekir.--yesbunu asla kapsamaz. - Yerel yollar, kullanıcı adınız ve makine adınız yüklenmez.
Her denetim için publish belirtimine bakın.
Sonraki adımlar¶
- Modeli başka araçlara sunun: OpenAI uyumlu sunucu.
- Bir şey başarısız olduysa: Sorun giderme ve Çıkış kodları.
- Her komutun her seçeneği: Komut başvurusu.