Elektrik 1 Elektrik 2 Elektrik 3 Elektrik 4 Elektrik 5 Elektrik 6

LLM Tabanlı Sistemlerde Operasyonel İzleme: Loglama, Performans ve Hata Yönetimi

08.06.2025 10:50


Bir yapay zekâ uygulamasını üretime aldığınızda iş sadece modeli çalıştırmakla bitmez. Sistemin sürekliliğini ve güvenilirliğini sağlamak için operasyonel izleme araçları hayati öneme sahiptir. Bu yazıda, LLM tabanlı sistemlerde nasıl etkili loglama yapılacağı, performans takibinin nasıl sağlanacağı ve hataların nasıl yönetileceği konularını ele alıyoruz.

1. Loglama: Temel Taş

logging modülü, Python tabanlı projelerde ilk tercih edilen çözümdür:


import logging

logging.basicConfig(
    filename='llm_system.log',
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

logging.info("Embedding başlatıldı.")
logging.error("Pinecone bağlantı hatası.")

Öneri: Önemli olayları (embedding, sorgu, hata, zaman aşımı) ayrı logger’larla izleyin.

2. Hata Geri Bildirimi (Error Tracking)

Üretim ortamlarında meydana gelen hataları e-posta, Slack veya hata izleme sistemleri ile yöneticilere bildirmek kritik önem taşır. En yaygın çözüm: Sentry


import sentry_sdk
sentry_sdk.init(dsn="SENTRY_DSN_KEY")

try:
    result = model.generate(query)
except Exception as e:
    sentry_sdk.capture_exception(e)

📬 Alternatifler: Airbrake, Rollbar, LogRocket

3. Performans İzleme

Sorgu süreleri, yanıt kalitesi ve embedding hızları gibi metrikleri takip edebilmek için zaman ölçümü uygulamak gerekir:


import time

start = time.time()
response = model.generate(query)
duration = time.time() - start
logging.info(f"Sorgu süresi: {duration:.2f} saniye")

Grafana + Prometheus entegrasyonu ile görsel performans dashboard'ları oluşturabilirsiniz.

4. API Trafik Takibi

FastAPI kullanıyorsanız, gelen her isteği özel olarak loglayabilir veya izleyebilirsiniz:


from fastapi import Request

@app.middleware("http")
async def log_requests(request: Request, call_next):
    start_time = time.time()
    response = await call_next(request)
    duration = time.time() - start_time
    logging.info(f"{request.method} {request.url} - {duration:.2f}s")
    return response

5. Kritik Olaylar İçin Bildirim

Belirli olaylar (örneğin embedding servisinin çökmesi) Slack’e bildirilerek hızlı müdahale sağlanabilir.


import requests

def notify_slack(msg):
    url = "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK"
    requests.post(url, json={"text": msg})

notify_slack("Embedding servisi yanıt vermiyor!")

6. Log Rollover / Temizleme

Log dosyaları zamanla büyür. RotatingFileHandler gibi çözümlerle log boyutunu sınırlayabilirsiniz:


from logging.handlers import RotatingFileHandler

handler = RotatingFileHandler("system.log", maxBytes=1000000, backupCount=5)
logger = logging.getLogger()
logger.addHandler(handler)

Sonuç

LLM tabanlı sistemlerde sadece model performansı değil, sistemin genel sağlığı da izlenmelidir. Loglama, hata bildirimi ve performans analizi; kesintisiz ve kaliteli hizmet için zorunludur.

🔗 Devamı Gelecek

Bir sonraki yazımızda, kurumsal ortamda çok kullanıcılı bir LLM sisteminin kullanıcı yetkilendirme, veri güvenliği ve erişim kontrolü gibi güvenlik bileşenlerini nasıl yöneteceğimizi inceleyeceğiz.