T.UZUN_
‹ YAPAY ZEKA

LLM Sözlüğü Bölüm 2: Performans KPI'ları ve Optimizasyon Teknikleri

Bu yazıda, LLM performansının temel KPI'larını (TTFT, TPOT), Continuous Batching kuyruk yönetimini, AWQ/GPTQ kuantizasyonunu, FlashAttention ve Speculative Decoding gibi ileri seviye hızlandırma tekniklerini ele alıyoruz.

Paylaş
llm.jpg

1. Prodüksiyon Performans Metrikleri ve KPI Standartları

Büyük dil modellerinin canlı ortam performansını değerlendirirken tek başına saniyedeki token sayısı yeterli bir ölçüt değildir. Sistem performansı aşağıdaki metrikler üzerinden izlenir:

KPI / Metrik

Tanım ve Odak Noktası

Teknik Darboğaz Alanı

İdeal Prodüksiyon Hedefi

TTFT (Time to First Token)

İstemin sunucuya ulaşmasından ilk yanıt token'ının üretilmesine kadar geçen süre.

Prefill Fazı / GPU FLOPS Kapasitesi

< 500 ms (Etkileşimli Chat)

TPOT (Time Per Output Token)

Yanıt akışı sırasında üretilen her bir sıralı token arasındaki gecikme.

Decode Fazı / Memory Bandwidth

< 20-30 ms/token

TPS (Tokens Per Second)

Saniyede üretilen toplam token sayısı (1000 / TPOT).

Decode Fazı / VRAM Hızı

&gt; 30-50 tok/s (İnsan okuma hızının üzeri)

P99 Latency

İstek gecikme sürelerinin yüzdelik dağılımı (Kullanıcıların %99'unun yaşadığı maksimum gecikme).

Sistem Eşzamanlılığı / Kuyruk Yönetimi

Dar ve kararlı dağılım eğrisi

Memory Footprint (RSS)

Model ağırlıkları ve KV Cache için harcanan tepe bellek.

VRAM Kapasitesi ve Parçalanma

Mevcut Donanım Sınırının %85'i

Cold-Start Süresi

Modelin diskten belleğe yüklenip ilk çıkarıma hazır hale gelme süresi.

Depolama Okuma Hızı (Gen5 SSD / PCIe)

< 5-10 saniye

TTFT ve TPOT Teşhis Senaryoları

  • Prefill Darboğazı (Yüksek TTFT): 8.000 token'lık bir finansal rapor modele yüklendiğinde, ilk yanıtın 6 saniye sonra gelmesi yüksek TTFT göstergesidir; paralel matris hesaplama kapasitesi (FLOPS) yetersiz kalmaktadır.

  • Decode Darboğazı (Yüksek TPOT): İlk token geldikten sonra saniyede yalnızca 12 token üretilmesi yüksek TPOT göstergesidir; model ağırlıkları her adımda VRAM'den çekirdeklere yetişememektedir.


2. Eşzamanlılık ve Kuyruk Yönetimi: Continuous Batching

Servis düzeyinde verimlilik (throughput), tekil kullanıcının TPS değerinden farklıdır. Bütüncül verim, sistemin birim zamanda tüm kullanıcılara sunduğu toplam token miktarını ifade eder. Sistem üzerindeki yük arttıkça p99 gecikme değerlerinin sıçramaması için Continuous Batching (Sürekli Batching) mimarisi kullanılır.

Geleneksel static batching yönteminde, bir gruptaki tüm istekler tamamlanana kadar GPU yeni istek kabul etmez ve erken biten isteklerin yeri boş kalır. Continuous Batching ise iteration-level scheduling (adım düzeyinde zamanlama) kullanarak, tamamlanan her token adımında biten isteği dışarı çıkarır ve kuyruktaki yeni isteği prefill fazına alır. Bu sayede GPU çekirdekleri %90'ın üzerinde dolulukla çalışır.


3. Model Sıkıştırma Hiyerarşisi: Nicemleme, Budama ve Distilasyon

LLM'lerin devasa bellek ve hesaplama gereksinimlerini dizginlemek için uygulanan temel sıkıştırma hiyerarşisi şu şekildedir:

Ham Model (FP16 / 70B Params) ~ 140 GB VRAM
       │
       ├──&gt; Knowledge Distillation ──&gt; Öğrenci Model (13B Params)
       │
       ├──&gt; Structured Pruning ──────&gt; %20 Katman/Başlık Budama (10.4B)
       │
       └──&gt; Quantization (AWQ/INT4) ──&gt; 4-Bit Hassasiyet (~ 35 GB VRAM)

Nicemleme (Quantization) Teknikleri

Nicemleme, model parametrelerinin sayısal hassasiyetini (FP16/BF16) INT8 veya INT4 seviyesine indirme işlemidir. Örneğin 70B parametreli bir Llama 3 modeli FP16 formatında 140 GB VRAM (4 adet A100 GPU) gerektirirken, 4-bit AWQ kuantizasyonu ile 35 GB VRAM seviyesine inerek tek bir A10G GPU üzerinde çalışabilir.

  • LLM.int8(): Ağırlıkların büyük kısmını INT8 formatına dönüştürürken, doğruluk kaybını önlemek için uç değerleri (outliers) FP16 hassasiyetinde tutar.

  • GPTQ: İkinci derece gradyan bilgilerini kullanarak ağırlıkları 4-bit seviyesine indiren eğitim sonrası kuantizasyon (PTQ) algoritmasıdır.

  • AWQ (Activation-aware Weight Quantization): Ağırlıkların önemini aktivasyon istatistiklerine göre belirler. %1'lik baskın ağırlık dizilimini koruyarak GPTQ'ya kıyasla daha yüksek doğruluk ve çıkarım hızı sunar.

  • GGUF: llama.cpp ekosistemi tarafından kullanılan, model mimarisini ve kuantize matrisleri barındıran ikili dosya biçimidir.

Budama (Pruning) ve Distilasyon

  • Budama: Modeldeki önemsiz ağırlıkların veya mimari blokların çıkarılmasıdır. SparseGPT algoritması, Llama ölçeğindeki modelleri ek eğitime ihtiyaç duymadan %50 seyreklik seviyesine kadar budayabilmektedir.

  • Distilasyon: Büyük "öğretmen" modelin bilgisinin küçük "öğrenci" modele aktarılmasıdır.


4. İleri Seviye Çıkarım Hızlandırıcılar

  • FlashAttention: GPU mimarisindeki hızlı SRAM belleği ile yavaş HBM arasındaki veri transfer trafiğini azaltan algoritmadır. Dikkat matrisini bloklar halinde SRAM'e alarak hesaplar ve HBM I/O darboğazını aşar.

  • Speculative Decoding: Küçük bir taslak model (draft model) birkaç sıralı token tahmin eder. Büyük hedef model ise bu tahminleri tek bir paralel prefill adımında doğrular. Yanıt kalitesinden ödün vermeden 2-3 kat hız artışı elde edilir.

  • Prefix & Multimodal Caching: Sistem istemlerinin KV durumlarını bellekte saklayarak TTFT süresini 5.8 kata kadar düşürür. Görsel-dil modellerinde (MLLM) görsellerin SHA-256 içeriği üzerinden hash'lenerek saklanması, görsel kodlayıcı yükünü kaldırır. Örnek olarak Qwen3-VL-8B modelinde tekrarlanan görsel sorguları 21.7 saniyeden 0.78 saniyeye inerek 28 kat hızlanmıştır.


> Sonraki Bölüm: Serimizin 3. yazısında, Apple Silicon (MLX, vllm-mlx) ile Windows Discrete GPU altyapılarını ve yerel çıkarım motorlarının (llama.cpp, MLC-LLM, vLLM) kıyaslamalarını inceleyeceğiz.

Sık Sorulan Sorular

+TTFT ile TPOT arasındaki temel operasyonel fark nedir?

TTFT, kullanıcının prompt'u girmesinden ilk token'ın üretilmesine kadar geçen ve GPU FLOPS kapasitesine (Prefill fazı) dayanan süredir; TPOT ise ilk token'dan sonra üretilen her bir token arasındaki süreyi temsil eder ve VRAM bellek bant genişliğine (Decode fazı) bağımlıdır.

+Continuous Batching yöntemi Static Batching'e göre neden daha avantajlıdır?

Static batching tüm isteklerin tamamlanmasını bekleyerek GPU'yu atıl bırakırken, Continuous Batching adım düzeyinde (iteration-level) çalışarak biten istekleri anında tahliye eder ve yeni istekleri beklemeden işleme alarak GPU doluluğunu %90'ın üzerine taşır.

+AWQ quantization model doğruluğunu nasıl korur?

AWQ, tüm ağırlıkları rastgele budamak yerine model aktivasyon istatistiklerini izler; dikkat ve temsil açısından kritik olan %1'lik baskın ağırlıkları koruyarak 4-bit seviyesinde kayıpsız ve yüksek hızlı çıkarım sağlar.

Bu içerik sana ne hissettirdi?

İlgili Yazılar