Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
13 yazı bulundu
Production RAG Mimarisi: Ingestion ve Query Pipeline'ları, Minimal RAG Neden Çöker?
Yapay Zeka SERİ 01

Production RAG Mimarisi: Ingestion ve Query Pipeline'ları, Minimal RAG Neden Çöker?

Minimal RAG gerçek doküman setinde 30 sorunun yalnız 20'sini doğru cevapladı; hataların çoğu modelden değil retrieval, chunking, eski veri ve yetkisiz dokümandan geliyor. Bookstore'un Türkçe dokümanlarıyla hataları sınıflandırıyor, ingestion ve query pipeline'larını ayırıyor ve yetki filtresi ile trace log'u olan bir query pipeline iskeleti kuruyoruz.

8 Kas 2026 14 dk 4
Embedding Model Seçimi: Boyut, Çok Dillilik, Türkçe ve Maliyet
Yapay Zeka SERİ 02

Embedding Model Seçimi: Boyut, Çok Dillilik, Türkçe ve Maliyet

Embedding modelini leaderboard ortalamasına göre değil, kendi dilinde ve kendi soru setinde ölçerek seç: nomic-embed-text aynı içerikte İngilizcede 30 sorunun 26'sında, Türkçede yalnız 16'sında doğru bölümü ilk sıraya koydu. recall@k ve MRR ile ölçüyor; prefix, Matryoshka boyutu, storage, sessiz kesilme ve model değişiminde eski vektörlerin riskini gerçek çıktılarla inceliyoruz.

8 Kas 2026 13 dk 4
Doküman Ingestion: PDF, HTML ve Markdown'dan Temiz Metin, Metadata ve Artımlı Güncelleme
Yapay Zeka SERİ 03

Doküman Ingestion: PDF, HTML ve Markdown'dan Temiz Metin, Metadata ve Artımlı Güncelleme

RAG'in kalitesi ingestion'da başlar: PDF'ten gelen "fi" ligature'ı Contains("fiyat") aramasını false yaptı, sayfa numarası bir bölümün ortasına girdi, HTML menüsü chunk'a karıştı. Temiz metin, chunk başına metadata, Microsoft.Extensions.DataIngestion (preview) ile pipeline ve kısmi başarı, içerik hash'iyle artımlı güncelleme ve silinen dokümanların index'ten çıkarılması.

8 Kas 2026 14 dk 3
Chunking Stratejileri: Token-based, Header-based, Semantic, Overlap ve Contextual Retrieval
Yapay Zeka SERİ 04

Chunking Stratejileri: Token-based, Header-based, Semantic, Overlap ve Contextual Retrieval

Tek bir en iyi chunk size yok; stratejiyi recall ile context bütçesini birlikte ölçerek seç. Aynı 30 Türkçe soruda 64 token'lık pencereler doğru bölümü 19, başlık tabanlı chunk'lar 16 kez ilk sıraya koydu; 256 token recall@5'i 28'e çıkardı ama prompt'u 1.122 token'a büyüttü. Sabit boyut, overlap, semantic, parent-child ve gemma3:4b ile Contextual Retrieval'ı gerçek ölçümlerle karşılaştırıyoruz.

8 Kas 2026 10 dk 3
Vector Database Seçimi: pgvector, SQL Server 2025, Qdrant, Azure AI Search ve Elasticsearch
Yapay Zeka SERİ 05

Vector Database Seçimi: pgvector, SQL Server 2025, Qdrant, Azure AI Search ve Elasticsearch

Önce mevcut veritabanının vector desteğini dene; ANN index'ini de kendi verinde recall ölçerek ayarla. 100.000 vektörlük pgvector tablosunda exact arama 237 ms, HNSW 1 ms sürdü ama varsayılan ef_search ile recall 0.83 kaldı; filtreli sorguda index'e zorlanan HNSW sıfır satır döndürdü, iterative scan 10 satırı buldu. HNSW, IVFFlat, DiskANN, metric seçimi ve beş seçeneğin karşılaştırması.

8 Kas 2026 12 dk 3
EF Core ile Vector Search (1): SQL Server 2025 vector Tipi, VectorDistance ve EF Core 11 VectorSearch
Yapay Zeka SERİ 06

EF Core ile Vector Search (1): SQL Server 2025 vector Tipi, VectorDistance ve EF Core 11 VectorSearch

EF Core 10'da SQL Server 2025 vector kolonu SqlVector<float> property ve HasColumnType("vector(768)") ile map edilir, arama EF.Functions.VectorDistance ile exact yapılır. Kodu derleyip EF Core'un ürettiği gerçek SQL'i inceliyoruz: projection'sız sorgunun vektörü de çektiğini, preview vector index ve VECTOR_SEARCH'ü ve EF Core 11'in getirdiklerini. SQL Server 2025 bu yazı için çalıştırılmadı.

8 Kas 2026 10 dk 3
EF Core ile Vector Search (2): PostgreSQL pgvector, HNSW Index ve Dapper
Yapay Zeka SERİ 07

EF Core ile Vector Search (2): PostgreSQL pgvector, HNSW Index ve Dapper

Pgvector.EntityFrameworkCore ile Vector property, HNSW index ve CosineDistance sıralaması birkaç satırda kurulur; asıl risk sessiz hatalarda: vector_l2_ops ile kurulan index cosine sorgusunda hiç kullanılmadı, ReloadTypes unutulunca Npgsql vektörü yazamadı. Yetki filtresiyle arama, EXPLAIN kontrolü, halfvec ile storage'ı yarıya indirmek (30 sorunun 30'unda aynı top-5) ve aynı sorgu Dapper ile.

8 Kas 2026 12 dk 4
Hybrid Search ve Reciprocal Rank Fusion: Keyword ile Vector Aramayı Birleştirmek
Yapay Zeka SERİ 08

Hybrid Search ve Reciprocal Rank Fusion: Keyword ile Vector Aramayı Birleştirmek

Vector search ürün kodu, ISBN ve nadir terimleri kaçırır; PostgreSQL tsvector (turkish) ile keyword aramayı ekleyip iki listeyi skorla değil sırayla, Reciprocal Rank Fusion ile birleştirmek bu açığı kapatır. EF Core, tek SQL sorgusu ve VectorData HybridSearchAsync ile kuruyor, 30 soruda vector, keyword ve hybrid recall'unu ölçüyoruz.

8 Kas 2026 14 dk 5
Reranking ve Query Transformation: Cross-encoder, Sorgu Yeniden Yazma ve HyDE
Yapay Zeka SERİ 09

Reranking ve Query Transformation: Cross-encoder, Sorgu Yeniden Yazma ve HyDE

Geniş getir, dar ver: hybrid search'ün 10 adayını soru ve chunk'ı birlikte okuyan bir reranker'dan geçirmek, 30 soruda birinci sıradaki doğru chunk sayısını 15'ten 23'e çıkardı; bedeli soru başına 3,2 saniye. Sohbette soru yeniden yazma, multi-query, HyDE ve self-query'yi aynı setle ölçüp ne zaman zarar verdiklerini gösteriyoruz.

8 Kas 2026 14 dk 5
Prompt'a Context Koymak: Citation, Context Bütçesi ve Düşük Skorda "Bilmiyorum"
Yapay Zeka SERİ 10

Prompt'a Context Koymak: Citation, Context Bütçesi ve Düşük Skorda "Bilmiyorum"

Chunk'ları kısa id'li bloklar halinde, token bütçesine sığdırıp prompt'a koymak, cevabı ve kaynak id'lerini structured output ile almak ve id'leri kodla doğrulamak citation'ı güvenilir kılar; ama geçerli citation doğru cevap demek değil. Türkçe skorlar üst üste bindiği için modelden önce "bilmiyorum" eşiği yalnız bariz durumları yakalıyor.

8 Kas 2026 12 dk 4
RAG'de Yetki ve Güvenlik: Doküman Seviyesi Permission, Multi-tenant Filtre ve Indirect Prompt Injection
Yapay Zeka SERİ 11

RAG'de Yetki ve Güvenlik: Doküman Seviyesi Permission, Multi-tenant Filtre ve Indirect Prompt Injection

RAG'de yetki prompt'taki bir rica değil, retrieval sorgusunun WHERE cümlesidir: "bunu gösterme" denen gemma3:4b personel indirimini müşteriye söyledi. Tenant ve ACL'i token'dan alıp EF Core 10 isimli query filter'larıyla sorguya koyuyor, HNSW filtresinin 10 yerine 1 sonuç döndürmesini ve zehirli bir okur yorumunun kart numarası istemesini ölçüyoruz.

8 Kas 2026 11 dk 4
RAG'i Ölçmek: Recall@k, MRR, nDCG, Faithfulness ve Groundedness
Yapay Zeka SERİ 12

RAG'i Ölçmek: Recall@k, MRR, nDCG, Faithfulness ve Groundedness

RAG'i ölçmek, retrieval'ı etiketli kaynakla (recall@k, MRR, nDCG) ve generation'ı yargıç bir LLM'le (groundedness, relevance) ayrı ayrı ölçmek demek. 30 soruda dört retrieval yöntemini C#'ta karşılaştırıyor, Microsoft.Extensions.AI.Evaluation'ın soruyu ıskalayan bir cevaba 5 verdiğini gösteriyor ve response cache'le 1 dk 42 sn'lik testi 1,1 sn'ye indiriyoruz.

8 Kas 2026 12 dk 5
Blog Haritası