config.json çözücü — bir LLM'in yapılandırması sade dille
Hugging Face'teki her model bir config.json ile gelir — belleğini, hızını ve ne kadar uzağa okuyabildiğini belirleyen birkaç düzine alan. Bir model seç; bu sayfa o alanların yanıtladığı soruları sade dille cevaplasın ve her cevabın dosyanın hangi satırlarından geldiğini göstersin.
Config'ini okumak için bir model seç
Ya da bunlardan biriyle başla:
Bir model seçildiğinde bu sayfa şunları cevaplar:
- Nasıl bir model?
- Ne kadar büyük?
- Ne kadar uzağa okuyabilir?
- Her token bellekte neye mal olur?
- Attention head'leri belleği nasıl paylaşıyor?
- Mixture of experts mi?
- Ağırlıklar hangi hassasiyette saklanıyor?
- Kaç token biliyor?
- Yüklemek için yazılımım neye ihtiyaç duyar?
- Sunum hangi alanları yok sayabilir?
Config nasıl okunuyor
config.json; Hugging Face Transformers'ın, vLLM'in ve diğer motorların ağırlıkları yüklemeden önce modeli kurmak için okuduğu dosyadır. Mimariyi kaydeder — katmanlar, genişlikler, attention head'leri, uzmanlar, konumlar, kelime dağarcığı ve hassasiyet — ama ağırlıkları ve parametre sayısını kaydetmez; LLMScale parametre sayısını Hugging Face API'sinden alır.
- token başına KV cache = 2 × katman × key-value head × head_dim × bayt
- MLA ile = katman × (kv_lora_rank + qk_rope_head_dim) × bayt
- maksimum context = max_position_embeddings (lineer ve YaRN ölçekleme buna özgün × çarpan ile ulaşır; Llama 3 ölçeklemesi düz çarpım değildir)
- GQA oranı = attention head ÷ key-value head
Her cevap kullandığı alanları adlandırır ve dosyada vurgular; hesabı da altında gösterilir. Sözlüğün bilmediği alanlar tahmin edilmek yerine ham değerleriyle açıklanmamış olarak listelenir. Llama ve Gemma gibi erişimi kısıtlı repolar tarayıcıdan okunamaz; onlar için sayfa LLMScale'in yerleşik veritabanındaki mimariye döner ve bunu söyler.
Sık sorulanlar
- config.json'da parametre sayısı nerede?
- Orada değil. Bir config modelin şeklini anlatır, diskteki boyutunu değil. LLMScale sayıyı Hugging Face API'sindeki safetensors üst verisinden okur; sayfa onu bu yüzden config'in yanında gösterebiliyor.
- num_attention_heads ile num_key_value_heads arasındaki fark ne?
- num_attention_heads her katmanın çalıştırdığı query head sayısıdır; num_key_value_heads bunların paylaştığı key ve value head sayısı. İkincisi daha küçükse model grouped-query attention kullanır ve KV cache'i aynı oranda küçülür — Llama 3.1 8B, 32 query head arasında 8 key-value head paylaştırır; tam multi-head attention'ın gerektireceği önbelleğin dörtte biri.
- max_position_embeddings, modelin o uzunlukta iyi çalıştığı anlamına mı gelir?
- Modelin o uzunluk için yapılandırıldığı anlamına gelir. Motorlar bundan yola çıkar ama varsayılanı daha düşük olabilir — Ollama onu VRAM'inize göre seçer, vLLM de LongRoPE modellerinde özgün uzunluğu varsayar. Sınıra yakın ne kadar iyi dayandığı nasıl eğitildiğine bağlıdır; bunu config söyleyemez.
- trust_remote_code neden önemli?
- auto_map kaydı, reponun kendi Python model kodunu getirdiği anlamına gelir ve Transformers onu yalnızca trust_remote_code=True verdiğinizde çalıştırır. O kod sizin yetkilerinizle çalışır; ya okuyun ya da modelin Transformers'ın doğrudan desteklediği bir sürümünü tercih edin.