LLM Inference (Büyük Dil Modeli Çıkarımı)

Eğitilmiş bir büyük dil modelinin girdi metnine gerçek zamanlı yanıt üretmesi; gecikme, verim ve maliyet dengelenerek optimize edilir.

LLM inference (büyük dil modeli çıkarımı), eğitimi tamamlanmış bir yapay sinir ağının yeni bir girdi metnine (prompt) yanıt üretmek amacıyla gerçek zamanlı olarak çalıştırılmasıdır. Eğitim sürecinin aksine inference, modelin ağırlıklarını güncellemez; yalnızca ileri besleme (forward pass) gerçekleştirir ve her adımda bir sonraki tokeni tahmin eder. Temel performans metrikleri şunlardır: gecikme (latency — ilk tokenin üretildiği time-to-first-token ve toplam yanıt süresi), verim (throughput — saniyedeki token sayısı, tokens/s) ve maliyet (GPU/CPU saat başına işlenen token miktarı). Bu üç faktörün dengesi, inference altyapısının tasarımını doğrudan yönlendirir. KV Cache (Key-Value Cache), transformer modellerinde her self-attention adımında yeniden hesaplama yapmaktan kaçınmak için önceki token'lerin anahtar ve değer matrislerini GPU belleğinde saklayan bir optimizasyon tekniğidir. Özellikle uzun bağlam pencerelerinde (128K token gibi) VRAM kullanımını önemli ölçüde artırdığından, bellek yönetimi kritik bir tasarım kararı haline gelir. Quantization (sayısallaştırma), model ağırlıklarını FP32'den INT8, INT4 veya GGUF/AWQ formatlarına indirerek bellek tüketimini ve hesaplama süresini düşürür. 4-bit AWQ kuantizasyonu, tam hassasiyetli modele kıyasla 4 kat daha az VRAM gerektirirken yalnızca yüzde 1-3 kalite kaybına yol açar. Büyük ölçekte LLM inference için özelleşmiş çerçeveler geliştirilmiştir: vLLM (PagedAttention ile dinamik KV cache yönetimi ve sürekli batching), TensorRT-LLM (NVIDIA GPU optimizasyonu), TGI (Hugging Face Text Generation Inference) ve llama.cpp (CPU ve Apple Silicon için kuantize çıkarım). Bu araçlar sürekli batching (continuous batching) tekniğiyle binlerce eş zamanlı isteği verimli biçimde işler. Türkiye'deki geliştiriciler için yerel inference seçenekleri şunlardır: 24 GB VRAM'e sahip RTX 3090 ile Gemma 4B veya Llama 3.1 8B tam hassasiyetle; Apple M-serisi Mac'lerde llama.cpp + GGUF Q4 formatıyla 13B modeller; bulut için Google Vertex AI, AWS Bedrock veya Replicate API. Veri gizliliği gerektiren kullanım durumlarında (sağlık, hukuk) yerel inference hem KVKK uyumu açısından hem de gecikme avantajı bakımından öne çıkar.

LLM Inference Nasıl Çalışır?

Büyük dil modelleri autoregressive (otomatik bağıntılı) bir üretim stratejisi kullanır: model, girdi prompt'unu ve daha önce ürettiği token'ları bağlam olarak alır; her adımda kelime dağarcığı üzerinden olasılık dağılımı hesaplayarak bir sonraki token'ı seçer. Bu döngü (decoding loop), durdurma token'ına (EOS) veya maksimum token sınırına ulaşıncaya kadar devam eder. Her döngü, tüm transformer katmanlarından geçen bir forward pass gerektirdiğinden, modelin boyutu doğrudan gecikmeyi etkiler.

Temel Performans Metrikleri

  • check_circle TTFT (Time-to-First-Token): İlk token'ın üretilmesi için geçen süre; özellikle sohbet uygulamalarında kullanıcı deneyimini belirleyen birincil metriktir. Prefill (girdi işleme) aşamasının maliyetini yansıtır.
  • check_circle TPS (Tokens Per Second): Saniyede üretilen token sayısı; model verimliliğinin temel göstergesidir. 30+ TPS akıcı sohbet deneyimi için kabul edilebilir eşik olarak değerlendirilir.
  • check_circle GPU Kullanım Oranı: Donanım verimliliğinin ölçütü. Sürekli batching olmadan %40-60 olan GPU kullanımı, vLLM gibi araçlarla %90'ın üzerine çıkabilir.
  • check_circle Maliyet / Token: Bulut API'lerinde ve kendi donanımında inference maliyetini karşılaştırmak için kullanılan temel ekonomi metriği. GPT-4o $0.0025/1K token, açık modeller yerel GPU'da onlarca kez daha ucuzdur.

Inference Optimizasyon Teknikleri

  • check_circle KV Cache: Dikkat mekanizmasında daha önce hesaplanan anahtar/değer matrislerini bellekte saklayarak token başına işlem maliyetini düşürür. PagedAttention (vLLM), KV cache'i sanal sayfa tabanlı yönetir; böylece VRAM parçalanması önlenir.
  • check_circle Quantization: Model ağırlıklarını düşük bitteki formatlara (GPTQ, AWQ, GGUF Q4/Q8) dönüştürür. 4-bit kuantizasyon, 70B modeli 40 GB yerine 10 GB'a sığdırır ve doğruluk kaybı genellikle yüzde 1-3 aralığındadır.
  • check_circle Sürekli Batching (Continuous Batching): Tüm isteği tamamlamak yerine her token üretim adımında mevcut isteği gruplar; yeni gelen istekler boş kapasiteye anında eklenir. Statik batch'e kıyasla GPU kullanımını iki katına çıkarır.
  • check_circle Tensor Paralelizmi: Model ağırlıklarını birden fazla GPU'ya yayar; her GPU yalnızca kendi kesimini işler ve sonuçlar all-reduce ile birleştirilir. 70B+ modeller için zorunludur; NVLink veya InfiniBand bant genişliği kritiktir.
  • check_circle Speculative Decoding: Küçük bir taslak model (draft model) birden fazla token önerir; büyük model bu önerileri bir forward pass'te doğrular ya da reddeder. Doğru tahminler gecikmeyi önemli ölçüde düşürür.

Popüler Inference Çerçeveleri

vLLM

PagedAttention + sürekli batching. OpenAI API uyumlu sunucu; GPU kullanımını maksimize eden en yaygın açık kaynak çerçeve.

TensorRT-LLM

NVIDIA'nın optimizasyon kütüphanesi; Tensor Core ve FP8 hassasiyetiyle en yüksek GPU performansını hedefler.

llama.cpp

CPU ve Apple Silicon için C++ tabanlı GGUF inference. Sunucu gerektirmeden dizüstü bilgisayarda 13B+ model çalıştırır.

Ollama

llama.cpp üzerine inşa edilmiş kullanıcı dostu yerel inference aracı; Docker-benzeri model yönetimi ve REST API sunar.

Türkiye'de Yerel ve Bulut Inference

Veri gizliliği gerektiren sektörlerde (sağlık, hukuk, finans) yerel inference hem KVKK uyumu hem gecikme avantajı sunar. RTX 3090 (24 GB VRAM) ile Gemma 4B veya Llama 3.1 8B tam hassasiyetle; Apple M4 Pro (48 GB birleşik bellek) ile 27B modeller llama.cpp + GGUF Q4 formatında çalıştırılabilir. Bulut seçenekleri arasında Google Vertex AI (Model Garden), AWS Bedrock ve Replicate API öne çıkar. KOBİ'ler için maliyet-verim dengesi açısından Ollama + açık ağırlıklı model kombinasyonu, API çağrı maliyetlerini ortadan kaldıran pratik bir başlangıç noktası oluşturur.

Sıkça Sorulan Sorular

  • check_circle :
  • check_circle :
  • check_circle :
  • check_circle :
  • check_circle :