Model Weights
Model ağırlıkları, bir ağın girdilerini tahminlere dönüştüren öğrenilmiş sayılardır. Eğitimin bunları nasıl belirlediğini, ağırlık dosyalarını ve sıkıştırmayı ele alır.
Model ağırlıkları, girdilerini tahminlere dönüştüren bir sinir ağının içindeki öğrenilebilir sayılardır. Her ağırlık, iki birim arasında iletilen sinyali ölçeklendirir veya bir evrişim filtresinin tek bir değerini oluşturur; ağırlıklar birlikte, modelin eğitim verilerinden öğrendiği her şeyi kodlar. Bu terim çoğu zaman, "önceden eğitilmiş ağırlıklar" veya "açık ağırlıklı modeller" ifadelerinde olduğu gibi, bias'lar ve normalizasyon değerleri dâhil olmak üzere modelin öğrenilmiş tüm parametrelerini kapsayacak şekilde gevşek biçimde kullanılır. Ağırlık sayıları büyüklük mertebeleri arasında değişir: ResNet-50 yaklaşık 25,6 milyon parametreye sahipken büyük dil modelleri milyarlarca parametreye sahiptir.
Eğitim Ağırlıkları Nasıl Belirler#
Yeni bir ağ, He başlatması gibi şemalardan alınan küçük, rastgele ağırlıklarla başlar. Bu şemalar, değerleri her katmanın boyutuna göre ölçeklendirir; böylece sinyaller çok sayıda katmandan geçerken ne kaybolur ne de patlar. Bu aşamada modelin tahminleri gürültüden ibarettir. Eğitim, her veri yığını için bir döngüyü tekrarlar: ileri geçiş tahminler üretir, bir kayıp fonksiyonu tahminlerin hatasını puanlar, geri yayılım her ağırlığın bu hataya ne kadar katkıda bulunduğunu hesaplar ve stokastik gradyan inişi (SGD) veya Adam optimizasyon algoritması gibi bir optimizasyon algoritması, hatayı azaltmak için her ağırlığı küçük miktarlarda değiştirir. Milyonlarca küçük güncellemeden sonra ağırlıklar doğru tahminler üreten değerlere oturur ve çıkarım sırasında sabit kalır.
Ağırlıklar ve İlgili Terimler#
- Bias'lar:
y = Wx + bhesaplayan bir katmanda, ağırlıklarWgirdilerle çarpılır ve biasbbir ofset ekler. Böylece birimin aktivasyon fonksiyonu eşiğini değiştirebilir ve tüm girdiler sıfır olduğunda sıfırdan farklı bir çıktı üretebilir. Her ikisi de eğitim sırasında öğrenilir. - Hiperparametreler: Ağırlıkların nasıl öğrenileceğini belirleyen ve eğitimden önce seçilen öğrenme oranı ile yığın boyutu gibi ayarlar. Gradyan inişi bu değerleri güncellemez.
- Aktivasyonlar: Bir ağın belirli bir girdi için hesapladığı ara çıktılar. Ağırlıklar her girdi için aynı kalırken aktivasyonlar her girdi için yeniden hesaplanır.
- Weights & Biases: Adını iki parametre türünden alan bir deney izleme platformu.
Ağırlıkları Kaydetme ve Yükleme#
Eğitilmiş ağırlıklar, çıkarım için yeniden yüklenebilmeleri, paylaşılabilmeleri veya aktarım öğrenmesi için başlangıç noktası olarak kullanılabilmeleri amacıyla dosyalara kaydedilir. PyTorch içinde modelin ağırlıkları state_dict içinde bulunur ve genellikle .pt dosyalarına kaydedilir. Bu dosyalar, yüklendiğinde kod çalıştırabilen Python pickle biçimini kullanır; bu nedenle PyTorch 2.6'dan itibaren torch.load, varsayılan olarak weights_only=True değerini kullanır. safetensors biçimi yalnızca ham tensörleri saklar; böylece kod çalıştırma riski ortadan kalkar ve bellek eşlemeli hızlı yükleme mümkün olur. Ayrıca bu biçim, Hugging Face üzerinde standarttır. ONNX dosyaları, diğer çalışma ortamlarının modeli çalıştırabilmesi için ağırlıkları hesaplama grafiğiyle birlikte paketler.
Ultralytics YOLO26 .pt kontrol noktaları, ağırlıkların adım adım oluşan gürültüyü yumuşatan üstel hareketli ortalamasını (EMA) ve eğitim argümanlarıyla her dönemin sonuçlarını saklar; her eğitim çalıştırması, weights klasörüne best.pt ve last.pt yazar. Aynı mimariyi eğitilmiş ağırlıklarla ve bu ağırlıklar olmadan yüklemek, modelin bilgisinin nerede bulunduğunu gösterir:
from ultralytics import YOLO
# Same YOLO26n architecture with two different sets of weights
trained = YOLO("yolo26n.pt") # weights learned on COCO
untrained = YOLO("yolo26n.yaml") # randomly initialized weights
for name, model in [("trained", trained), ("untrained", untrained)]:
results = model("https://ultralytics.com/images/bus.jpg")
print(f"{name}: {len(results[0].boxes)} objects detected")Eğitilmiş ağırlıklar görüntüdeki otobüsü ve insanları bulurken aynı ağın rastgele başlatılmış kopyası hiçbir şeyi algılamaz.
Dağıtım İçin Ağırlıkları Sıkıştırma#
Ağırlık hassasiyeti, modelin dosya boyutunu ve bellek ayak izini belirler; bu durum özellikle uç AI cihazları için önemlidir. Model niceleme, ağırlıkları daha düşük hassasiyetle saklar; 32 bit kayan noktadan 8 bit tam sayılara geçmek, ağırlıkları dört kat küçültür ve tam sayı desteği olan donanımlarda çıkarımı hızlandırır. Budama, çıktıya az katkıda bulunan ağırlıkları kaldırır; bilgi damıtma ise daha küçük bir modeli büyük bir modeli taklit edecek şekilde eğitir. Ölçeği görmek için 7 milyar parametreli bir dil modelinin ağırlıkları 32 bitte yaklaşık 28 GB, 16 bitte 14 GB ve 4 bitte 3,5 GB yer kaplar.










