GenAI Stack'in Gizemini Çözmek
Geleneksel yazılım tasarımı determinizme dayanır. Bir girdi gönderirsiniz, bunu bir şemaya göre doğrularsınız ve öngörülebilir bir çıktı beklersiniz.
Üretken Yapay Zeka (Generative AI) bunu değiştirir. Büyük Dil Modelleri (LLM'ler) olasılıksal motorlardır. Metni olasılığa dayalı olarak tahmin ederler.
Eğer bir LLM'e sihirli bir kutu gibi davranırsanız, üretim uygulamalarınız başarısız olacaktır. Eğer ona değişken, deterministik olmayan üçüncü taraf bir API olarak yaklaşırsanız, güvenilir sistemler inşa edebilirsiniz.
Bir LLM'in yönetmeniz gereken belirli kısıtlamaları vardır:
- Payload Boyutu: Modellerin
context window(bağlam penceresi) adı verilen katı sınırları vardır. Sınırsız veri gönderemezsiniz. - Gecikme (Latency): Veritabanı okumaları milisaniyeler sürer. LLM çıkarımı (inference) ise saniyeler sürer. Bunu yönetmek için asenkron kuyruklara veya
streaming(akış) yöntemine ihtiyacınız vardır. - Halüsinasyonlar: Eğer bir model belirli verilere sahip değilse, kulağa mantıklı gelen ancak yanlış bir cevap uyduracaktır.
Pahalı yeniden eğitim süreçlerine girmeden veri sorununu çözmek için Retrieval-Augmented Generation (RAG) kullanırız.
RAG, kendi veritabanınızı API'ye getirmenin eşdeğeridir. Modelin verilerinizi bilmesini beklemek yerine, backend'iniz ilgili bağlamı çeker ve bunu isteme (prompt) enjekte eder.
RAG iş akışı:
- Kullanıcı bir istem (prompt) gönderir.
- Sisteminiz bir Vektör Veritabanına (Vector Database) sorgu gönderir.
- Sistem, anlamsal olarak benzer metin parçalarını bulur.
- Sistem bu parçaları isteme (prompt) enjekte eder.
- LLM, temellendirilmiş bağlamı işler.
Bu, LLM'i bir bilgi üreticisinden bir bağlam işlemcisine dönüştürür. Hataları önemli ölçüde azaltır.
LLM çıktılarını otomatik servisler için kullanışlı hale getirmek için Yapılandırılmış Çıktılara (Structured Outputs) ihtiyacınız vardır. Bir mikro servis için konuşma metnini ayrıştırmak amacıyla regex kullanamazsınız. JSON gibi kesin şema tanımları iletmelisiniz. Bu, modelin kodunuzun okuyabileceği katı bir düzeni takip etmesini sağlar.
Üretim seviyesinde yapay zeka inşa etmek, doğrusal istemlerden (linear prompts) sağlam sistem tasarımına geçmeyi gerektirir.
Optional learning community: https://t.me/GyaanSetuAi