yonga nasıl çalışır¶
yonga, bir Hugging Face depo kimliğini makinenizdeki bir Intel aygıtı için hazırlanmış ve
doğrulanmış bir OpenVINO modeline dönüştürür ve her seçimi neden yaptığını size söyler. Bu sayfa
bunun arkasındaki fikirleri açıklar: hazırlama hattı, aygıtın ve nicemleme (quantization)
profilinin nasıl seçildiği, hazırlanmış modelin (artifact) ne olduğu, yonga'nın uyumluluk
bilgisinin nereden geldiği, hataların nasıl bildirildiği ve yonga'nın bilerek asla yapmadığı
şeyler. Başlamak için bunların hiçbirini bilmeniz gerekmez, ama inspect ve
prepare çıktılarını okumayı çok kolaylaştırır.
Hazırlama hattı¶
yonga prepare MODEL önce bir hazırlama planı yazdırır ve pahalı bir işe başlamadan önce onayınızı
ister. Onayladığınızda yedi aşama çalışır; ilerleme satırları da aynı şekilde numaralanır:
| Aşama | Ne olur |
|---|---|
| 1/7 Inspecting source | Hub üst verisini okur (ağırlıkları değil): biçimler, mimari, parametre sayısı, lisans. Dallar ve etiketler değişmez bir commit'e çözümlenir. |
| 2/7 Resolving compatibility | Mimari için uyumluluk kayıt defteri (registry) kurallarını eşleştirir, aygıtı ve dönüştürme profilini seçer, bilinen onarımları öngörür. |
| 3/7 Preflight | Diski, geçici alanı, belleği, kimlik doğrulamayı, uzak kodu ve dışa aktarıcı paket sürümlerini denetler. Tamamlanamayacak bir iş, hiçbir şey indirilmeden reddedilir. |
| 4/7 Downloading | Yalnızca dönüştürmenin okuduğu dosyaları, sabitlenmiş commit'ten, olağan Hugging Face önbelleğine indirir. |
| 5/7 Converting | Profilin ayarlarıyla optimum-intel ve NNCF kullanarak dışa aktarır ve nicemler; sonuç geçici bir hazırlık (staging) dizinine yazılır. |
| 6/7 Validating / repairing | OpenVINO IR dosyalarının dökümünü çıkarır, tokenizer'ları geri okur ve yalnızca kayıt defterinde listelenmiş dar kapsamlı onarımları uygular. |
| 7/7 Probing runtime | Modeli hedef aygıtta derler ve duman testi olarak birkaç token üretir. |
Hazırlık dizini, ancak her aşama başarılı olduğunda, yapılan her şeyi kaydeden bir manifest ile birlikte hazır bir artifact olarak yerine taşınır. Başarısız bir iş geride yarım kalmış bir artifact bırakmaz; en fazla, inceleyebilmeniz için hazırlık dizinini saklar ve yerini söyler.
Referans makinede gerçek bir prepare çalıştırmasının plan başlığı (kısaltılmış):
Requested model Qwen/Qwen3-0.6B@c1899de289a04d12100db370d814…
Resolved source Qwen/Qwen3-0.6B
Revision c1899de289a0
Relationship original
Source format safetensors
Architecture qwen3 rule arch-qwen3
Task text-generation-with-past
Device decision NPU supported (tested) NPU was requested
explicitly; yonga never switches device on
its own.
Profile npu-int4-sym-g128
NPU group-wise INT4; the NPU default below
5B parameters
Quantization int4, group size 128, ratio 1, symmetric
Chosen because 751.6M parameters (Hugging Face Hub count
from safetensors headers) is below 5B:
npu-int4-sym-g128 is the NPU profile for
that size (evidence: tested).
Expected download 1.4 GiB only the files the conversion reads
…
Expected repairs
• ov-tokenizer-precision-string-casing
Her aşamanın ayrıntısı model hattı belirtiminde anlatılır. Pratik tarafı için Model hazırlama sayfasına bakın.
Aygıtlar¶
yonga, OpenVINO'nun bir Intel AI PC'de bildirdiği üç aygıtla çalışır: CPU, tümleşik GPU ve
NPU. prepare, --device auto, npu, gpu veya cpu alır; varsayılan auto'dur.
Otomatik seçim¶
--device auto ile yonga, OpenVINO'nun makinenizde bildirdiği aygıtları sıralar:
- Kayıt defterinin bu model için unsupported (desteklenmiyor) olarak işaretlediği aygıtlar elenir.
- Kalanlar, kayıt defterinin ne kadar iyi çalıştıklarını bildiğine göre sıralanır: önce
supported, sonraexperimental, sonraunknown. - Eşit derecede desteklenen aygıtlar varsayılan GPU, NPU, CPU sırasıyla alınır. Tümleşik GPU en geniş graf yelpazesini kabul eder, NPU en seçici olandır, CPU ise son çaredir.
- Kayıt defteri mimari için
officialveyatestedkanıtına dayanan bir aygıt öneriyorsa o aygıt en öne geçer.
Planın "Device decision" satırı, bu kurallardan hangisinin karar verdiğini söyler. Yerleşik kayıt
defterindeki her aile GPU'yu önerir; bu yüzden --device auto, NPU da çalışacak olsa genellikle
GPU için hazırlar. NPU'yu hedeflemek için açıkça isteyin.
Otomatik kipte seçilen aygıt, model onunla uyumlu olmadığı için yoklamayı geçemezse yonga nedenini
açıklar ve bir sonraki aygıtı denemeden önce size sorar (--yes bu soruyu evet diye yanıtlar).
Hata makinenin kendisinin bozuk olduğu anlamına geliyorsa, örneğin NPU aygıt düğümüne erişim izni
yoksa ya da bir sürücü başlatılamıyorsa, geri dönüş (fallback) yapmaz: durur, çünkü önce bunun
düzeltilmesi gerekir.
Açıkça istenen aygıt sessizce değiştirilmez¶
--device npu (ya da gpu veya cpu) bir tercih değil, bir talimattır. O aygıt modeli
çalıştıramıyorsa prepare durur ve bunun yerine ne çalıştırmanız gerektiğini söyler; sessizce başka
bir aygıt için hazırlamaz. Kayıt defteri, aygıtın modeli çalıştıramayacağını official ya da
tested kanıtla zaten biliyorsa prepare indirmeden önce reddeder. Her iki durumda da çıkış kodu
50'dir (yukarıdaki gibi makine bozuksa 10).
Bir artifact yalnızca gerçekten yoklamasını geçtiği aygıtlar için etiketlenir; yani yonga list
çıktısındaki bir "GPU" artifact'i, sizin GPU'nuzda derlenmiş ve metin üretmiş bir artifact'tir.
Profiller¶
Profil, adlandırılmış bir dönüştürme ayarları kümesidir: ağırlık biçimi, simetrik ya da asimetrik nicemleme, grup boyutu, 4 bite sıkıştırılan katmanların oranı ve OpenVINO GenAI için çalışma zamanı özellikleri. Adlar başlıca ayarları açıkça yazar:
| Adın parçası | Anlamı |
|---|---|
npu-, gpu-, cpu- |
Profilin yazıldığı aygıt |
int4, int8, fp16 |
Ağırlık biçimi |
sym, asym |
Simetrik ya da asimetrik nicemleme |
g128, cw |
128'lik gruplarla grup bazında ya da kanal bazında (channel-wise) |
r08 |
Oran 0,8: katmanların yaklaşık beşte biri INT8'de kalır |
ref |
Kalite değerlendirmesi için referans profil; hiçbir zaman varsayılan değildir |
--profile'ın kabul ettiği tüm profilleri görmek için şunu çalıştırın:
Profile Device Weights Size band Prio
cpu-int4-asym-g128-r08 CPU int4 asym g128 ratio 0.8 below 5B 110
cpu-int4-asym-g128 CPU int4 asym g128 — 100
cpu-int8-asym-ref CPU int8 asym — 10
cpu-fp16-ref CPU fp16 — 5
gpu-int4-asym-g128-r08 GPU int4 asym g128 ratio 0.8 below 5B 110
gpu-int4-asym-g128 GPU int4 asym g128 — 100
npu-int4-sym-g128 NPU int4 sym g128 below 5B 110
npu-int4-sym-cw NPU int4 sym channel-wise — 100
Gerçek çıktıda bir özet sütunu da vardır; yalnızca tek bir aygıtı listelemek için --device npu
ekleyin.
Boyut bantları ve profilin seçilmesi¶
Her aygıtın 5B parametrenin altındaki modeller için bir varsayılanı, boyutu bilinmeyenler de dahil geri kalan her şey için bir başka varsayılanı vardır:
| Aygıt | 5B parametrenin altı | 5B ve üstü ya da bilinmeyen boyut |
|---|---|---|
| CPU | cpu-int4-asym-g128-r08 |
cpu-int4-asym-g128 |
| GPU | gpu-int4-asym-g128-r08 |
gpu-int4-asym-g128 |
| NPU | npu-int4-sym-g128 |
npu-int4-sym-cw |
Parametre sayısı, Hugging Face Hub'ın safetensors başlıklarından bildirdiği sayıdır (yonga inspect
gösterir); bu yüzden gömme (embedding) katmanlarını ve varsa görüntü kodlayıcısını (vision tower) da içerir. Küçük model varsayılanları daha
fazla hassasiyet korur, çünkü referans makinede on iki model üzerinde yapılan ölçümlerde bu, %9-18
daha fazla disk karşılığında çok daha az kalite kaybettirdi. Öne çıkan sonuçlar
Test edilen donanım ve modeller sayfasındadır.
yonga profili şu sırayla seçer:
--profileile verdiğiniz profil her zaman kazanır. Asla başka bir profille değiştirilmez; grup boyutu modele uymuyorsaprepareonu indirmeden önce reddeder ve uyan profilleri söyler.- Kayıt defterinde tam bu model ya da mimarisi için bir kuralın adını verdiği profil.
- Aksi halde, aygıtın boyut bandı eşleşen en yüksek öncelikli profili.
Otomatik seçim, grup boyutu modelin config.json içindeki katman genişliklerini bölemeyen grup
bazlı bir profili de atlar. Planın "Chosen because" satırı nedeni her zaman tek cümlede verir;
artifact'in manifest'i de bunu saklar.
Artifact'ler¶
Artifact, hazırlanmış modeldir: OpenVINO IR, tokenizer'lar, sohbet şablonu ve manifest ile
doğrulama kayıtlarını içeren bir .yonga/ dizini. Artifact'ler veri dizininde, varsayılan olarak
~/.local/share/yonga/artifacts/ altında, depo adını, kaynak revizyonunu ve profili taşıyan bir
klasörde durur:
- Artifact kimliği. Her artifact'in
cc24636a2f49356agibi 16 karakterlik bir kimliği vardır; depodan, tam kaynak commit'inden ve profilden türetilir. Aynı girdiler her zaman aynı kimliği üretir.preparebir depo kimliği alır;chat,probe,bench,serveveremoveiseprepareileyonga list'in yazdırdığı artifact kimliğini (ya da artifact'in yolunu) alır. - Revizyon sabitleme. Bir dal ya da etiket, herhangi bir şey indirilmeden önce bir commit'e
çözümlenir ve her dosya o commit'ten gelir. Belirli bir revizyon seçmek için
--revisionkullanın. - Manifest.
.yonga/manifest.json; istenen ve çözümlenen kaynağı, revizyonu, mimari kuralını, dışa aktarma komutunu ve ayarlarını, her onarımı öncesi ve sonrası dosya özetleriyle (hash), aygıt başına yoklama sonuçlarını, makineyi ve paket sürümlerini ve her dosyanın özetini kaydeder.yonga publishmodel kartını bundan oluşturur. - Yeniden kullanım. Aynı revizyon ve profil için hazır bir artifact zaten varsa
prepareonu yeniden dönüştürmeden ve soru sormadan kullanır. Yeniden hazırlamak için--forceverin. Değişen bir varsayılan profil, eskisinin yanında yeni bir artifact üretir; asla sessizce eskisini yeniden kullanmaz.
Kaynak modeliniz Hugging Face önbelleğinde kalır. yonga onu orada okur ve yalnızca kendi dizinlerine yazar. Artifact silme ve önbellek temizleme Bakım sayfasında anlatılır.
Uyumluluk kayıt defteri¶
Hangi mimarinin hangi aygıtta, hangi dışa aktarıcı sürümleriyle çalıştığı, hangi hataların bilindiği ve hangi onarımların güvenli olduğu bilgisi yonga'nın kodundan daha hızlı değişir. Bu yüzden bu bilgi uyumluluk kayıt defterinde durur: kod değil, YAML verisi. Yerleşik kurallar yonga ile birlikte gelir; mimarileri, profilleri, bilinen sorunları, onarımları, bildirilmiş türev kaynakları, sohbet davranışını ve GGUF içe aktarma desteğini tanımlar.
Kayıt defterindeki her aygıt iddiası bir kanıt düzeyi taşır:
| Kanıt | Anlamı |
|---|---|
official |
OpenVINO tarafından, belgelerinde ya da yayımladığı bir model kartında belgelenmiş |
tested |
Gerçek donanımda çalıştırılmış; Test edilen donanım ve modeller sayfasındaki aileler bu çalıştırmalar sayesinde tested düzeyindedir |
reported |
tested'dan zayıf, inferred'dan güçlü |
inferred |
İlgili bir aileden çıkarılmış; örneğin bir mistral modelini genel bir kural yakalar ve bu kural CPU ile GPU'yu supported (inferred), NPU'yu unknown olarak değerlendirir |
unknown |
Güvenilir bilgi yok; kararı yoklama verir |
yonga inspect MODEL, aygıt başına kararı kanıtıyla birlikte gösterir. Bir modelle tam olarak
hangi kuralların eşleştiğini, hangilerinin kaybettiğini ve nedenini görmek için şunu çalıştırın:
Device compatibility
✓ CPU supported (tested) arch-qwen3
✓ GPU supported (tested) arch-qwen3
✓ NPU supported (tested) arch-qwen3
(Bu, mimari, profil, sohbet profili ve türev kaynaklar için aday kuralları listeleyen çok daha uzun bir çıktının son bölümüdür.)
Katmanlar ve imzalı uzak paketler¶
Kayıt defteri katmanlar halinde yüklenir; her katman bir öncekinin kuralını kimliğiyle değiştirebilir:
- yonga ile birlikte gelen yerleşik kurallar;
yonga registry updateile kurulan, isteğe bağlı imzalı uzak paket;~/.config/yonga/registry-overrides/içindeki kendi geçersiz kılmalarınız.
Her katmanın nerede durduğunu yonga registry paths gösterir. Siz söylemedikçe yonga hiçbir kayıt
defteri sunucusuna bağlanmaz: registry update, --url (ya da yapılandırmada bir registry_url)
veya --file ile diskte duran bir paket ister. Bir paket ancak ~/.config/yonga/registry-keys/
dizinine kendi elinizle koyduğunuz bir anahtarla imzalanmışsa, süresi dolmamışsa, kurulu olandan
eski değilse ve yalnızca düz veri içeriyorsa kurulur. Paket, yonga'nın içinde zaten bulunan bir
onarımı ya da araç çağırma ayrıştırıcısını seçebilir, ama asla kod getiremez. Doğrulaması artık
geçmeyen bir paket yok sayılır ve yonga registry status nedenini söyler.
Her kural türü ve çözümleme sırası kayıt defteri belirtiminde belgelenmiştir.
Tanılama ve çıkış kodları¶
Bir şey başarısız olduğunda yonga önünüze ham bir derleyici hata dökümü (traceback) koymaz. Hata metni kayıt defterinin sorun kurallarından geçer ve şunları içeren bir tanılama alırsınız:
npu.compiler.unsupported_graph.qwen35gibi değişmeyen bir kod;- "bu model bu aygıta uymuyor" ile "kurulumunuz bozuk" durumlarını ayıran bir kategori;
- kopyalayabileceğiniz gerçek komutlarla çözüm adımları;
- ham metni saklayan iş günlüğünün yolu.
yonga logs JOB_IDonu gösterir;--debugise ham hata metnini hatanın kendisine ekler.
Her komut, neyin ters gittiğine göre gruplanmış, değişmeyen bir çıkış koduyla biter:
| Kodlar | Anlamı |
|---|---|
| 0, 2 | Başarılı; 2, uyarılarla başarılı (ya da sonuçsuz bir yoklama) demektir |
| 10 | Ortam kullanılamaz: eksik bir paket, sürücü ya da izin |
| 20, 21, 22 | Model kaynağı çözümlenemedi, kimlik doğrulama gerekiyor ya da uzak kod onayı gerekiyor |
| 30 | Yetersiz disk ya da bellek |
| 40, 41, 42 | Dönüştürme, doğrulama ya da gerekli olduğu halde devre dışı bırakılmış bir onarım |
| 50, 51, 52 | Aygıt desteklenmiyor, derleme başarısız ya da metin üretimi başarısız |
| 60 | İptal edildi ya da bir onay reddedildi |
| 70 | Kayıt defteri ya da yapılandırma hatası veya yonga'nın ayrıştıramadığı bir komut satırı |
| 99 | Beklenmeyen bir iç hata |
Her birinin listesi Çıkış kodları sayfasında, gerçekten karşılaşılmış hataların adım adım çözümü ise Sorun giderme sayfasındadır.
yonga'nın yapmayacakları¶
Bazı sınırlar tasarımın bir parçasıdır ve hiçbir bayrak bunları kapatmaz:
- Telemetri yok. yonga, onu nasıl kullandığınıza dair hiçbir şey bildirmez; başlattığı her Python sürecinde OpenVINO'nun kendi kullanım raporlamasının yüklenmesini de engeller. Bkz. Gizlilik ve güvenlik.
sudoyok, sistem değişikliği yok. yonga aslasudo,apt,modprobeya dausermodçalıştırmaz ve kendisini kurduğunuz Python ortamında asla paket kurmaz, yükseltmez ya da kaldırmaz. Makinede bir şeyin değişmesi gerekiyorsa çalıştırmanız için komutu yazdırır.pip'i çalıştırdığı tek yer, kendi önbellek dizini altındaki yönetilen dışa aktarma ortamıdır ve bunu da siz planda onayladıktan sonra yapar.- Hugging Face önbelleğinize dokunmaz. Kaynak modeller önbellekten okunur ve asla yerinde değiştirilmez. Onarımlar, dışa aktarılan dosyaların yonga'ya ait kopyasına uygulanır.
- İzin vermedikçe uzak kod yok. Yalnızca kendi Python kodu çalıştırılarak dönüştürülebilen bir
depo için
--trust-remote-codegerekir.--yesbunu asla onaylamaz; bayrak olmadanprepare22 çıkış koduyla durur. - Sessiz değişiklik yok. yonga ilgisiz bir modeli asla araya sokmaz, açıkça istenen bir aygıtı asla değiştirmez ve adını verdiğiniz bir profilin yerine başkasını koymaz. Bildirilmiş bir türev kaynak yalnızca önerilir ve onayınızı gerektirir.