Açık kaynak yapay zeka modellerini kendi sunucularınızda çalıştırmak, bulut sağlayıcılarına olan bağımlılığı kırarken veri gizliliği üzerinde tam kontrol sağlar. Ancak bu süreç, sadece bir modeli indirip çalıştırmaktan ibaret değildir; donanım kapasitesi, model formatı, çıkarım motoru optimizasyonu ve üretim ortamı güvenliği gibi birbirine bağlı kritik kararları yönetmeyi gerektirir. Bu rehberde, LLaMA veya Mistral gibi modelleri kendi altyapınızda verimli bir şekilde dağıtmak için gereken teknik mimariyi, donanım darboğazlarını nasıl aşacağınızı ve üretim hattında karşılaşılan gizli riskleri nasıl yöneteceğinizi adım adım ele alacağız.

1. Donanım Seçimi: VRAM ve Bellek Bant Genişliği Dengesi

Model dağıtımında en büyük yanılgı, sadece VRAM miktarına odaklanmaktır. Oysa çıkarım hızı, ekran kartının bellek bant genişliği tarafından belirlenir. Örneğin, 24 GB VRAM kapasitesine sahip bir NVIDIA RTX 3090, 936 GB/s bant genişliği ile yüksek token üretim hızı sunarken, benzer VRAM kapasitesine sahip ancak daha düşük bant genişlikli kartlar, büyük modellerde "token gecikmesi" (latency) sorunu yaşatır. Uzman bakış açısıyla, model boyutunun 1,5 katı VRAM kapasitesine sahip bir GPU seçmek, KV-cache ve geçici tampon bellek ihtiyaçlarını karşılamak için altın kuraldır.

Pratik Karar Kuralı: Eğer 70B parametreli bir modeli 4-bit nicelleştirmeyle çalıştıracaksanız, en az 40 GB VRAM'e ihtiyacınız vardır. Tek bir kart yerine, NVLink ile birbirine bağlı iki adet 24 GB'lık kart kullanmak, tek bir büyük karttan daha yüksek performans verebilir. Küçük ekipler için tek kartlı sunucular yeterli olsa da, eşzamanlı çoklu kullanıcı taleplerini karşılamak için mutlaka çoklu GPU kurulumuna veya kurumsal sınıf A100/H100 serisi kartlara yönelmelisiniz. Donanım seçerken PCIe hattı hızlarını da göz ardı etmeyin; özellikle çoklu GPU kurulumlarında verinin kartlar arası aktarımı, darboğazın ana kaynağı olabilir.

2. Model Formatı ve Nicelleştirme Stratejileri

Hugging Face üzerinde bulunan modeller; FP16, AWQ, GPTQ veya GGUF gibi farklı formatlarda sunulur. Seçiminiz, kullandığınız çıkarım motoruyla doğrudan uyumlu olmalıdır. Örneğin, NVIDIA GPU'lar üzerinde vLLM veya TGI kullanıyorsanız AWQ formatı, donanım hızlandırmadan maksimum verim almanızı sağlar. Öte yandan, CPU ağırlıklı veya karma ortamlarda llama.cpp ile GGUF formatı, esneklik ve düşük donanım gereksinimi sunar. Nicelleştirme (quantization), modelin ağırlıklarını daha düşük hassasiyetli veri tiplerine (örneğin 16-bit'ten 4-bit'e) indirgeyerek bellek kullanımını ciddi oranda düşürür.

Gizli Risk: Nicelleştirme, bellek kullanımını düşürürken modelin mantıksal çıkarım yeteneğini de etkileyebilir. 4-bit nicelleştirme çoğu genel görev için yeterliyken, kod üretimi veya karmaşık hukuksal analiz gibi hassasiyet gerektiren alanlarda 8-bit bir denge noktasıdır. Uygulamaya geçmeden önce model.dtype ve model.get_memory_footprint() komutlarıyla gerçek bellek tüketimini mutlaka doğrulayın; aksi takdirde sisteminiz, modelin belleğe sığmaması nedeniyle sessizce CPU'ya yüklenerek performansı dramatik şekilde düşürebilir. Bir modelin "perplexity" değerini kontrol ederek, nicelleştirmenin modelin doğruluk payını ne kadar bozduğunu ölçümlemek, üretim öncesi en kritik kalite kontrol adımıdır.

3. Konteynerleştirme ve Çıkarım Motoru Optimizasyonu

Modelleri sunucuda manuel çalıştırmak, sürdürülebilirlik açısından büyük bir risktir. Docker kullanarak modeli bir konteyner içinde paketlemek, bağımlılık çakışmalarını önler ve "rollback" süreçlerini kolaylaştırır. NVIDIA CUDA imajlarını temel alarak hazırlanan bir Dockerfile, model dosyalarını ayrı bir volume üzerinde tutmalı ve çıkarım motoru sıcaklık ayarlarını (temperature, top-p) ortam değişkenleri ile yönetmelidir. vLLM gibi modern motorlar, "PagedAttention" teknolojisi sayesinde KV-cache yönetimini optimize ederek bellek verimliliğini %50'ye kadar artırabilir.

Uzman İpucu: Kubernetes ortamında NVIDIA GPU operatörünü kurmak, kaynak paylaşımını (GPU partitioning) mümkün kılar. Bu sayede, tek bir güçlü GPU'yu birden fazla küçük model veya farklı mikro hizmetler arasında paylaştırarak donanım maliyetinizi %40'a varan oranda düşürebilirsiniz. Konteyner başlatma sırasında --max-model-len parametresini, donanımınızın VRAM limitini aşmayacak şekilde dikkatlice yapılandırmayı unutmayın. Eğer konteyneriniz aniden kapanıyorsa, muhtemelen "Out of Memory" (OOM) hatası alıyorsunuzdur; bu durumda modelin bağlam uzunluğunu (context length) kısıtlamak, sistem kararlılığını korumak için ilk başvurulacak yöntemdir.

4. Erişim Politikaları ve Güvenlik Katmanı

Kendi altyapınızda bir yapay zeka modeli çalıştırmak, onu internete açık hale getirdiğinizde ciddi bir güvenlik sorumluluğu doğurur. Modeller genellikle "prompt injection" saldırılarına karşı savunmasızdır. Bu nedenle, modelin doğrudan son kullanıcıya açılması yerine, araya bir "API Gateway" veya "Guardrail" katmanı eklemek zorunludur. Bu katman, gelen istekleri filtrelemeli, hassas verileri (PII - kişisel tanımlanabilir bilgiler) maskelemeli ve modelin çıktılarını denetleyerek zararlı içerik üretilmesini engellemelidir.

Güvenlik Stratejisi: Modelinize erişimi kısıtlamak için OAuth2 veya JWT tabanlı kimlik doğrulama mekanizmalarını kullanın. Ayrıca, modelin sistem komutlarına (system prompt) erişimini kısıtlayarak "jailbreak" girişimlerini minimize edin. Bir diğer kritik nokta ise log yönetimidir; modellerin tüm girdi ve çıktılarını anonimleştirerek merkezi bir log sunucusunda tutmak, olası bir veri sızıntısı durumunda adli bilişim süreçlerini kolaylaştırır. Unutmayın, yerel altyapı güvenliği sadece fiziksel sunucu güvenliği değil, aynı zamanda yazılım katmanındaki bu tür filtreleme mekanizmalarının bütünüdür.

5. İzleme, Ölçeklendirme ve Maliyet Yönetimi

Üretim ortamında çalışan bir yapay zeka modelinin performansını izlemek, sadece CPU/GPU kullanımıyla sınırlı değildir. "Time to First Token" (TTFT) ve "Tokens Per Second" (TPS) gibi metrikler, kullanıcı deneyimini doğrudan etkileyen temel performans göstergeleridir. Prometheus ve Grafana kullanarak bu metrikleri görselleştirmek, sistem darboğazlarını anlık olarak tespit etmenizi sağlar. Eğer TPS değerleriniz düşmeye başlarsa, modelin yükü altında ezilen bir GPU veya yetersiz kalan bir ağ bant genişliği ile karşı karşıya olabilirsiniz.

Ölçeklendirme Kararı: Trafiğiniz arttığında dikey ölçeklendirme (daha güçlü GPU) yerine yatay ölçeklendirme (daha fazla GPU düğümü) tercih edin. Yük dengeleyici (load balancer) kullanarak istekleri birden fazla model örneğine dağıtmak, sistemin tek bir noktadan çökmesini engeller. Maliyet yönetimi açısından, kullanılmayan GPU kaynaklarını otomatik olarak kapatan veya düşük güç moduna alan "autoscaling" politikaları, özellikle bulut tabanlı GPU kiralama hizmetlerinde ciddi tasarruf sağlar. Yerel veri merkezinizde ise, GPU'ların termal yönetimini ve güç tüketimini takip ederek donanım ömrünü uzatmak, uzun vadeli işletme maliyetlerini düşürmenin anahtarıdır.

Conclusion

Açık kaynaklı yapay zeka modellerini kendi altyapınızda dağıtmak, teknik derinlik ve sürekli optimizasyon gerektiren bir süreçtir. Donanım seçiminden güvenlik katmanlarına, çıkarım motoru yapılandırmasından izleme araçlarına kadar her adım, sisteminizin ölçeklenebilirliğini ve güvenilirliğini belirler. Başarılı bir dağıtım, sadece modelin çalışması değil, aynı zamanda değişen kullanıcı taleplerine karşı kararlı kalabilmesiyle ölçülür. Bu rehberdeki stratejileri uygulayarak, veri gizliliğinden ödün vermeden yüksek performanslı bir yapay zeka ekosistemi kurabilirsiniz. Unutmayın ki, en iyi altyapı, ihtiyaçlarınıza göre sürekli evrilen ve izlenen altyapıdır. Şimdi, kendi modelinizi dağıtmak için ilk konteynerinizi hazırlayın ve performans metriklerinizi takip ederek sisteminizi optimize etmeye başlayın.