AI Engineering Guidebook 2025: LLM, RAG ve Agentleri Herkesin Anlayacağı Dilden Rehber
400 sayfalık rehberi satır satır okuduk, kısaltmadan sadeleştirdik. LLM nasıl düşünür, Transformer neden önemli, model nasıl dört aşamada eğitilir, LoRA neden binlerce dolar tasarruf ettirir, RAG neden hâlâ kral, context neden prompttan daha önemli ve agentler nasıl takım olur — hepsini kütüphane, mutfak, trafik ve bavul analogileri, güncel internet örnekleri ve 5 ferah diyagramla anlatıyoruz.
"Bu kitap formülleri ezberletmiyor; her tekniği mutfak tarifi gibi açıklıyor. Biz de o tarifi kısaltmadan, ama herkesin tezgahta deneyebileceği hale getirdik — ne eksilttik ne süsledik."
- Kaynak
- 400 sayfa2025 Edition · 11 bölüm · 380+ görsel
- Odak
- 11 adımLLM → RAG → Agent → MCP → Yayın
- Yöntem
- Sade dilanaloji + örnek + diyagram
LLM nedir ve neden büyük olmak zorunda?
Bir cümle tamamlayalım: Once upon a… aklına hemen time gelir. The capital of France is… dediğinde Paris dersin. Bu kadar doğal tahmin, büyük dil modellerinin temelidir. LLM, devasa metin yığınını okuyup bir sonraki kelimeyi tahmin etmeyi öğrenen bir sistemdir. Metni token denen küçük parçalara böler — kelime, hece ya da noktalama — ve sürekli en olası sonrakini seçer. Özet, kod, açıklama, sohbet hepsi bu tekrarlayan tahminin ürünüdür. Tek tek kelimeyi doğru tahmin etmek kulağa basit gelir ama milyarlarca kez tekrarlanınca dilin ritmi, mantığı ve hatta mizahı ortaya çıkar.
Neden tek model her işi yapıyor? Eskiden her görev için ayrı model vardı: çeviri için biri, özet için biri, duygu analizi için başka biri. LLM, dili genel olarak öğrendiği için tek gövdeyle çeviri de yapar, kod da yazar, analiz de eder. Bu mutfaktaki her yemeği ayrı tencerede pişirmek yerine tek bir usta aşçıya tüm teknikleri öğretmek gibidir. Usta aşçı çorbayı da bilir, hamuru da, ızgara tekniğini de — çünkü temel malzeme ve ısı bilgisi ortaktır. LLM için o temel malzeme dildir.
Peki büyük ne demek? Üç ölçü var: parametre sayısı yani modelin hafızasındaki ayar düğmeleri, eğitim verisi yani okuduğu kitap, makale, kod ve konuşma miktarı, ve harcanan işlem gücü. Parametre arttıkça model daha derin ilişki kurar. Küçük modeller yüzeyi taklit eder; büyükler talimat izler ve çok adımlı akıl yürütmeyi çözer. Örneğin BERT 340 milyon parametreyken GPT-3 175 milyardı — yaklaşık beş yüz kat fark, yetenek farkını açıklar. Büyüme tesadüf değil, ölçek etkisidir: daha fazla kapasite, daha iyi genelleme demektir. Ancak büyük olmak tek başına yetmez, veri ve eğitim de aynı oranda ölçeklenmelidir.
Güncel ölçek örneği — DeepSeek-V3: 2024 sonunda yayınlanan DeepSeek-V3 teknik raporu arxiv 2412.19437, 2025'te endüstri standardı haline gelen MoE yani uzmanlar karışımı mimarisini somutlaştırıyor. Model toplam 671 milyar parametreye sahip ama her token için sadece 37 milyarını aktive ediyor. Yani kütüphanenin tamamını sırtında taşımak yerine her soruda sadece ilgili reyonun ışığını yakıyor. Bu sayede hem devasa bilgi birikimi hem de makul çıkarım maliyeti mümkün oluyor. Raporda ayrıca auxiliary-loss-free load balancing ve multi-token prediction gibi verimlilik hileleri var — bavula her şeyi tıkıştırmak yerine sadece yolculukta lazım olanı almak gibi.
Bir bavul düşün: 671 milyar parametre, dev bir bavul dolusu kıyafet gibidir. Her yolculuğa tüm bavulu açmazsın; hava durumuna göre sadece 37 milyarlık bir kombini alırsın. MoE tam bunu yapar — her token farklı uzmanlara yönlenir. Bu da eğitimi ucuzlatır, çıkarımı hızlandırır ve büyük modelin herkes tarafından kullanılabilir olmasını sağlar. Küçük ekipler için bu, süper bilgisayarı olmayanların bile dev modeli fine-tune edebilmesi demektir.
Son olarak neden herkes LLM konuşuyor? Çünkü dil, insan bilgisinin ortak protokolüdür. Kod, makale, müşteri mesajı, tıbbi not — hepsi metin. Dili iyi modelleyen sistem, bu alanların hepsine dokunabilir. Ölçek büyüdükçe ortaya çıkan yetenekler de şaşırtıcıdır: küçük model çeviri yapar, büyük model ise çeviri yaparken aynı zamanda tonu korur, hatayı düzeltir ve öneri ekler. Bu sıçrama, parametre ve verinin birlikte arttığı noktada kendiliğinden doğar — tıpkı kütüphanede yeterince kitap okuyunca artık yeni kitapları tahmin edebilir hale gelmek gibi.
Transformer: Metni anlayan motor nasıl çalışır?
LLM'in kalbi Transformer'dır. Klasik sinir ağları cümleyi sırayla okurken, Transformer tüm tokenlere aynı anda bakar ve hangilerinin birbirini ilgilendirdiğini ölçer. Attention dediğimiz şey tam budur: Banka kelimesi para cümlesinde başka, nehir cümlesinde başka anlama gelir — Transformer bağlama bakıp doğru anlamı seçer. Bunu yaparken her kelime için tüm cümleyi tarar ve en alakalı olanlara daha fazla ağırlık verir. Bu yüzden uzak kelimeler arasındaki ilişkiyi bile yakalar.
Bileşenleri mutfak gibi düşün: Tokenization malzemeyi doğrar — yaygın kelimeler tek token, nadirler parçalanır ki sözlük yönetilebilir kalsın. Örneğin Hello world tek token olabilir ama antikonstitusyonel birden fazla parçaya bölünür. Positional encoding sırayı ekler, yoksa model karışık harfleri anlamaz — tıpkı tarifte malzemeleri sırasız koymak gibi. Transformer katmanları üst üste dizilir; her katman önceki katmanın çıktısını daha da inceltir, referansları takip eder ve uzak bağlantıyı kurar. En alttaki katman kelimeyi görür, üsttekiler cümleyi, en üsttekiler paragrafın niyetini.
Parametreler ise modelin hafızasıdır — milyarlarca ayar düğmesi. Tek makineye sığmaz, onlarca GPU'da paralel eğitilir. Sıradan bir laptop değil, veri merkezi gerekir. Ollama veya LM Studio ile yerel çalıştırmak mümkün ama sınırlı boyutta; tam dev model için bulut gerekir. Her katmanda attention ve feed-forward alt katmanları vardır; biri ilişkiyi ölçer, diğeri bilgiyi dönüştürür. Bu iki adım tekrarlanarak derin bir anlayış inşa edilir.
Yedi üretim ayarı — LLM'in direksiyonu: Max tokens cevabın uzunluğunu keser; temperature sıfıra yakın deterministik, 0.7 ile 1.0 arası yaratıcı; top-k en olası k tokeni seçer; top-p yüzde 90 olasılık kütlesini kapsayanları alır; frequency penalty tekrarı azaltır; presence penalty yeni kelimeye iter; stop sequence dur demeyi öğretir — JSON üretirken kritik. Bonus min-p: En olası token güvenliyse aralığı daraltır, kararsızsa genişletir — otomatik vites gibi davranır ve saçma sapan tokenleri eler.
Bu motor neden bu kadar güçlü? Çünkü paraleldir. Eski RNN'ler kelimeyi tek tek okurken Transformer hepsine aynı anda bakar ve GPU'nun binlerce çekirdeğini tam kullanır. Bu da eğitimi hızlandırır ve bağlam penceresini büyütür. 2025'te 128k token pencere sıradan hale geldi; bir kullanım kılavuzunu tek seferde verebiliyorsun. Dikkat mekanizması, uzun metinde kaybolmadan kilit bilgiyi öne çeker — tıpkı kalabalık mutfakta şefin en kritik tavayı gözünden kaçırmaması gibi.
Pratikte bu ne demek? Bir e-posta özetleteceksen, model sadece son cümleye değil, başlıktaki tarih ve ekteki dosyaya da bakar ve ağırlık verir. Hatalı ayar yaparsan halüsinasyon artar: temperature çok yüksekse yaratıcı ama uyduran, çok düşükse doğru ama sıkıcı olur. Bu yüzden üretim ayarı, motora verilen gaz gibidir — kontrollü gaz, güvenli sürüş.
Bu katman yapısı derinleştikçe modelin anlama gücü artar ama maliyeti de büyür. 80 katmanlı bir modelde her token için 80 kez attention hesaplanır; bu yüzden büyük modellerde KV cache ve PagedAttention gibi optimizasyonlar olmadan uzun bağlamda çalışmak trafikte her kavşakta durmak gibi yavaşlar.
Sıfırdan eğitim: 4 aşamada ham modelden akıllı asistana
Sıfır noktasında model rastgele ağırlıklarla saçmalar: What is an LLM? sorusuna try peter hand hello 448Sn der. Sonra dört aşama gelir ve model adım adım terbiye olur. Bu bir bavul hazırlama sürecine benzer: önce tüm eşyaları ortaya dökersin, sonra katlarsın, sonra eksikleri giderir ve en son fermuarı kapatmadan kontrol edersin.
1) Pre-training: İnternetin büyük kısmını okuyup bir sonraki tokeni tahmin eder. Dilbilgisi, dünya bilgisi ve kod kalıbı burada öğrenilir ama model sohbet edemez — sadece metni devam ettirir. Trilyonlarca token, binlerce GPU günü demektir. DeepSeek-V3'te 14.8 trilyon token ve FP8 karma hassasiyet kullanıldı; bu, bavula kıyafetleri gelişigüzel doldurmak gibidir — hepsi içine girer ama düzen yoktur.
2) Instruction fine-tuning yani SFT: Talimat ve cevap çiftleriyle eğitilir: soru nasıl sorulur, cevap nasıl formatlanır öğrenir. Artık özetle, kod yaz veya açıkla diyen komutları izler. Bütün ham veri tükenmiş, insan etiketli veri bütçesi de sınırlıdır — peki sonra ne olacak? SFT, bavuldaki kıyafetleri katlayıp düzenlemek gibidir; artık aradığını bulursun.
3) Preference fine-tuning yani RLHF ve PPO: ChatGPT'deki hangi cevap daha iyi ekranı işte burada devreye girer. İnsan tercihi toplanır, ödül modeli eğitilir ve PPO ile LLM insan hizasına çekilir. Doğru cevabın tek olmadığı nezaket, ton ve güvenlik burada şekillenir. Bir kıyafetin ütülü olup olmadığını insan gözü kararlaştırır — makine tek başına bilemez.
4) Reasoning fine-tuning yani RLVR ve GRPO: Matematik gibi tek doğru cevabı olan alanda insan tercihi gerekmez, doğruluk ödülün kendisidir. Model birden fazla aday üretir, doğru olan ödüllendirilir. DeepSeek'in GRPO'su tam da bu — etiketsiz, deterministik ödülle akıl yürütme gücü kazandırır. Bavulun fermuarı kapanıyor mu testi gibi: sayıyla doğrulanır, zevke değil.
Reinforcement tarafında iki altyapı notu kritik: OpenEnv PyTorch ekibi tarafından sunulan açık ortam standardıdır; ortamlar Docker içinde standartlaşır — reset, step, state ile her oyun aynı arayüzden oynanır. Düşün ki farklı masa oyunlarını aynı kurallı masada oynuyorsun. ART yani Agent Reinforcement Trainer ise LLM ajanlarının çok adımlı izlerini, araç çağrılarını toplayıp GRPO ile günceller. Yani hem masa hem oyuncu aynı dili konuşur ve ajanlar deneme yanılma ile gelişir.
Bu dört aşama neden önemli? Çünkü her biri farklı bir eksikliği kapatır. Pre-training bilgi verir ama terbiye etmez; SFT terbiye eder ama zevk katmaz; RLHF zevk katar ama akıl yürütmeyi derinleştirmez; RLVR ise aklı keskinleştirir. Bir kütüphane düşün: önce tüm kitapları rafa dizersin, sonra katalog yaparsın, sonra okuyucuya göre önerirsin, en son zor sorular için özel eğitim verirsin. Eksik aşama bırakırsan model ya kaba ya da kayıtsız kalır.
Güncel pratik: 2025'te birçok ekip pre-training yapmıyor, açık bir base model alıp sadece 3 ve 4. aşamaları koşuyor. Çünkü 671 milyar parametreyi sıfırdan eğitmek aylar ve milyonlarca dolar demek. Onun yerine var olan bavulu alıp kendi eşyaların için küçük gözler eklemek çok daha akıllıca — ki bu da bir sonraki bölümün konusu olan fine-tuning dünyasıdır.
Prompt mühendisliği: Doğru soru neden yarı cevap?
Modeli değiştirmeden sonucu değiştirmenin en ucuz yolu prompttur. Direksiyon gibidir: küçük bir oynama büyük yön değişimi yaratır. İyi prompt, modelin zaten bildiği bilgiyi doğru rafa yönlendirir; kötü prompt ise aynı bilgiyi karıştırır. Bu yüzden prompt mühendisliği, pahalı eğitim yerine ilk başvurulacak kaldıraçtır.
Üç akıl yürütme tekniği: Chain-of-Thought yani CoT, Adım adım düşün der ve doğruluğu artırır — model ara adımları yazınca hata azalır. Self-Consistency aynı soruyu beş kez sordurup çoğunluk oyu alır — sıcaklık varyansını tolere eder ve tekil şans hatasını eler. Tree-of-Thoughts yani ToT her adımda dallanır ve en umut vereni seçer — arama algoritması gibi çalışır, pahalı ama güçlüdür. Hepsi serbest düşünmeye dayanır; uzun ve kural yüklü ajanlarda ise yetmez ve unutkanlık başlar.
ARQ — Attentive Reasoning Queries: 2000 kelimelik sistem promptu olan ajan kısa sürede kural unutur. ARQ her adımı JSON sorusuna çevirir: hangi kural geçerli, hangi aracı çağırmalı, final mesajı nasıl yazmalı? 87 senaryoda ARQ yüzde 90.2, CoT yüzde 86.1, direkt cevap yüzde 81.5 başarı — yapı serbest düşünmeyi yener. Parlant framework'ü bunu guideline proposer, tool caller ve message generator içinde kullanır. Yani serbest kompozisyon yerine sınavdaki çoktan seçmeli sorular gibidir — model şıkları net görünce doğruyu daha iyi seçer.
Verbalized Sampling — mod çöküşüne çözüm: RLHF, annotatorların tanıdık olana eğilimi yüzünden çeşitliliği 1.6 ile 2.1 kat düşürür. Model hep aynı güvenli espriyi yapar. Çözüm basit: Bana bir fıkra anlat yerine 5 fıkra ve olasılıklarını listele de. Model dağılımı sözelleştirince pre-trainingdeki zenginlik geri gelir ve çeşitlilik yüzde 66.8 korunur. Büyük modellerde etki iki kata kadar çıkar. Bu, trafikte hep aynı şeritte kalmak yerine şeritleri sayıp seçmek gibidir — seçenek görününce sıkışma azalır.
JSON prompting — belirsizliği bitir: E-postayı özetle dediğinde model tahmin eder. JSON şeması verince alanlar sabit, tip net ve otomasyon hazır olur. Claude XML sever, diğerleri Markdown sever — önemli olan yapıdır. Şablon tekrar kullanılır ve API'ye direkt girer. Muazzam veri zaten API ve webden geldiği için model yapılı dili ana dili gibi anlar.
Pratikte prompt stratejisi katmanlı olmalıdır. Basit soruda CoT yeter; kural yüklü ajan için ARQ şart; yaratıcılıkta çeşitlilik için Verbalized Sampling, otomasyonda JSON şema. Hepsini aynı yerde kullanmak bavula hem yazlık hem kışlık doldurmak gibidir — ağır ve verimsiz. Doğru kombinasyon ise hafif ve isabetli bir yolculuk sunar.
// JSON prompt örneği — tutarlı çıktı için
{
"gorev": "ozetle",
"girdi": "{{email_metni}}",
"cikti_semasi": {
"ozet": "string, max 2 cumle",
"aksiyonlar": ["string"],
"oncelik": "dusuk | orta | yuksek"
},
"kurallar": ["uydurma yok", "kaynak goster"]
}
// ARQ örneği — serbest düşünme yerine soru formu
{
"soru": "Hangi kural gecerli?",
"secenekler": ["iade 14 gun", "degisim 30 gun"],
"gerekce": "kisa aciklama"
}Son not: prompt mühendisliği sihir değil, beklenti yönetimidir. Modeli kandırmaz, sadece doğru bağlamı öne çıkarır. En iyi prompt bile kötü context ile kurtarmaz — ki bu da bir sonraki bölüm olan fine-tuning ve ardından gelen RAG ile context engineering'in neden kritik olduğunu açıklar.
Fine-tuning evreni: LoRA, QLoRA ve GRPO ile ucuz ve akıllı uyum
Fine-tuning, hazır modeli kendi verinle uyarlamaktır. BERT çağında kolaydı — 340 milyon parametre tek GPU'da ayarlanırdı. GPT-3 175 milyarda aynı yöntem imkansız hale geldi: sadece ağırlıklar float16'da 350 GB tutar. Bin kullanıcı için 350 TB demek — kimse sürekli RAM'de tutamaz ve maliyet uçar. Bu yüzden bavulun tamamını yeniden dikmek yerine sadece fermuarı değiştirmek gibi akıllı yollar arandı.
Çözüm LoRA ve türevleridir. Fikir basit: W ağırlığını dondur, yanına iki küçük matris A ve B ekle. r eşittir 8 gibi küçük rank yeterlidir. Ürünleri ΔW eşittir A çarpı B, W artı ΔW ile çıkarım yap. Sadece A ve B eğitilir, yüzde 99 parametre donuk kalır. Örneğin d eşittir k eşittir 4096, r eşittir 8 ise orijinal 16.7 milyon yerine 65 bin parametre — yaklaşık 256 kat az. Eğitim ucuzlar, depolama hafifler ve her müşteri için sadece küçük adaptör saklanır.
Beş varyant — ihtiyacına göre seç: LoRA genel ve dengelidir, ilk tercihtir. LoRA-FA'da A donuk kalır sadece B eğitilir — aktivasyon belleği düşer ve bellek kritikse seçilir. VeRA'da A ve B paylaşımlı rastgele ve donuktur, sadece ölçek vektörleri b ve d eğitilir — aşırı parametre kısıtında işe yarar. Delta-LoRA, A çarpı B değişimini W'ye de ekler ve daha derin uyum istendiğinde tercih edilir. LoRA+ ise B'ye daha yüksek learning rate verir ve hızlı yakınsama için idealdir. Hepsi aynı bavula farklı fermuar takma şeklidir — biri hafif, biri sağlam, biri hızlı.
Bonus üçgen: QLoRA, W'yi 4-bit quantization ile küçültür — 0.1 GB matris 0.025 GB olur ama hassasiyet biraz düşer. DoRA ağırlığı büyüklük yani magnitude ve yön yani direction diye ayırıp daha iyi öğrenir; 2024 ACL makalesi DoRA'nın LoRA'ya göre özellikle düşük rankta daha stabil olduğunu gösterir. LoRA-drop eğitip ölçüm yapar, etkisi sıfıra yakın katmanları siler ve israfı keser. Üçü birlikte bavulu hem küçültür hem düzenler.
SFT mi RFT mi — karar ağacı: Etiketli verin çok mu? SFT yap. Yok mu? Görev doğrulanabilir mi, yani matematik veya kod gibi kesin cevap var mı? RFT ve GRPO kullan. Değilse RLHF gerekir. Etiket az ve akıl yürütme lazım ise RFT, değilse SFT. SFT ezberler, RFT keşfeder — ödülle öğrenir ve cevabı bizzat bulur. Kütüphanede fotokopi çekmek SFT, problemi kendin çözüp öğretmenden yıldız almak RFT gibidir. DerGuide önerisi de net: doğrulanabilir görevde RFT, diğerinde SFT ile başla.
Veri tarafı — IFT ve sentetik dataset: Pre-trained model metni devam ettirir ama sohbet edemez. Distilabel ile sentetik veri üretilir: talimat ver, iki LLM cevap üretsin, hakem LLM en iyiyi seçsin — instruction ve response çifti hazır olur. Bu SFT'nin yakıtıdır ve veri azlığında hayat kurtarır. Sentetik veri bavula konan yedek kıyafettir — az eşyayla çok kombin yapmayı sağlar.
# LoRA ileri geçiş — sade pseudocode
class LoRAWeights(nn.Module):
def __init__(self, d, k, r=8, alpha=16):
self.A = nn.Parameter(torch.randn(d, r) * 0.01)
self.B = nn.Parameter(torch.zeros(r, k))
self.alpha = alpha
def forward(self, x):
return (x @ self.A @ self.B) * (self.alpha / r)
# GRPO ile akıl yürütme eğitimi — 4 ödül
from trl import GRPOConfig, GRPOTrainer
config = GRPOConfig(num_generations=4, temperature=0.9)
trainer = GRPOTrainer(model="Qwen3-4B-Base", args=config,
reward_funcs=[format_tam, format_yakin, cevap_dogru, sayi_dogru])GRPO pratikte: Sistem promptu Adım adım düşün, dataset Open R1 Math, dört deterministik ödül ve HuggingFace GRPOConfig ile GRPOTrainer. Etiketsiz ve insan müdahalesi olmadan akıl yürütme modeli doğar — DeepSeek-R1'in gücünün temeli budur. 2025'te yayınlanan reasoning teşvik makalesi bunu pekiştirme ile akıl yürütme teşviki diye özetler. Yani modele binlerce çözülmüş örnek göstermek yerine sadece doğru mu yanlış mı diye puan verirsin; model kendi yolunu bulur. Bu, mutfakta tarif ezberletmek yerine malzemeyi verip doğru yemeği ödüllendirmek gibidir.
RAG: Modelin dış dünyayı okuması — 8 mimari ve chunking
RAG üç kelime: Retrieval yani bul, Augmented yani ekle, Generation yani üret. Modelin eğitim kesim tarihini aşma yöntemidir. Her gün yeniden eğitmek haftalar sürer ve özel verini zaten görmedi — RAG prompta taze bilgi ekler ve modeli güncel tutar. Bu kütüphaneye her gün yeni raf eklemek gibidir; tüm binayı yıkıp yeniden yapmazsın, sadece yeni kitapları doğru rafa koyarsın.
Vektör veritabanı neden? Metni sayısal embeddinge çeviririz; benzer anlamlar uzayda yakın durur. Elma armut yakın, Ankara uzak — semantik küme oluşur. Sorguyu da aynı modelle vektörleştirip en yakın k komşuyu çekeriz, ham metni payloadtan alıp prompta ekleriz. İlk akılda direkt prompta koymak çözüm gibi ama bağlam penceresi sınırlı — bin sayfalık doküman sığmaz ve maliyet uçar. Vektör veritabanı, kütüphanedeki fiş kutusu gibidir; doğru fişi hızla bulur, kitabın tamamını değil.
RAG akışı sekiz adım: Bir, dokümanı chunkla. İki, embedding üret — bi-encoder ile. Üç, vektör DB'ye yaz ve metadata ekle. Dört, kullanıcı sorgusu gelir. Beş, sorguyu embedding yap. Altı, en yakınları getir. Yedi, re-rank — cross-encoder ile kaliteyi artır. Sekiz, LLM'e sorgu artı bağlam ver ve cevap al. Re-rank opsiyonel ama kaliteyi belirgin artırır; çünkü ilk arama hızlı ama yüzeysel, ikinci eleme ise derinlemesine bakar.
Beş chunking stratejisi: Sabit boyut overlap ile basittir ama cümle böler. Semantic, cosine benzerliği düşene kadar birleştirir — akıcı ama eşik hassas. Recursive önce paragrafa böler sonra limiti aşanı parçalar — dengelidir ve genelde iyi başlar. Yapı tabanlı başlık ve paragraf sınırına göre böler — yapısı olan dokümanda mükemmeldir. LLM tabanlı, LLM'den anlamsal parça ister — en akıllı ama en pahalıdır. Test etmeden karar verme; genelde semantic iyi bir başlangıçtır. Bu chunkları bavul gözleri gibi düşün: çok küçük gözde eşya kaybolur, çok büyük gözde aradığını bulamazsın.
Ne zaman RAG, ne zaman fine-tuning, ne zaman prompt? Dış bilgi çok ve davranış aynı ise RAG. Davranış değişmeli — ton veya vocab — ise fine-tuning. İkisi de lazım ise hybrid. Hiçbiri değilse prompt yeter. Basit kural: bilgi için RAG, davranış için fine-tuning. Kütüphane benzetmesiyle: yeni kitap lazım ise RAG ile rafa ekle, üslubu değiştirmek lazım ise kütüphaneciyi eğit.
Sekiz RAG mimarisi kısaca: Naive yani saf vektör benzerliği — basit olgu soruları için hızlı ve yeterli. Multimodal metin artı görsel artı ses — rapor ve video birlikte. HyDE hayali doküman üretir — soru cevaba benzemediği için önce sahte cevap üretip onun embeddingi ile arar. Corrective web ile doğrular. Graph varlık ve ilişkiyi çıkarır — akıl yürütme için yapılı bağlam. Hybrid vektör artı graph — ikisinin güçlerini birleştirir. Adaptive basitse tek adım, karmaşıksa alt sorgulara böler — maliyeti akıllıca yönetir. Agentic planlar, arar ve doğrular — döngü ile geleneksel RAG'in tek atım zayıflığını çözer.
Agentic RAG nasıl çalışır? Agent sorguyu düzeltir, ek bilgiye ihtiyaç var mı karar verir, kaynak seçer — vektör DB, API veya internet — bağlamı LLM'e verir, cevabı geçerlilikten geçirir ve yetersizse başa döner. Geleneksel RAG retrieve et ve üret der, Agentic ise düşün, ara, değerlendir ve tekrar dene der. Bu trafikte tek yoldan gitmek yerine canlı trafik verisine göre rota değiştiren navigasyon gibidir.
HyDE detay: Soru ile cevap semantik olarak uzaktır — LLM hayali cevap H üretir, contriever yani contrastive ile embed E yapılır, E ile gerçek doküman C bulunur, H artı C artı Q ile final cevap üretilir. Halüsinasyon contriever filtrelemesiyle sorun olmaz ama gecikme ve maliyet artar. Yine de zor sorularda isabeti ciddi yükseltir.
REFRAG ve CAG — 2025 yenilikleri: REFRAG, Meta araştırması — her chunkı tek vektöre sıkıştırır, RL ile en ilgili olanları seçer, sadece seçkinleri açar. Sonuç 30.8 kat hızlı first token, 16 kat büyük bağlam ve yüzde 50 daha az token — aynı doğrulukla. CAG ise değişmeyen bilgiyi KV cache'e yazar — şirket politikaları gibi — değişeni RAG ile çeker; hybrid RAG artı CAG en hızlı hibrittir. Bu fikir mutfakta sık kullanılan baharatları tezgah üstünde tutmak gibidir.
Özetle RAG, modeli büyütmeden bilgiyi büyütmenin yoludur. Doğru kurulumla hem güncel hem doğru hem de açıklanabilir cevaplar üretir.
Context Engineering: Doğru bilgiyi doğru anda vermek
RAG'in yüzde 80'i retrieval, yüzde 20'si generation — kötü retrievali en iyi LLM bile kurtaramaz. LLM zihin okumaz, verdiğin kadar bilir. Context engineering artık sihirli kelime değil, bilgi mimarisidir: doğru bilgi, doğru araç, doğru formatta ve doğru anda verilmelidir. Bu trafik polisliği gibidir: her aracı doğru şeride, doğru zamanda yönlendirmezsen kavşak kilitlenir.
Dört bileşen: Dinamik bilgi akışı — kullanıcı, geçmiş, dış veri ve araç çağrısı hepsini topla. Akıllı araç erişimi — gerekli toolu ver ve çıktıyı yutulabilir formatla. Hafıza yönetimi — kısa hafızada uzun sohbeti özetle, uzun hafızada tercihi oturumlar arası sakla. Format optimizasyonu — kısa hatalı mesaj dev JSON'dan iyidir; model uzun ve dağınık girdide kaybolur.
Altı bağlam türü — Karpathy'nin sözüyle: Talimatlar yani kim, neden ve nasıl. Örnekler yani iyi ve kötü demo. Bilgi yani süreç, API ve workflow. Hafıza yani kısa, uzun. Araçlar yani parametre ve örnek. Araç sonuçları yani geri bildirimle düzeltme. Bağlamı mühendislik yapmak, LLM'e RAM programlamak gibidir — LLM CPU ise, bağlam penceresi RAM'dir. Ne kadar iyi yönetirsen o kadar akıcı çalışır.
Dört aşamalı akış: Yaz — uzun ve kısa hafıza ile state. Oku — tool, hafıza ve knowledge base. Sıkıştır — tekrarlı tool çağrılarını özetle, token ve maliyet düşer. Ayır — sub-agent, sandbox ve state ile izole et. Hepsi bir pipeline olarak akar ve her adım bir sonrakini besler.
Örnek workflow — multi-agent araştırma asistanı: Tensorlake dokümanı markdown chunklara ayırır ve Milvus vektör DB'ye yazar, top-k getirir. Zep hafıza katmanı temporal knowledge graph kurar. Firecrawl web search ve arXiv API canlı bilgi çeker. Context evaluator agent filtreler, synthesizer cevaplar ve cevabı hafızaya yazar. Stack: CrewAI orkestrasyon ve her kaynak ayrı ajan. Streamlit'te kaynak linkli atıflarla sunulur. Bu, mutfakta farklı tezgahlarda hazırlanan malzemelerin tek tabakta buluşması gibidir.
Claude Skills — token tasarrufu için üç katman: Ana bağlam hep yüklü olan proje config, Skill metadata sadece YAML ve 200 token altı, Aktif skill bağlamı SKILL.md sadece gerektiğinde yüklenir. Scriptler yüklenmez, çağrılınca çekilir — yüzlerce skill, hafif bağlam. Skill bir SOP yani işletme talimatı gibidir; her çalışanın el kitabı cebinde durmaz, lazım olduğunda açılır.
Manuel RAG vs Agentic Context — gerçek dünya dersi: Naive RAG statikte güzel ama Chicago ofis projesinde takıldı — Linear'de blocker, Calendar'da toplantı, Gmail'de mail ve Slack tartışması var, tek kaynak yetmez. Çözüm üç katman: Ingestion — 30 artı app auth, farklı veri işleme ve değişim algılama. Airweave bunu yüzde 100 açık kaynak yapar, entity hash ve cursor sync ile her uygulamadan veriyi tek tipte toplar. Retrieval — sorguyu genişlet, doğru kaynağa yönlendir, semantic artı keyword artı graph, yetki filtrele ve eski ile yeni ağırlıkla. Generation — atıflı LLM cevabı. Bu altyapı işidir, embedding işi değil — Vertex AI, M365 ve Q Business de aynı dertte.
Airweave örneği öğreticidir: 30'dan fazla entegrasyon, her biri farklı kimlik doğrulama, farklı veri şeması ve farklı rate limit. Hepsini tek bir search katmanında birleştirmek, bavulda her eşyayı ayrı poşette değil, etiketli gözlerde tutmak gibidir — aradığını anında bulursun ve yetkisiz göze elini sokmazsın. Yetki filtresi olmadan RAG, açık büfede herkesin her tabağa ulaşması gibi güvenlik faciası yaratır.
Sonuç: context engineering, prompttan daha stratejiktir. Prompt tek bir soruyu güzelleştirir, context ise tüm sistemi ayakta tutar. İyi context olmadan en iyi model bile trafikte kaybolur; iyi context ile orta model bile hedefine hızla varır.
AI Agent: Beyinden karar vericiye geçiş ve desenler
LLM beyin ise, RAG ona taze bilgi verir, Agent ise karar verip harekete geçer: araç çağırır, plan yapar ve hatasını düzeltir. Örnek rapor akışı: araştırma agenti arXiv tarar, filtreleme agenti en alakalıları seçer, özet agenti yoğunlaştırır ve format agenti düzenler — insan her adıma karışmadan sonuç çıkar. Bu bir mutfak ekibi gibidir: biri malzeme alır, biri doğrar, biri pişirir ve biri servis eder.
Altı inşa bloğu: Rol — dar rol keskin çıktı; senior sözleşme avukatı deyince hukuki keskinlik artar. Odak — dar odak halüsinasyonu azaltır, tek agent her işi yapmaz. Araçlar — doğru araç iyi, çok araç kötü; araştırma için web, özet ve atıf yeter, speech-to-text fazla bile. İşbirliği — veri toplayan, risk ölçen, strateji kuran ve rapor yazan ayrı agentler olmalı. Guardrail — tool limit, doğrulama ve fallback ile güvenlik. Hafıza — kısa, uzun, entity, contextual ve user; bağlama göre sakla, gereksizi at. Bu altı blok olmadan ajan, ehliyetsiz şoför gibidir — gaza basar ama nereye gideceğini bilmez.
Beş tasarım deseni: Reflection — kendi işini denetler; üret, eleştir ve düzelt döngüsüyle kalite artar. Tool Use — dünya ile konuşur; vektör DB, Python ve API dış bilgiyi getirir. ReAct — düşün ve yap; Thought, Action ve Observation döngüsü CrewAI varsayılanıdır. Planning — önce harita çizer; görevi alt görevlere böler ve hedefleri sıralar. Multi-Agent — her biri rol ve araçla birbirine delege eder ve ortaya çıkan akıl doğar. Hepsi birlikte ajan davranışının alfabesidir.
ReAct sıfırdan — 11 adımlı manuel demo: Agent sınıfı system artı messages artı complete artı invoke ile LiteLLM üzerinden çalışır. System promptta Thought, PAUSE, Action ve Observation kalıbı öğretilir ve iki araç tanımlanır: math ve lookup_population. Hindistan ve Japonya nüfusunu toplayan örnekte LLM sırayla düşünür, duraklar, araç çağırır, gözlem alır, toplar ve cevaplar. Otomasyonda agent_loop regex ile Action parse eder, toolu çalıştırır, gözlemi geri verir ve Answer görünce durur. Üretimde JSON function calling ve sağlam parse gerekir — yoksa metin kırılgan olur ve trafikte sinyal kaçırmak gibi kazaya yol açar.
Beş seviyeli ajanlık: Seviye 1 Basic responder — insan akışı yönetir. Seviye 2 Router — LLM yol seçer. Seviye 3 Tool calling — LLM araç ve argüman seçer. Seviye 4 Multi-agent — manager sub-agentleri yönetir. Seviye 5 Autonomous — LLM kod üretip koşar ve bağımsız geliştirici gibi davranır. Seviyeler arttıkça bavul büyür ve sorumluluk artar.
Yedi multi-agent deseni — trafiği yönetmek gibi: Parallel aynı anda farklı iş yapar, Sequential adım adım ilerler, Loop iyileşene kadar döner, Router uzmana yönlendirir, Aggregator görüşleri birleştirir, Network hiyerarşisiz serbest konuşur ve Hierarchical manager-worker ile çalışır. En iyisi havalı olan değil, sürtünmeyi azaltan; iş tekrarı yok, sıra net ve bütün daha akıllı olmalı. Trafik benzetmesiyle: paralel kavşaklar akışı böler, hierarchical ise ana arterden yan yollara dağıtım yapar.
Pratikte ajan inşa ederken en sık hata çok araç vermektir. Her araca bir yetenek eklemek cazip ama model karıştırır ve halüsinasyon artar. Doğru yaklaşım dar odaklı ajanlar ve net guardraillerdir. Her ajan bir şeritte kalsın, şerit değiştirmesi gerektiğinde sinyal versin — trafik böyle akar, ajan sistemi de böyle sağlıklı çalışır.
MCP, A2A, AG-UI: Agentlerin USB-C, telefonu ve sahnesi
MCP olmadan her AI her araca özel entegrasyon yazardı: 3 AI çarpı 3 araç eşittir 9 modül, MxN kabusu. MCP, USB-C gibi tek standardı koyar: M artı N yeterli, yeni eşleşme için kod yok. Anthropic başlattı, Agentic AI Foundation'a bağışladı ve Microsoft C# SDK ile benimsedi — 2025'te endüstri standardı haline geldi. Bu, her telefon için ayrı şarj kablosu taşımak yerine tek bir kabloyla tüm cihazları şarj etmek gibidir.
Mimari üçlüsü: Host — Claude Desktop veya Cursor; kullanıcı ile konuşur. Client — Host içindeki adaptör; MCP dilini konuşur. Server — yeteneği saran program; yerel veya bulutta çalışır ve araç, kaynak ve prompt sunar. Host istemciye sorar, istemci sunucuya bağlanır ve yetenekler keşfedilir. Bu keşif dinamiktir; API gibi statik sözleşme değildir.
Üç yetenek artı üç primitive: Tools — model kontrollü, iş yapar; dosya yazar ve API çağırır. Resources — app kontrollü, read-only; handbook okur. Prompts — user ve dev kontrollü, şablon; kod inceleme gibi. Diğer üç primitive client tarafında: Sampling — server LLM'den completion ister, client izin verirse döner. Roots — hangi dosyalara erişebilir, sandbox sınırı çizer. Elicitations — server kullanıcıdan yapılandırılmış girdi ister. Toplam altı primitive, çift yönlü iletişim sağlar. Bavul benzetmesiyle: tools eşyayı koymak, resources bavulun içini görmek, prompts ise paketleme listesi gibidir.
API vs MCP: API sözleşmesi değişince herkes kod günceller. MCP'de client bağlanırken yetenekleri sorar, server güncel listeyi verir — parametre eklenince client anında uyum sağlar ve deploy gerekmez. Eski yöntem her yeni kıyafet için bavulu yeniden diktirmek, MCP ise bavula esnek göz eklemek gibidir.
Function calling vs MCP: Function calling önceden tanımlı fonksiyonu çağırtır ama çok fonksiyon yönetimi zor ve tekrar kullanımı düşüktür. MCP modüler, ölçeklenir ve dinamik keşif sağlar. On fonksiyon için function calling yeter, yüz tool için MCP şarttır. Trafik benzetmesi: function calling tek kavşak, MCP ise şehir geneli trafik yönetim sistemi.
Tool overload ve Server Manager: Çok araç eşittir halüsinasyon, karıştırma ve kalite düşüşü. mcp-use projesinde Server Manager aracı sadece gerektiğinde yükler, uygun serveri bulur, listeyi küçük tutar ve semantic search yapar — use_server_manager eşittir True ile. Bu kalabalık mutfakta sadece lazım olan bıçağı tezgaha çıkarmak gibidir; tüm bıçakları dizersen hem yer kalmaz hem de el kesilir.
// MCP server iskeleti — TypeScript ile mcp-use
import { MCPServer } from "mcp-use";
const server = new MCPServer({ name: "dosya-arac", version: "1.0.0" });
server.tool("dosya_yaz", { path: "string", icerik: "string" }, async ({path, icerik}) => {
await fs.writeFile(path, icerik);
return { success: true };
});
server.resource("handbook", "file://handbook.md", async () => readFile("handbook.md"));
await server.listen();
// Client — sadece gereken serveri yükle
const agent = new MCPAgent({ useServerManager: true });
await agent.invoke("handbook'taki kurala göre dosyayı yaz");A2A — Agent2Agent: MCP araçtan araca, A2A ajandan ajana konuşur. JSON Agent Card ile yetenek ve kimlik yayınlar, diğer ajan keşfeder, context ve task güncellemesi iletilir ve frameworkler arası — CrewAI ve LlamaIndex — birlikte çalışır, MCP ile de el ele gider. Düşünceleri değil görevleri paylaşırlar; tıpkı iki şefin aynı mutfakta sipariş fişlerini paylaşması gibi. Bir ajan müşteriyle konuşurken diğeri mutfakta yemeği hazırlar ve A2A siparişi iletir.
AG-UI — Agent-User Interaction: MCP ve A2A'den sonra eksik parça sahneydi: frontend ile ajan nasıl konuşur? Her framework kendi WebSocket ve JSON'unu dayatıyordu ve frontend her taşınmada kırılıyordu. AG-UI, CopilotKit'in açık kaynak protokolü, Server-Sent Events ile TEXT_MESSAGE_CONTENT, TOOL_CALL_START, STATE_DELTA ve AGENT_HANDOFF gibi tipli olayları stream eder. LangGraph, CrewAI ve Mastra hepsi aynı olayları üretir, React UI değişmeden kalır, model değişince frontend bozulmaz. REST, client-server için neyse AG-UI ajan-UI için odur — standardize edilmiş sahne ışıkları gibidir.
Optimizasyon ve Deployment: Küçült, hızlandır, yayınla
Doğru model yetmez, hızlı ve ucuz model gerekir. Model A yüzde 1 daha doğru ama 3 kat yavaş ve 2 kat büyükse üretimde Model B kazanır. Optimizasyon, doğruluktan ödün vermeden boyut ve gecikmeyi düşürür. Bu bavulu küçültüp aynı eşyayı sığdırmak gibidir: vakum poşeti, katlama tekniği ve doğru yerleştirme ile aynı bavul daha hafif ve hızlı taşınır.
Dört sıkıştırma tekniği: Knowledge Distillation — büyük öğretmen küçük öğrenciyi taklit ettirir; DistilBERT yüzde 40 küçük, yüzde 97 yetenek ve yüzde 60 hızlıdır; Hugging Face deneyinde 340 milyondan 66 milyona inildi. Pruning — önemsiz bağlantı ve nöron silinir, seyrek matris oluşur, genelleme artar ve bellek düşer. Low-rank Factorization — ağırlığı SVD ile küçük çarpanlara böler, rank k ile boyut ve performans dengelenir. Quantization — 32-bit yerine 8 veya 4-bit; 8-bit yüzde 75 bellek tasarrufu sağlar ve edge için kritiktir. Her biri bavulda farklı küçültme tekniği gibidir: biri kıyafeti inceltir, biri boşluğu atar, biri katlama şeklini değiştirir.
LLM çıkarımında beş özel dert: Continuous batching — farklı uzunlukta istekler, EOS görünce anında değiştir ve GPU boş kalmasın. Prefill-decode ayrışma — prefill compute ağır, decode gecikme hassas; ayrı GPU havuzu gerekir. KV caching artı PagedAttention — KV non-contiguous page ile lookup table, fragment yok ve uzun bağlam mümkün. Prefix-aware routing — paylaşılan system promptu aynı replica'da tut, yeniden hesaplama yok. Model sharding artı expert paralellik — MoE'de uzmanlar farklı GPU'da, attention replike ve gating yönlendirir. Bu beş dert trafikteki beş sıkışıklık gibidir; her biri ayrı şerit ister.
KV cache neden önemli: Yeni token için son query artı tüm KV yeterli, eski KV değişmez — cache 4.5 kat hız sağlar: 40 saniye yerine 9 saniye. Ama Llama3-70B'de token başına 2.5 MB, 4 bin token 10.5 GB eder — kullanıcı arttıkça bellek patlar ve PagedAttention kurtarır. UC Berkeley'den vLLM ekibinin PagedAttention'ı, işletim sistemindeki sanal bellek gibi KV'yi sayfalara böler ve parçalanmayı bitirir. Bavulda kıyafetleri tek büyük poşet yerine küçük ceplere bölmek gibidir; yer israfı biter.
vLLM — çıkarımın işçisi: Continuous batching artı PagedAttention artı akıllı scheduler artı prefix routing artı LoRA ve multi-model tek server artı OpenAI uyumlu API. Kullanımı OpenAI client gibi, base_url değiştirmek yeterlidir. 4 GPU'ya sharding yapılır, LoRA adaptörü belleğe tek yüklensin ve istek başına uygulansın. UC Berkeley LMSYS ekibinin geliştirdiği bu sistem, 2025'te üretimde en yaygın çıkarım motorudur.
# vLLM server — 3 satırda yerel OpenAI gibi
from vllm import LLM, SamplingParams
llm = LLM(model="Qwen3-8B", tensor_parallel_size=4)
out = llm.generate(["KV cache nedir sade anlat"], SamplingParams(temperature=0.7, max_tokens=256))
# LitServe ile ürün katmanı — doğrulama ve log ekle
import litserve as ls
class LLMAPI(ls.LitAPI):
def setup(self, device): self.model = llm
def predict(self, x): return self.model.generate([x])[0]
server = ls.LitServer(LLMAPI(), accelerator="gpu", timeout=60)
server.run(port=8000)LitServe — üst katman: vLLM motoru hazır ama ürün doğrulama, ön ve son işleme, auth ve log ister. LitServe setup, decode, predict ve encode ile custom inference server kurar. Vision, audio ve multimodal hepsine uygundur — gerçek sistemler sadece model değil, uygulama sunucusudur. Motoru alıp arabayı tamamlamak gibidir; motor tek başına yola çıkmaz.
Dört deployment deseni: Batch — periyodik bulk, throughput odaklı; gece raporları gibi. Stream — sürekli pipeline; canlı veri akışı. Real-Time — REST ve gRPC artı load balancer, sub-second chatbot için. Edge — telefonda, veriyi dışarı çıkarma ve offline çalışma; gizlilik ve gecikme için. İhtiyaca göre seç — hepsinin maliyeti ve gecikmesi farklıdır. Bavul benzetmesiyle: batch bavulu haftada bir topluca taşımak, real-time ise her eşyayı anında kurye ile göndermek gibidir.
Değerlendirme ve Gözlem: Ölçtüğünü yönet, gördüğünü düzelt
Ölçülebilir olan geliştirilir. Optimizasyon hız kazandırır ama iyi mi sorusunu cevaplamaz. Değerlendirme laboratuvar testidir; gözlem sahadaki gerçek davranıştır. Biri sınav, diğeri iş başındaki performanstır. İkisi birlikte olmadan sistem güvenilir kalmaz. Bu yüzden modern AI ekipleri eval ve observability'yi aynı ciddiyetle ele alır.
G-eval — İngilizce ile metrik yaz: Klasik metrikler varyasyonu sevmez; BLEU ve ROUGE kelime eşleşmesine takılır. Opik'te G-Eval ile kriteri düz İngilizce yazarsın, CoT ile adımları oluşturur ve LLM hakim puan verir. İlgili context ve yüksek puan, ilgisiz ve düşük puan ile eşleşir. Opik crewai, langchain ve haystack ile çalışır ve self-host mümkündür. Bu öğretmene sözlü sınavda neye bakacağını cümleyle anlatmak gibidir; rubrik net ise not adil olur.
Arena-as-a-Judge — A vs B: Tekli puan yanıltır; 0.72 mi 0.74 mü hangisi iyi? DeepEval'de ArenaTestCase ile iki çıktıyı karşı karşıya koyar ve Arena G-Eval hangisi daha yardımcı, kısa veya nazik diye seçer. Referanslı veya referanssız çalışır. Bu jüri karşısında iki yarışmacıyı yan yana izlemek gibidir; tek tek dinlemek yerine karşılaştırma daha keskin karar verir.
Multi-turn eval: Sohbet tek mesaj değildir. ConversationalTestCase artı ConversationalGEval ile yatırım tavsiyesi vermiyor mu diye beş turlu test eder, geçen ve kalan dağılımını ve UI'da her turu inceler. Tek soruda dürüst, beş turda manipülatif modeli yakalamak için şarttır. Kütüphanede bir kitabı değil, tüm seriyi okumak gibi.
MCP evali: MCPUseMetric iki şey ölçer — doğru aracı seçti mi, argüman doğru mu? Minimum skor tek skor olur. 24 testte başarısız olan app, docstring düzelince yüzde 100'e çıkar — ölçüm iyileştirir. Bu mutfakta doğru bıçağı ve doğru kesimi ölçmek gibidir; biri yanlışsa yemek bozulur.
Component-level: Black-box yetmez. Opik'te observe ile retriever, tool ve generator ayrı trace edilir, her bileşene ayrı metrik takılır ve hangi parça bozuk hemen görülür. RAG'de retriever mi, LLM mi suçlu anında çıkar. Trafik kazasında sadece arabaya değil, yola ve sürücüye de bakmak gibi.
Red teaming — DeepTeam: Doğru ve sadık yetmez, saldırı altında güvenli mi? Jailbreak, prompt injection, PII sızıntısı, bias ve toxicity test edilir. Bias — cinsiyet, siyaset ve din; Toxicity — küfür ve tehdit türleri. Grooming ile çok turlu manipüle edilir. DeepTeam tüm SOTA saldırı tekniklerini simüle eder, dataset gerekmez, rapor ve Confident AI dashboardu verir ve guardrail önerir. Güvenlik benchmark değil, red team işidir — saldırgan gibi düşünmek gerekir. Bavulu kilitlemeden yola çıkmak gibidir; kilit yoksa hırsız bahanesi çoktur.
Gözlem — Opik ile: Değerlendirme önce, gözlem sonra gelir. Girdi, çıktı, gecikme, maliyet ve bileşen trace toplanır. Opik'te track dekoratörü ile herhangi bir Python fonksiyonu izlenir, LLM çağrıları track_openai ile loglanır, Ollama'da base_url localhost 11434 yeter. Dashboardda her çağrı token ve maliyetle görünür ve artış erken yakalanır.
from opik import track
@track
def ozetle(metin: str) -> str:
return llm(metin[:200])
# veya OpenAI — tüm çağrılar otomatik loglanır
from opik.integrations.openai import track_openai
client = track_openai(OpenAI()) # gecikme, maliyet, trace hazır
# DeepEval — Arena ile A vs B
from deepeval.test_case import ArenaTestCase
case = ArenaTestCase(contenders=["CoT cevabi", "ARQ cevabi"], criteria="daha yardimci olan")
# DeepTeam — red team
from deepteam import red_team
red_team(model="my-agent", attacks=["jailbreak", "pii_leak", "bias"])- Her sürümde G-eval artı Arena ile karşılaştır — tek puanla karar verme.
- Her ajan çağrısında component-level trace aç — retriever mi araç mı bozuk hemen ayır.
- Her yayında red team koş — DeepTeam ile bias ve toxicity taraması zorunlu.
- Her istekte Opik trace sakla — gecikme ve maliyet artışını erken yakala.
Bu 400 sayfalık kitap, AI mühendisliğinin dağınık puzzle'ını tek bir masada topluyor. En güçlü yanı her konuyu izole anlatmaması — LLM'in token tahmini, RAG'in chunkı, agentin ReAct döngüsü ve MCP'nin tool keşfi aynı hikayenin bölümleri gibi akıyor. Örnekler kısa ama işlevsel: Distilabel ile sentetik veri, Unsloth artı GRPO ile etiketsiz akıl yürütme, Airweave ile 30 artı app context, mcp-use ile 6 satırda ajan — hepsi kopyala çalıştır düzeyinde ve öğretici. Kütüphane, mutfak, trafik ve bavul analogileri teknik terimi ilk geçişte gündelik dile çeviriyor.
Eleştirel bakış: Optimizasyon ve deployment bölümleri vLLM ve LitServe ekseninde kalıyor — SGLang, TensorRT-LLM ve LMCache gibi alternatifler sadece anılıyor, karşılaştırma tablosu yok. Değerlendirme kısımları DeepEval, Opik ve DeepTeam üçlüsüne yaslanıyor — pratik ama tek vendor bağımlılığı riski taşıyor. RAG tarafında 2025 REFRAG ve CAG gibi yenilikler kitapta var ama üretim maliyet hesabı — token, gecikme ve cache isabeti — örneklerle derinleşebilirdi. Yine de iskelet sağlam ve güncel; 2025 örnekleri — DeepSeek-V3 MoE, DeepSeek-R1 GRPO, Anthropic context makalesi, MCP'nin Agentic AI Foundation bağışı, vLLM PagedAttention ve DistilBERT — metne canlılık katıyor.
Tavsiyem kitabı sırayla değil, ihtiyacına göre dallanarak okuman: fine-tuning lazımsa bölüm 5 ve 6, ajan kuruyorsan 7, 8 ve 9, yayına geçiyorsan 10 ve 11 — ve her bölümün kodunu kendi verinle bir kez çalıştırman. Gerçek öğrenme orada başlıyor; okumak bavulu görmek, çalıştırmak ise bavulu toplamak gibidir. Bu rehber o toplama işini kısaltmadan ama sadeleştirerek mümkün kılıyor.
Kaynaklar
- daily-dose-of-data-science.com https://www.daily-dose-of-data-science.com/p/ai-engineering-guidebook
- arxiv.org https://arxiv.org/abs/2412.19437 — DeepSeek-V3 671B MoE 37B active
- arxiv.org https://arxiv.org/abs/2501.12948 — DeepSeek-R1 GRPO reasoning
- anthropic.com https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
- modelcontextprotocol.io https://modelcontextprotocol.io/specification/2025-06-18 — MCP spec
- developer.microsoft.com https://developer.microsoft.com/en-us/blog/microsoft-partners-with-anthropic-to-create-official-c-sdk-for-model-context-protocol
- docs.vllm.ai https://docs.vllm.ai/en/latest/design/paged_attention.html — vLLM PagedAttention UC Berkeley
- arxiv.org https://arxiv.org/abs/1910.01108 — DistilBERT 40% smaller 97% ability
- confident-ai.com https://www.confident-ai.com/docs/metrics-llm-evals — DeepEval G-eval Arena
- comet.com https://comet.com/site/blog/opik-open-source-llm-evaluation-framework/ — Opik metrics tracing