Yerel LLM kıyaslaması: 48 GB’lık bir makinede ne kadar iş çıkıyor?
Veriyi şirket dışına çıkarmak istemeyen bir şirkete “yerel model kullanalım” demek kolay. Zor olan, yerel modelin hangi işi yapabildiğini, hangisini yapamadığını söylemek. Bunu ölçtüm — kendi donanımımda, gerçek kodlama görevleriyle, dokuz turu aşan bir seride.
Neyi ölçtüm?
Açık ağırlıklı dil modellerinin gerçek yazılım görevlerindeki performansını ölçtüm: yoktan kod üretme ve mevcut bir kod tabanında hedefli düzenleme yapma. Ölçüm 48 GB birleşik bellekli bir Apple M5 Max üzerinde, MLX tabanlı bir yerel servisle yapıldı. Amaç bir sıralama listesi üretmek değil, “yerel model bu işi yapabilir mi” sorusunu tahminden çıkarmaktı.
- Donanım
- Apple M5 Max · 48 GB birleşik bellek
- Çalıştırma
- MLX tabanlı yerel servis
- Tur sayısı
- 9+ · seri sürüyor
- Görev tipi
- Sıfırdan üretim · mevcut dosyada hedefli düzenleme
- Yöntem
- Tek değişkenli karşılaştırma
- Durum
- Yeni model geldikçe tekrarlanıyor
En net bulgu: sorun modelde değil, koşum ortamında
Aynı modeli farklı koşum ortamlarında çalıştırdığımda puan yaklaşık 11 puan oynuyor. Görevin ve komutun nasıl tarif edildiği yaklaşık 18 puan oynatıyor. Buna karşılık sıcaklık, top-p gibi örnekleme parametrelerini değiştirmek yalnızca 2–3 puanlık fark yaratıyor. Yani en çok tartışılan ayar, en az önemli olanı.
| Değişken | Puan etkisi | Pratik anlamı |
|---|---|---|
| Görev ve komut tasarımı | ≈ ±18 puan | En yüksek getirili yatırım. İşi doğru tarif etmek, model değiştirmekten daha etkili. |
| Koşum ortamı (harness) | ≈ ±11 puan | Aynı model, farklı araçta belirgin biçimde farklı çalışıyor. |
| Örnekleme parametreleri | ≈ ±2–3 puan | En çok kurcalanan ayar, en az fark yaratan yer. |
Bu bulgunun danışmanlık tarafındaki karşılığı şu: bir müşteri “hangi modeli kullanalım” diye sorduğunda cevap çoğu zaman bir model adı değil, işin nasıl parçalandığı oluyor.
Yerel modeller neyi yapabiliyor, neyi yapamıyor?
Yerel modeller sıfırdan kod üretiminde kullanılabilir bir bantta çalışıyor; ortalama puan yüz üzerinden 86,5 civarında ve turdan tura yaklaşık ±3 puan oynuyor. Mevcut bir dosyada hedefli, cerrahi düzenleme yapmaya geldiğinde aynı modeller 49–57 bandına düşüyor: dosyayı hedefli değiştirmek yerine baştan yazma eğilimi gösteriyorlar.
| Görev tipi | Ölçülen bant (100 üzerinden) | Yorum |
|---|---|---|
| Sıfırdan üretim | ≈ 86,5 (±3) | Üretimde kullanılabilir — gözden geçirme şartıyla. |
| Mevcut dosyada hedefli düzenleme | 49 – 57 | Bu işe yerel model verilmez; model dosyayı yeniden yazıyor. |
Bu ayrım, “yerel mi bulut mu” tartışmasını tek cümleye indiriyor: yeni bir şey üretmek yerel modelle olur, var olanı cerrahi biçimde değiştirmek olmuyor. Bir müşteride hangi adımın nereye düşeceğini bu ayrımla belirliyorum.
48 GB bellekte hangi sınırlara çarpılıyor?
48 GB birleşik bellek, kullanılabilir açık ağırlıklı modellerin bir kısmını doğrudan eler. Ayrıca disk üzerindeki dosya boyutu ile bellekte kapladığı yer aynı değildir; Apple Silicon’da bu ikisini karıştırmak en sık yapılan planlama hatasıdır. Bellek kullanım oranı ve eşzamanlı istek sayısı gibi ayarlarda da sert sınırlar var.
- Bellek kullanım oranı. Ölçtüğüm eşikte 0,75 çalışıyor, 0,80 çökmeye yol açıyor. Aradaki fark teorik değil, gözlenmiş.
- Eşzamanlılık. Aynı anda birden fazla isteği kabul etmek çift ön-doldurma nedeniyle bellek taşmasına yol açıyor; tek istek sınırı bir kısıt değil, bir gerekliliktir.
- Disk boyutu ≠ bellek. Model dosyası 30 GB olabilir ama çalışırken bağlam belleğiyle birlikte çok daha fazlasını ister.
- “Düşünme” kipi. Bu model ailesinde uzun akıl yürütme kipini kapatmak puanı yükseltti — sezgiye aykırı ama tekrarlanabilir bir sonuç.
- Zaman aşımı duvarı. Koşum aracının zaman aşımı, üretilebilecek azami çıktı uzunluğunu pratikte modelden önce sınırlıyor.
Nasıl ölçtüm?
Yöntem tek değişkenli: her turda yalnızca bir şey değiştirilir ve aynı görev seti yeniden çalıştırılır. Görev seti gerçek yazılım işlerinden türetildi, sentetik bulmacalardan değil. Her turun sonucu yazılı kaydediliyor; yeni bir model çıktığında aynı set tekrar koşuluyor.
- Aynı görev seti, aynı donanım, aynı servis sürümü.
- Turda tek bir değişken değişir: model, koşum ortamı, komut tasarımı veya örnekleme parametresi.
- Sonuç puanlanır ve önceki turlarla karşılaştırılır; tur numarası ve ayarlar kaydedilir.
- Bellek sınırına çarpan yapılandırmalar “çalışmadı” diye değil, çarptığı eşikle birlikte kaydedilir.
- Sonuçlar bir sonraki müşteri kararında doğrudan kullanılır — bu bir araştırma projesi değil, bir karar aracıdır.
Bu ölçüm kendi donanımımda, kendi görev setimle yapıldı ve genel bir model sıralaması iddiası taşımıyor. Amacı, bir müşteriye “yerel model bu işi yapar” derken tahmin yürütmek zorunda kalmamak.
Bu ölçüm bir projede ne işe yarıyor?
Veriyi dışarı çıkarmak istemeyen bir şirkette hangi adımın yerel modelde, hangisinin bulut modelinde çalışacağına bu verilerle karar veriyorum. Karar tahminle verildiğinde iki tip hata oluyor: ya her şey buluta gidiyor ve bir veri aktarımı sorunu doğuyor, ya her şey yerelde tutuluyor ve kalite yetersiz kalıyor.
Son güncelleme: