Serkan Yaşar

Serkan Yaşar

AI | ML Developer

Back-End Developer

Data Scientist
📋

Professional Experience

  • Coşkunöz Holding 📍 Bursa, Türkiye

    Software Developer 🗓️ 2022 - Present

    • Developed and deployed AI-powered solutions in industrial settings, focusing on Generative AI, LLMs, Computer Vision, and Machine Learning to optimize production workflows and quality control.
    • Designed and implemented RAG pipelines using Vektor databases for intelligent document retrieval and domain-specific knowledge integration.
    • Designed and deployed LLM orchestration pipelines with LangChain, CrewAI, and n8n, integrating MCP tools to power intelligent chatbots, document Q&A systems, and AI assistants via Streamlit.
    • Applied LoRA and other parameter-efficient fine-tuning techniques for domain-adapted LLM enhancements.
    • Designed and deployed automated quality inspection systems using YOLO, OpenCV, OCR, and PyTorch, reducing manual checks and improving accuracy by up to 95%.
    • Created AI systems that enabled forklift-human collision detection, resulting in a 90% reduction in workplace accidents, awarded in the MESS Occupational Safety Stars Competition.
    • Built operator monitoring systems that prevented faulty products, winning Tofaş Best Kaizen Award, TİSK Digitalization Award, and Ministry of Industry and Technology Productivity Project Award.
    • Developed edge AI systems on Jetson Nano and Raspberry Pi, enabling low-latency inference for real-time industrial scenarios.
    • Implemented microservices with FastAPI, Django, and .NET Core, and managed API integration and deployment using Docker and CI/CD pipelines.
    • Integrated IoT sensor data and PLC communication (e.g., snap7) for fault detection and signal processing in live production environments.
    • Leveraged SQL, NoSQL, and ORM frameworks to manage complex data flows and enable real-time dashboards via Power BI, Tableau, and Grafana.
    • Used RPA (Robotic Process Automation) to streamline document processing workflows, achieving annual savings of €11,000.
    • Conducted large-scale data processing using Apache Spark, Hadoop, and Kafka, with real-time visualization.
    • Experienced in prompt engineering, LLM model evaluation, and staying up to date with multi-agent architectures, hybrid search, and AI trends.
    • Experienced in leading cross-functional teams and collaborating across departments to deliver end-to-end AI solutions in production environments.
🎓

Education

  • Bursa Technical University 📍 Bursa, Türkiye

    BSc in Mechanical Engineering 🗓️ 2018 - 2023

    • Graduated with GPA 2.97. TEKNOFEST participant with HACİWATT team.
  • Istanbul University 📍 Istanbul, Türkiye

    Associate Degree in Computer Programming 🗓️ 2022 - 2024

    • Focus on software development, backend, databases, and algorithms.
    • Expected graduation with GPA 2.8.
🏅

Certifications

RAG Notlarım -1

RAG Architecture

Merhaba!

Bu yazı serisinde sizlerle, yapay zeka dünyasında adını sıkça duyduğumuz RAG (Retrieval-Augmented Generation) mimarisini birlikte inceleyeceğiz.

Yapay zeka ekosistemi öylesine hızlı gelişiyor ki, çoğu zaman bir teknolojiyi tam sindiremeden bir yenisiyle karşılaşıyoruz. Ben de bu bilgi yoğunluğu içinde zaman zaman yönümü kaybettiğimi hissediyorum. İşte bu yüzden, öğrendiklerimi sistematik ve sade bir şekilde derleyip üç bölüm hâlinde sizlerle paylaşmak istedim.

Bu seri, hem kendi öğrenme sürecimin bir parçası hem de aynı yolda ilerleyenlere yol gösterici olabilecek bir kaynak niteliği taşıyor.

Şimdi gelin, RAG mimarisi nedir ve neden bu kadar önemli hale geldi? sorusuyla başlayalım.

Yazı Serisinin Bölümleri

1. Bölüm:

  • RAG'e Neden İhtiyaç Duyarız?
  • LLM Davranış Biçimlendirme
  • RAG Mimarisi

2. Bölüm:

  • Embedding Modelleri
  • Vektör Veri Tabanları
  • Semantik Arama

3. Bölüm:

  • İleri Düzey RAG
RAG Architecture Image

Neden İhtiyaç Duyuyoruz?

Büyük dil modelleri (LLM'ler), eğitim sürecinde internet üzerindeki devasa miktarda veriden beslenerek oluşturulurlar. Her tür içerik — doğru, yanlış, güncel ya da eski — bu verilerin içindedir. Bu veri çeşitliliği sayesinde model çok yönlü hale gelir, fakat aynı zamanda bazı zorlukları da beraberinde getirir.

Eğitim süreci tamamlandıktan sonra, bu modeller artık yeni bilgi öğrenemezler. Biz modele bir soru sorduğumuzda, her ne kadar detaylı promptlarla (komutlarla) yönlendirmeye çalışsak da, bazen tatmin edici veya doğru bir cevap alamayabiliriz. İşte tam bu noktada bazı sıkıntılar ortaya çıkar.

Halüsinasyon (Yanıltıcı Bilgi Üretme)

Model, eğitim sırasında gördüğü bilgilerin hangisinin güvenilir veya doğru olduğunu bilemez. Çünkü bu onun doğasında yoktur. Görevi; cümle içindeki bağlama ve önceki kelimelere bakarak, bir sonraki kelimeyi olasılıksal olarak tahmin etmektir. Bu da zaman zaman var olmayan bilgiler uydurmasına neden olabilir. İşte buna "halüsinasyon" diyoruz.

Dil modellerinde halüsinasyon, şu an için kaçınılmaz bir durum. Literatürde bu problem "modelin kalıcı zorluğu" olarak da geçiyor. (Tabii ileride teknoloji gelişip modeller daha hassas hale gelirse, belki bu durum da çözülebilir.)

Araştırmalarda odak noktası artık modelin halüsinasyon üretip üretmediğini anlayabilmek üzerine yoğunlaşmış durumda. Yani sadece çıktıyı üretmek değil, aynı zamanda bu çıktının güvenilir olup olmadığını da sorgulamak gerekiyor.

Literatürde halüsinasyonun tespiti için birçok farklı teknik ve yöntem var. Bir sonraki bölümde, bu tekniklerden popüler olanlara kısaca değinip, avantaj ve dezavantajlarını birlikte inceleyelim.

    LogProbability

Araştırmacılar, 3400 adet gerçek ve uydurma çeviri örneğini manuel olarak etiketleyerek bir çalışma yürütmüşler. Modelin verdiği yanıtlarda LogProbability değerleri incelenmiş. Gözlemlenen şu:

  • Modelin uydurma (halüsinatif) çevirilerinde log olasılık değerleri daha düşük,
  • Emin olduğu doğru çevirilerde ise log değerleri daha yüksek çıkmış.

Bu da log olasılığın, modelin verdiği cevaba ne kadar güvendiğini ölçmekte kullanılabileceğini gösteriyor.

    G-Eval

G-Eval, GPT-4 gibi büyük dil modellerini değerlendirici olarak kullanıyor.

  • Düşünce zinciri (Chain of Thought — CoT) ve form doldurma yöntemleriyle çalışıyor.
  • Her çıktıyı adım adım analiz ederek 1–5 arası puanlar veriyor.
  • İnsan benzeri gerekçeler sunabilmesi büyük avantaj.

Ancak:

  • Sadece kapalı alan (closed-domain) halüsinasyonlarını tespit edebiliyor.
  • Yüksek işlem maliyeti nedeniyle verimli değil.

    SelfCheckGPT

Bu yöntem, modelin verdiği cevabı birden fazla kez üreterek kendi iç tutarlılığını ölçmeye çalışıyor.

  • Aynı konuda farklı cevaplar veriyorsa, bu çelişkiler halüsinasyon olasılığını artırıyor.
  • BERTScore, MQAG ve NGram gibi tekniklerle benzerlik ve tutarlılık analizleri yapılıyor.

Avantajı:

  • Güçlü sonuçlar verebilir.

Dezavantajı:

  • Yüksek maliyetli çalışır.
  • Sadece açık alan (open-domain) halüsinasyonlarını tespit edebilir.

    ChainPoll

ChainPoll, hem açık hem kapalı alan halüsinasyonlarını tespit edebilen güçlü bir yöntemdir.

  • İki farklı modla çalışır:
  • ChainPoll-Doğruluk → Açık alan halüsinasyonları
  • ChainPoll-Adherence → Kapalı alan halüsinasyonları

G-Eval'e göre:

  • Daha doğru
  • Daha hızlı

Ayrıca, RealHall adlı benchmark setiyle yapılan testlerde rakiplerine kıyasla çok daha iyi performans göstermiştir.

Manipülasyon

Büyük dil modelleri yalnızca eğitildikleri veri kümeleri üzerinden bilgi üretir. Ancak bu veri kümeleri kusursuz değildir. İçerdiği yanlış bilgiler, önyargılar ya da eksiklikler, doğrudan modelin çıktısına da yansır.
Bu da manipülasyona açık bir yapı ortaya çıkarır. Yani, model aslında doğru bildiği yanlışları size aktarabilir. Bu durumun kaynağı modelin kendisi değil, beslendiği veridir.

Dezenformasyon

Bazen model bize doğrudan yanlış ya da yanıltıcı bilgi sunabilir. Neden mi?
Çünkü LLM'ler, yalnızca geçmişteki verilere dayanarak çalışır. Eğer bu geçmiş bilgi yanlı, eksik ya da hatalıysa; modelin çıktısı da büyük ihtimalle öyle olacaktır.
Bu noktada farkında olmadan dezenformasyon yayabiliriz. Bu yüzden, LLM tabanlı sistemleri kullanırken her zaman bir kontrol mekanizması şart.

Güncellik

Büyük dil modelleri, belirli bir tarihe kadar olan veriyle eğitilir. Eğitimden sonra yaşanan gelişmeleri doğal olarak bilemezler.
Yani modelin, "şu an ne oluyor" sorusuna vereceği yanıt, o anla değil, eğitildiği dönemdeki bilgilerle sınırlı olacaktır. Bu da özellikle güncel olaylar, değişen bilgiler ya da anlık gelişmelerde modelin yetersiz kalmasına yol açar.

LLM Davranış Biçimlendirme: Yapay Zekaya Karakter Vermek

LLM Behavior Customization Image

Hayal et: Herkesin kendine özel bir yapay zekası var. Senin giyinme tarzını bilen, hangi yemekleri sevdiğini anlayan, ruh haline göre seni yönlendiren bir asistan… Oldukça cezbedici, değil mi?

Bu fikir aslında o kadar da uzak değil. Ancak burada performans ile maliyet arasında ciddi bir denge kurulması gerekiyor. Bir dil modelinin davranışlarını şekillendirmek için farklı seviyelerde müdahale yöntemleri bulunuyor. Gelin, bu yöntemleri görseldeki gibi bir piramit yapısı içerisinde adım adım inceleyelim:

Model Training | Model Eğitimi

Bu en alt seviye, yani temelden başlayarak bir model eğitme süreci. Ancak bu işlem yüksek maliyet, büyük veri setleri ve uzmanlık gerektiriyor. Bu nedenle son kullanıcılar için pek ulaşılabilir bir yöntem değil.

Fine-Tuning | İnce Ayar

Modelin bilgi seviyesini değil, davranış biçimini yeniden yönlendirmek istiyorsanız burası devreye giriyor. Fine-tuning, belirli bir alan veya görev için modelin özelleştirilmesini sağlar. Örneğin yalnızca hukuki metinlerle eğitilen bir LLM, bu alanda daha uzmanlaşmış cevaplar verir.

RAG | Bellek Genişletme (Retrieval Augmented Generation)

Piramitin orta katmanında yer alan RAG, kaynak ve uzmanlık ihtiyacını dengeleyerek optimal bir çözüm sunar. RAG, dış bilgi kaynaklarına bağlanarak modele gerçek zamanlı bilgi sağlar. Hem güncellik sorununu aşar hem de davranış biçimlendirmede esneklik sunar.

Prompt Engineering | Girdi Mühendisliği

 Modeli eğitmeden ya da ince ayar yapmadan, yalnızca nasıl soru sorduğunuzla modelin davranışını etkileyebilirsiniz. İşte prompt mühendisliği tam olarak bunu sağlar. Doğru bir şekilde yapılandırılmış bir prompt ile, modelden daha doğru, bağlama uygun ve etkili yanıtlar almak mümkündür. Bu alan başlı başına bir araştırma konusudur ve uygulamalı örneklerle ustalık kazanılabilir.


GENEL MİMARİ



Kullanıcıdan veri kaynağı yüklemesi ve prompt ile sürece başlayalım. Veri kaynağı türü, kullanıcının tercihlerine göre belirlenebilir; örneğin, PDF dosyası, web adresi ya da YouTube video linki. Veri kaynağının türüne bağlı olarak, yüklenen dosyadan ya da web sitesinden bilgiler alınır.

Elde edilen veriler, bölümleme işlemi ile alt parçalara ayrılır. Verilerin nasıl bölüneceğini, ileri düzey RAG yazımızda detaylıca inceleyeceğiz. Bu döküman kesitleri, embedding modellerinin yardımıyla vektörleştirilir. Vektörizasyon işlemi, herhangi bir yapay zeka ya da makine öğrenmesi modelinin metinlerle doğrudan çalışamayacağını göz önünde bulundurarak yapılır; çünkü metinler, sayısal verilere dönüştürülmeden işlenemezler. Burada, N adet döküman kesitimiz var ise, N adet vektör oluşacaktır. Her bir döküman kesiti, bir vektöre dönüştürülür.

Peki, bir metin döküman kesiti nasıl vektöre dönüştürülür? Bu konuyu, yazının uzunluğunu kısaltmak adına, diğer "Part-2" yazımızda detaylıca ele alacağız.

Şimdi, elimizde N adet vektör var. Bu vektörleri, yapay zeka modelinin sorgulamalara uygun bir yapıya dönüştürmek ve depolamak için vektör veritabanlarına ihtiyaç duyarız. Bu veri tabanlarının, klasik veri tabanlarından bazı önemli farkları vardır. Bu farklar, veri depolama türleri ve arama yöntemleri ile ilgilidir. İndeksleme, düzensiz bir şekilde yer alan bu vektörleri sorgulanabilir, listelenebilir bir hale getirir. Böylece, veri tabanında bu vektörler ile daha rahat bir iletişim kurmak mümkün olur.

Popüler vektör veritabanları, indeksleme ve arama başlıklarına dair detayları, diğer yazımızda inceleyeceğiz.

Kullanıcı girdisini de, tıpkı döküman kesitlerine yaptığımız gibi, bir embedding modeli yardımıyla bir vektöre dönüştürürüz (Vektör X). RAG'nin amacı, kullanıcı girdisi ile döküman arasında bir uyum oluşturmaktır. Vektör veritabanında depoladığımız döküman vektörlerinin, kullanıcı promptu vektörü ile en uyumlu olmasını hedefleriz. Peki, burada uyum dediğimiz kavram nedir ve bu uyumu nasıl matematiksel olarak tespit ederiz? Bu soruya yanıt ararken, semantik arama yöntemlerine başvururuz. Semantik arama, oldukça geniş bir alanı kapsar. Biz, burada vektör karşılaştırması ile arama yapacağız. Vektör X'imizi, veritabanındaki her döküman vektörü ile tek tek karşılaştıracağız.

Bu konuyu, RAG Notlarım-2'de daha detaylı olarak ele alacağız.

Meta Prompt bölümüne, LLM modelimize "Elimde böyle bir bilgi var, şimdi sana soracağım soru için bu bilgileri kullan" diyerek final promptumuzu oluştururuz. Vektör sorgusundan gelen, en çok benzeyen K adet döküman kesiti ile birlikte, LLM için final promptuna eklemeler yapılır. Son olarak, final promptumuzu LLM dil modeline gönderir ve yanıtımızı alırız.

Part 2'de görüşmek üzere…

Linkedin: https://www.linkedin.com/in/serkanyasar/