
2026-09-15•9 dakika
Aynı GPU ile daha fazla kullanıcıya, daha hızlı cevap: Şirket içi dil modellerinde performansı belirleyen teknikleri anlatıyoruz.
Bir yapay zeka modelinin yaşam döngüsü iki aşamadan oluşur: eğitim (training) ve çıkarım (inference). Eğitim, modelin milyarlarca parametresinin veriden öğrenildiği, çok pahalı ama bir kez yapılan süreçtir. Inference ise eğitilmiş modelin her kullanıcı sorusuna cevap ürettiği aşamadır ve her gün, her istekte tekrarlanır. Açık kaynak modelleri kullanan bir şirket için eğitim maliyeti zaten model üreticisi tarafından karşılanmıştır; sizin ödediğiniz asıl bedel inference'tır.
Bu nedenle inference verimliliği, bir on-prem yapay zeka projesinin fizibilitesini doğrudan belirler. Aynı iş yükünü iki GPU yerine bir GPU ile karşılayabilmek, ya da yanıt süresini 10 saniyeden 2 saniyeye indirebilmek, projenin kullanıcılar tarafından benimsenip benimsenmemesi ile yatırımın geri dönüş süresi arasında fark yaratır.
Bu yazıda, MeSoft olarak müşteri kurulumlarında uyguladığımız optimizasyon tekniklerini anlatıyoruz. Amacımız teknik ekiplere bir kontrol listesi, karar vericilere ise 'neden bu donanım ve bu yazılım?' sorusunun cevabını vermek.
Bir LLM bir isteği iki aşamada işler. Prefill aşamasında girdi metninin (soru, sistem talimatı ve eklenen dokümanlar) tamamı paralel olarak işlenir ve KV cache oluşturulur; bu aşama hesaplama gücüyle (compute-bound) sınırlıdır. Decode aşamasında ise model cevabı token token üretir; her yeni token için tüm model ağırlıklarının GPU belleğinden okunması gerekir, bu yüzden bu aşama bellek bant genişliğiyle (memory-bound) sınırlıdır.
Bu ayrım, doğru metrikleri izlemek için önemlidir. TTFT (Time To First Token), kullanıcının ilk kelimeyi görene kadar beklediği süredir ve büyük ölçüde prefill'e bağlıdır; uzun dokümanlar eklendiğinde artar. TPOT (Time Per Output Token) veya saniyedeki token sayısı, cevabın ne kadar akıcı aktığını gösterir ve decode'a bağlıdır. Throughput ise sistemin tüm kullanıcılar için toplamda saniyede kaç token ürettiğidir ve maliyet hesabının temelidir.
Pratik bir çıkarım: decode aşaması bellek bant genişliğiyle sınırlı olduğu için, tek kullanıcıyla çalışan bir GPU'nun hesaplama gücünün büyük kısmı boşta kalır. Bu boş kapasiteyi birden fazla isteği aynı anda işleyerek (batching) kullanmak, inference optimizasyonunun en büyük kazanç kaynağıdır.
Model ağırlıkları genellikle 16 bitlik (FP16/BF16) sayılar olarak dağıtılır; 8 milyar parametrelik bir model bu formatta yaklaşık 16 GB, 70 milyar parametrelik bir model ise yaklaşık 140 GB bellek gerektirir. Quantization, bu ağırlıkları 8 bit, 4 bit veya daha düşük hassasiyetle temsil ederek bellek ihtiyacını 2-4 kat azaltır. 4 bit quantization ile 8B bir model yaklaşık 5 GB'a, 70B bir model ise yaklaşık 40 GB'a iner.
Farklı quantization yöntemleri farklı ortamlara uygundur: GPTQ ve AWQ, GPU sunucularda yaygın kullanılan 4 bitlik yöntemlerdir; GGUF formatı (llama.cpp ve Ollama ile kullanılır) CPU ve tüketici GPU'larında esnek seçenekler sunar; FP8 ise yeni nesil veri merkezi GPU'larında neredeyse kayıpsız bir hız artışı sağlar. Ağırlıkların yanında KV cache de 8 bite düşürülerek aynı bellekte daha fazla eşzamanlı kullanıcıya yer açılabilir.
Quantization'ın bir bedeli vardır: özellikle 4 bitin altında, matematiksel akıl yürütme ve Türkçe gibi eğitim verisinde daha az temsil edilen dillerde kalite kaybı belirginleşebilir. Bu nedenle 'hangi quantization?' sorusunun cevabı genel benchmarklardan değil, şirketin kendi görevlerinden oluşan bir test setiyle verilmelidir. Çoğu zaman 4 bit quantize edilmiş büyük bir model, 16 bitlik küçük bir modelden daha iyi sonuç verir.
Geleneksel sunucularda her istek için olası en uzun cevap kadar KV cache belleği önceden ayrılır ve bu belleğin büyük kısmı boşa gider. vLLM'in tanıttığı PagedAttention, işletim sistemlerindeki sanal bellek sayfalamasına benzer şekilde KV cache'i küçük bloklar halinde, ihtiyaç oldukça ayırır. Bu, bellek israfını neredeyse sıfıra indirir ve aynı GPU'ya çok daha fazla eşzamanlı isteğin sığmasını sağlar. Ortak bir sistem talimatını paylaşan isteklerde önek önbellekleme (prefix caching) ile prefill hesabı da tekrar kullanılabilir.
Continuous (sürekli) batching, istekleri sabit gruplar halinde beklemek yerine her üretim adımında gruba yeni istek eklenmesine ve biten isteklerin çıkarılmasına izin verir. Böylece kısa bir soru, uzun bir rapor üreten başka bir isteğin bitmesini beklemez. Bu iki teknik birlikte, aynı donanımda basit bir uygulamaya göre throughput'u çoğu zaman birkaç kat artırır.
Speculative decoding ise küçük ve hızlı bir 'taslak' modelin birkaç token'ı önceden tahmin etmesi, büyük modelin bu tahminleri tek adımda doğrulaması prensibine dayanır. Doğru tahmin edilen token'lar ücretsiz kazanılmış olur ve çıktı kalitesi değişmez, çünkü nihai kararı her zaman büyük model verir. Özellikle şablona dayalı rapor metinleri ve kod gibi öngörülebilir çıktılarda gecikmeyi belirgin şekilde azaltır.
Inference sunucusu seçimi kullanım senaryosuna bağlıdır. vLLM ve SGLang, çok kullanıcılı GPU sunucular için yüksek throughput ve OpenAI uyumlu API sunar; TensorRT-LLM NVIDIA donanımında en yüksek performansı hedefler; llama.cpp ve Ollama ise tek sunucu, iş istasyonu veya CPU ağırlıklı ortamlarda kurulum kolaylığıyla öne çıkar. OpenAI uyumlu bir API kullanmak, uygulama kodunu değiştirmeden model veya sunucu değiştirebilmenizi sağlar.
Donanım tarafında temel kural şudur: önce iş yükünü tanımlayın, sonra donanımı seçin. Günde birkaç yüz doküman özetleyen 20 kişilik bir ofis için 24-48 GB belleğe sahip tek bir GPU ve 8-14 milyar parametrelik quantize bir model çoğu zaman yeterlidir. Yüzlerce eşzamanlı kullanıcı veya 70B sınıfı modeller gerektiğinde çoklu GPU ve tensör paralelliği gündeme gelir. Toplu (batch) raporlama gibi gerçek zamanlı olmayan işler gece çalıştırılarak aynı donanım gündüz etkileşimli kullanıma ayrılabilir.
MeSoft olarak inference optimizasyonunu tek seferlik bir kurulum değil, ölçüm odaklı bir süreç olarak ele alıyoruz: önce gerçek istek örnekleriyle yük testi yapıyor, TTFT, throughput ve kalite metriklerini ölçüyor, ardından quantization, batching ve önbellekleme ayarlarını bu verilere göre belirliyoruz. Bu yaklaşım, Mersin'deki KOBİ'lerin yapay zeka yatırımını en düşük donanım maliyetiyle hayata geçirmesini sağlıyor. Bu optimizasyonların neden işe yaradığını anlamak için serinin attention mekanizması yazısına göz atabilirsiniz.