Yerel LLM Ekosistemine Giriş: Neden Kendi Donanımınız?
Büyük Dil Modelleri (LLM), bulut tabanlı API servislerinden (GPT-4, Claude 3 gibi) yerel makinelere doğru evrilen bir paradigma değişiminden geçiyor. Veri gizliliği, sınırsız özelleştirme imkanı ve uzun vadeli maliyet avantajları, profesyonelleri kendi donanımlarında yerel LLM çalıştırmak konusuna yöneltiyor. Ancak bu süreç, sadece bir yazılımı kurup çalıştırmaktan öte; parametre sayısı, kuantizasyon (quantization) seviyeleri ve video bellek (VRAM) yönetimi gibi teknik parametrelerin hassas bir dengesini gerektiriyor.
Temel Araçlar: Ollama ve llama.cpp Arasındaki Farklar
Yerel modelleri çalıştırmak için günümüzde iki ana akım yaklaşım bulunmaktadır. Bunlardan ilki olan Ollama, kullanıcı dostu bir arayüz ve paket yönetimi sunarken; llama.cpp, performansın en uç noktasına odaklanan ve ince ayar imkanı veren bir backend motoru görevi görür.
Ollama: Yerel Yapay Zekanın “Docker”ı
Ollama, karmaşık kütüphane bağımlılıklarını soyutlayarak modelleri tek bir komutla ayağa kaldırmanızı sağlar. Özellikle macOS ve Linux ekosistemlerinde optimize çalışmasıyla bilinir. Ollama’nın en büyük avantajı, “Modelfile” yapısı sayesinde model talimatlarını (system prompts) kolayca yönetebilmesidir.
llama.cpp: Ham Performans ve Esneklik
Georgi Gerganov tarafından geliştirilen llama.cpp, modelleri C++ ile yeniden yazarak işlemci (CPU) ve grafik işlemci (GPU) arasındaki dengeli kullanımı maksimize eder. Apple Silicon çiplerindeki (M1, M2, M3) “Unified Memory” mimarisinden en iyi yararlanan kütüphanedir. Kuantizasyon teknikleri (GGUF formatı) bu kütüphane sayesinde standartlaşmıştır.
VRAM Hesabı: Donanım Kapasitesini Belirleyen Formül
Bir dil modelinin GPU belleğinde ne kadar yer kaplayacağını anlamak için basit ama kritik bir matematiksel modelleme mevcuttur. Bir modelin ham ağırlığı genellikle 16-bit (FP16) olarak yayınlanır. Ancak yerel LLM çalıştırmak için genellikle bu ağırlıklar 4-bit veya 8-bit seviyesine indirgenir.
Hayati Formül: Bir modelin ihtiyaç duyduğu minimum VRAM miktarı şu şekilde hesaplanır:
VRAM (GB) = [Parametre Sayısı (Milyar) * Kuantizasyon (Bit / 8)] * 1.2 (Overhead Payı)
Örneğin, 70 milyar parametreli (70B) bir Llama 3 modelini 4-bit kuantizasyon ile çalıştırmak istediğinizi varsayalım:
- 70 * (4 / 8) = 35 GB
- 35 * 1.2 (Bağlam penceresi ve sistem payı) = 42 GB VRAM gereksinimi.
GPU ve Model Seçim Matrisi
Farklı GPU sınıfları, belirli model boyutları için idealdir. Aşağıdaki tablo, güncel donanımlar ile çalıştırılabilecek model ölçeklerini karşılaştırmalı olarak sunmaktadır:
| GPU Modeli | VRAM Kapasitesi | İdeal Model Boyutu | Kuantizasyon Seviyesi |
|---|---|---|---|
| NVIDIA RTX 4060 Ti (16GB) | 16 GB | 7B – 8B Parametre | Q8_0 (8-bit) veya Q6_K |
| NVIDIA RTX 3090 / 4090 | 24 GB | 13B – 20B Parametre | Q4_K_M veya Q5_K_M |
| 2x RTX 3090 (NVLink-siz) | 48 GB | 70B Parametre | Q4_K_S (Sıkıştırılmış) |
| Apple M3 Max (128GB Unified) | ~96 GB Ayrılabilir | 120B – 180B Parametre | Q4_0 |
Kuantizasyon Nedir? Kalite mi, Performans mı?
Kuantizasyon, modelin ağırlıklarını saklamak için kullanılan sayısal hassasiyetin düşürülmesi işlemidir. FP16 (16-bit) formatındaki bir model, her parametre için 2 byte harcar. 4-bit kuantizasyonda bu miktar 0.5 byte’a düşer. Bu, modelin kapladığı alanı %75 oranında daraltır.
Yerel LLM çalıştırmak isteyen kullanıcılar için kritik eşik 4-bit (Q4_K_M) seviyesidir. Literatürde “perplexity” olarak adlandırılan şaşkınlık skoruna göre, 4-bit kuantizasyon, zeka kaybını minimumda tutarken en iyi donanım verimliliğini sağlar. 3-bit altına inildiğinde ise modelin mantıksal tutarlılığı hızla bozulmaya başlar.
Hangi Modeli Seçmelisiniz?
2024 yılı itibarıyla yerel ekosistemde en başarılı performans sergileyen modeller şunlardır:
- Llama 3 (8B & 70B): Meta’nın en güncel açık kaynaklı modeli. 8B versiyonu, 8GB VRAM’e sahip laptoplarda dahi akıcı çalışır.
- Mistral / Mixtral 8x7B: MoE (Mixture of Experts) mimarisi sayesinde sadece aktif olan parametreleri kullanarak yüksek hız sunar.
- Phi-3 Mini: Microsoft tarafından geliştirilen, 3.8B parametreye rağmen mantıksal çıkarımda dev modellerle yarışan “küçük ama güçlü” alternatif.
Çoklu GPU Konfigürasyonları
Eğer 70B veya daha büyük modelleri yerel olarak, yüksek hızda çalıştırmak istiyorsanız, tek bir GPU yetersiz kalacaktır. Ollama ve llama.cpp, modelleri birden fazla GPU’ya dağıtabilir (Split Layers). Örneğin, iki adet RTX 3090 kullanarak toplam 48 GB VRAM elde edebilir ve Llama 3 70B modelini saniyede 15-20 token hızında çalıştırabilirsiniz. Burada darboğaz GPU’lar arası veri transfer hızıdır; PCIe 4.0 x16 yuvaları bu noktada kritik rol oynar.
Performans Optimizasyonu İçin İpuçları
Donanımınızın sınırlarını zorlarken şu noktaları göz ardı etmeyin:
- Context Window (Bağlam Penceresi): Bağlam uzunluğunu 8k’dan 32k’ya çıkarmak, VRAM kullanımını doğrusal olmayan bir şekilde artırır.
- Flash Attention: Bellek bant genişliğini optimize eden bu teknik, destekleyen GPU’larda (RTX 3000 serisi ve sonrası) %20-30 hız artışı sağlar.
- KV Cache: Modelin önceki konuşmaları hatırlaması için ayrılan bellek alanı. Uzun konuşmalarda GPU belleğinin bir kısmı buraya ayrılmalıdır.
Sonuç
Yerel LLM çalıştırmak, donanım ve yazılımın senkronize hareket etmesi gereken teknik bir süreçtir. Başlangıç seviyesi için Ollama ve bir RTX 4060 Ti (16GB) ideal bir giriş noktasıyken, profesyonel kullanımda llama.cpp ve çoklu GPU kurulumları vazgeçilmezdir. Kuantizasyon seviyenizi Q4_K_M olarak belirlemek, genellikle performans ve zeka arasındaki en tatlı noktayı yakalamanızı sağlayacaktır.
Sıkça Sorulan Sorular
Yerel LLM çalıştırmak için minimum ne kadar VRAM gerekir?
Minimum 8 GB VRAM önerilir. Llama 3 8B gibi modeller 4-bit kuantizasyon ile bu kapasitede sorunsuz çalışabilir. Ancak karmaşık görevler için 12-16 GB VRAM daha stabil bir deneyim sunar.
Kuantizasyon (GGUF) neden önemlidir?
Kuantizasyon, modelin sayısal hassasiyetini düşürerek daha az bellek kaplamasını sağlayan bir işlemdir. Örneğin 16-bitlik bir model 4-bit seviyesine indirilirse yaklaşık 4 kat daha az VRAM tüketir.
GPU olmadan sadece CPU ve RAM ile LLM çalışır mı?
Evet, llama.cpp gibi araçlar modelin bir kısmını CPU ve sistem RAM'ine aktarabilir (offloading). Ancak bu durumda işlem hızı (token/s) GPU'ya göre çok daha yavaş olacaktır.
Ollama ile llama.cpp arasındaki temel fark nedir?
Ollama, kolay kurulum ve kullanıcı deneyimine odaklanan bir Docker benzeri yapıdır. llama.cpp ise daha derin konfigürasyon imkanı sunan, performans odaklı temel kütüphanedir. Her ikisi de aynı modelleri çalıştırabilir.
VLLN Premium Rehberini Kaçırmayın
Özgün SEO, yapay zekâ destekli yayıncılık ve premium WordPress büyüme stratejilerini tek yerde takip edin.