Düşünce Liderleri

Akıllı Sorgu Yönlendirme için Daha Akıllı SQL Yardımcıları: Kaliteyi Feda Etmeden Maliyetleri Nasıl Kesersiniz

mm
Unite.AI sitesini Google'daki tercih ettiğiniz kaynaklara ekleyin

SQL asistanınızın karmaşık sorguları roket gibi geçtiğini hayal edin. Sonra bir gün basit bir alışveriş listesi çekmek için roket yakıtı kullandığınızı fark edersiniz.

Heyecan verici, ancak yakıt faturası geldiğinde. Aniden, basit görevler için roket kullanmanın gereksiz olduğu anlaşılır. Aynı şey, her SQL isteğinin, basit bir sorgudan çok şema analizine kadar, aynı güçlü AI modeline yönlendirildiği zaman da olur.

AI SQL asistanı alma süreci genellikle aynıdır. İlk başta verimlilik artar: sorgular daha hızlı yapılır, kalıp kod ortadan kalkar ve geliştiriciler rutin SQL sorguları yazmak için daha az zaman harcar. Daha fazla takım kullanmaya başladığında, sorgu sayısı artar. Altyapı faturası geldiğinde, ekonomi değişir.

Sorun, binayla ilgilidir. İcra planları, şemalar ve karmaşık sorgu mantığını düşünebilen Frontier AI modellerini çalıştırmak pahalıdır. Bu fiyat, zor görevler için mantıklıdır, çünkü her sorgu yaklaşık 0,03 dolar maliyetinde olur. Ancak basit SELECT ifadeleri ve CRUD işlemleri için kullanıldığında, bu bir israf haline gelir.

Ama cevabı modeli düşürmek değildir. Sorguları doğru yere göndermektir. Akıllı sorgu yönlendirme, her isteği zorluğuna göre sıralar ve doğru model katmanına gönderir. Bu yöntem, SQL iş yüklerinde %40-70’e varan oranlarda maliyetleri azaltabilir ve çıktının kalitesini düşürmez.

Bu makale, bu mimarinin nasıl çalıştığını açıklamaktadır: SQL karmaşıklık kademelerini tanımlama, sınıflandırma ve yönlendirme boru hatlarını oluşturma ve sistemin çalıştığı sırada gerçek maliyet-kalite ticaretini ölçme. Bu kalıplar, şema farkında AI yetenekleri geliştirirken edinilen dersleri yansıtmaktadır.

Her SQL Görevi için Bir Model Yok

Tüm SQL sorguları karmaşıklık açısından aynı değildir. Birincil anahtar tarafından bir kullanıcıyı getirme ve birden fazla şema boyunca oturum kanallarını yeniden oluşturma gibi bir sorgu, her ikisi de SQL’dir, ancak bunları oluşturmak için gereken akıl yürütme çok farklıdır.

Eğer bir sistem onları aynı şekilde ele alırsa, sonuç öngörülebilirdir: israf edilen hesaplama. Çoğu kurumsal iş yükünde, yaklaşık olarak çoğu sorgu rutindir. Basit aramalar, tek tablo okumaları, temel eklemeler, sentaks düzeltmeleri. Karmaşık bir şey yok. Bunların hepsini bir ön modeline göndermek, bir kargo asansörü kullanarak bir defter taşıtmak gibidir.

Sorunu düşünmenin bir yolu, sorguları karmaşıklık kademelerine ayırmaktır:

Kategori Açıklama Örnekler Gerekli Model
Kategori 1 — Rutin Basit, iyi tanımlanmış görevler Basit SELECT’ler, aramalar, temel CRUD, sentaks düzeltmeleri Hızlı, düşük maliyetli model
Kategori 2 — Orta Birden fazla adımda akıl yürütme gerektirir Çoklu tablo JOIN’leri, alt sorgular, toplamlar, optimize edible ipuçları Orta düzey model
Kategori 3 — Karmaşık Derin şema farkındalığı ve akıl yürütme Çoklu veritabanı sorguları, pencere işlevleri, icra planı ayarları, şema farkında yeniden yapılandırma Ön model

Kademeler arasındaki maliyet farkı büyüktür. Bir Kategori 1 sorgusu yaklaşık 0,001 dolar maliyetinde olabilir. Aynı sorgu bir ön modele gönderilirse yaklaşık 0,03 dolar maliyetinde olur. Günde 10.000 sorgu için bu, 10 dolar ile 300 dolar arasındaki günlük harcama anlamına gelir. 30 katlık bir fark, sadece yönlendirme kararlarından kaynaklanır.

Şema farkındalığı da burada önemlidir. Kategori 3 sorguları sadece daha fazla hesaplama gerektirmez. Bağlam gerektirir: tablo ilişkileri, yabancı anahtarlar, dizinler, veritabanı özgü sentaks. Bu bağlam, çıkarım sırasında enjekte edilmelidir.

Basit bir Kategori 1 sorgusunu aynı ağır yola göndermek, jetonları boşa harcar, gecikme ekler ve sonucu geliştirmez.

Model Seçimi için Pratik Mimarisi

Yönlendirme sistemi genellikle dört aşama içerir: sınıflandırma, yönlendirme, yürütme ve doğrulama. Her aşama farklı bir işi yapar ve her biri farklı şekillerde başarısız olabilir. Onları ayrı ayrı düşünmek yardımcı olur.

Sınıflandırma en önemli adımdır. Sınıflandırıcı, ham SQL sorgusunu veya sorgu oluşturacak doğal dil ipucunu alır ve bir karmaşıklık kademesine atar. Sınıflandırıcı oluşturmak için üç ortak yol vardır.

Kural tabanlı sınıflandırma düzen desenlerini ve soyut sözdizimi ağacı (AST) ayrıştırmasını kullanarak yapısal sinyalleri tespit etmeye dayanır: tablo sayısı, iç içe geçme derinliği, pencere işlevleri, alt sorgular veya toplama operatörleri gibi şeyler. Bu yaklaşım hızlı ve öngörülebilirdir ve neredeyse hiç ek yükü yoktur. Basit SELECT ifadeleri ve temel DML genellikle model olmadan tespit edilebilir.

Hafif sınıflandırıcı modeller SQL karmaşıklığını tahmin etmek için eğitilmiş küçük bir dil modeli kullanır. Bu, ek bir adım ekler, ancak tüm boru hattındaki en yüksek getirili kararların biridir. Bir sınıflandırıcı çağrısı yaklaşık 0,0001 dolar maliyetinde olabilir, bu da 0,03 dolarlık bir ön model çağrısını kaçınmak için kolayca haklı çıkarır.

Çoğu kurulumda, bu hafif modeller ayrıca yerel olarak çalıştırılabilir, bu da basit kullanıcı sorguları için maliyeti etkili bir şekilde ortadan kaldırır. Ayrıca, sorgu henüz mevcut değilken doğal dil ipuçlarını sınıflandırabilir, bu da sorgu henüz mevcut değilken asistan iş akışlarında yararlıdır.

Melez sınıflandırma her iki yaklaşımı birleştirir. Kural tabanlı mantık açık durumları sıfır maliyetle ele alırken, sınıflandırıcı belirsiz orta durumları ele alır: görünüşte orta düzeyde olan ancak aslında doğru bir şekilde oluşturmak için şema farkında akıl yürütme gerektiren sorgular.

Yönlendirme sınıflandırmadan sonra gerçekleşir. Ancak kategori alone yönlendirme kararı için tek faktör değildir. Birkaç başka şey nereye gideceğini etkiler. Bunlar arasında:

  1. Şema bağlamı gereksinimleri. Bazı sorgular, modelin yabancı anahtar ilişkileri, dizinler veya diğer yapısal ayrıntıları anlamasını gerektirir. Bu sorgular daha fazla bağlam taşır ve genellikle daha yüksek kapasiteli bir modele yönlendirilmelidir.
  2. Gecikme toleransı. Kullanıcı tarafından karşılaşılan özellikler gibi özellikler için sıkı gecikme bütçeleri vardır. Arka plan görevleri genellikle yoktur. Bu durumlarda, daha yavaş ancak daha yetenekli bir model kabul edilebilir.
  3. Güvenlik eşiği. Bazen sınıflandırıcı kademe hakkında emin değildir. Bu durumlarda, yönlendirme yukarı doğru genellikle daha güvenli seçenektir. Yanlış bir aşağı yönlendirme, kötü bir sorgu üretebilir ve yeniden denemelere neden olabilir, bu da genellikle ilk başta daha güçlü modeli kullanmaktan daha pahalı olur.

Doğrulama katmanı, kod çalıştırıldıktan sonra çalışır. Bu, yönlendirme hatalarını kullanıcıya ulaşmadan önce yakalamakla görevlidir. Çalıştırdıktan sonra, sentaksın doğru, sonuçların makul olduğu (sorgu doğru satır şekillerini döndürdü mü?) ve şemanın tutarlı olduğu kontrol edilir. Bir sonuç doğrulamayı geçerse, sistem bir seviye yukarı çıkar ve sorguyu yeniden çalıştırır.

Devart’ta, dbForge AI Asistanının yönlendirme doğruluğunu elde etmenin en önemli kısmı, sınıflandırma kararına şema bağlamını entegre etmekti. Şema bağlamı olmadan, belirsiz tablo adlarını kullanan veya örtük ilişkilere güvenen sorgular her zaman yanlış sınıflandırıldı ve daha ucuz modellere yönlendirildi, ancak bunları ele alamadı. Çözüm, sınıflandırıcıya yalnızca sorgu yapısını değil, aynı zamanda bazı şema meta verilerini vermeyi içeriyordu.

Uygulamada Önemli Olanı Ölçme: Maliyet-Kalite Ticaretleri

Yönlendirme işinin ticari tarafı, kaliteyi koruduğu sürece geçerlidir. Kaliteyi düşürerek maliyet azaltımı, bozulmuş çıktı, artan yeniden denemeler veya geliştirici güvensizliği nedeniyle maliyet aktarmasıdır, değilse bir tasarruf değildir. Üç ölçüm, yönlendirme sisteminin gerçekten çalışıp çalışmadığını belirler.

Kategori başına sorgu maliyeti temelini oluşturur. Her kategori için gerçek harcamayı ayrı ayrı izleyin, blended ortalama olarak değil. Ortalama maliyeti karıştırır, yönlendirmenin çalışıp çalışmadığını gizler ve daha kötü sonuçlar üretir.

Kalite puanı doğruluk, tamamlık ve SQL en iyi uygulamalarına uymayı kontrol eder. Yükseltme oranı, en doğrudan sinyaldir. Yönlendirme sisteminin ne kadar iyi çalıştığını gösterir ve sınıflandırıcının nerede geliştirilmesi gerektiğini gösterir. İyi ayarlanmış bir sistem, yükseltmeyi %5’in altında tutmalıdır. Sınıflandırıcı, yapısal sinyalleri yanlış okuyabilir veya şema bağlamına ihtiyaç duyabilir.

Gecikme etkisi bir kademedeki bir yanıttan diğerine ne kadar zaman geçtiğini inceler, bu da sınıflandırma için gereken ek zamanı içerir. Kullanıcılar, yönlendirme katmanından geçen etkileşimlerde yalnızca 50-100 milisaniyelik bir gecikme görmelidir. Sınıflandırıcı kendisi bir sorun haline gelirse, melez yaklaşım (açık durumlar için kurallar, belirsiz durumlar için sınıflandırıcı) bunu doğruluk kaybetmeden çözer.

Gerçek hayatta, iyi ayarlanmış bir yönlendirme sistemi, maliyetleri %40-60 oranında azaltabilir, yükseltmeyi %5’in altında tutabilir ve karmaşık sorgular için çıktı kalitesini yüksek tutabilir. %70’den fazla tasarruf etmek için genellikle Tier 1 görevlerini daha küçük modellerle kendiniz yapmanız gerekir. Bu işe yarayabilir, ancak her ekibe bunu yapmak isteyip istemediklerini sormak gerekir.

“Yükseltme vergisi” başka bir şeydir. Yönlendirme daha ucuz modellere çok zorluysa, sistem daha fazla iş yapabilir: sınıflandırıcı çağrısı, ilk model çağrısı, başarısız doğrulama, yeniden yönlendirme ve ikinci model çağrısı. Bazı durumlarda, bu, ilk başta ön modeli kullanmaktan daha pahalı olabilir.

Yalnızca çağrı başına maliyeti izlemek bu etkiyi kaçırır. Yükseltme oranını da izlemek gerekir.

Mühendislik Ekipleri için Stratejik Alınacak Dersler

Akıllı yönlendirme, olgun AI SQL dağıtımları için sadece güzel bir şey değil, bir zorunluluktur. Yönlendirmeyi atlayan ekipler, çözülebilecek bir bütçe sorunundan, çözülebilecek bir mimari sorununa geçerler. Kalıplar orada; geriye kalan, hangilerini izleyeceğini karar vermektir.

Model yerine sınıflandırıcıyla başlayın. Yönlendirme katmanı her şeyin çalışıp çalışmadığını belirler. İyi ayarlanmış bir melez sınıflandırıcı, karmaşıklığı artırmeden çoğu maliyet tasarrufunu sağlayacaktır.

Sınıflandırma kararlarına yardımcı olmak için beslemenin şema bağlamını kullanın. Birden fazla tablo arasındaki ilişkileri veya şema özgü akıl yürütmeyi içeren SQL iş yükleri için, sorgu yapısı alone yeterli değildir. Sınıflandırma zamanında kısmi şema meta verisi, kategori doğruluğunu büyük ölçüde artırır.

Yükseltme oranını temel kalite sinyali olarak kullanın. Diğer herhangi bir ölçümünden daha hızlı yanlış sınıflandırmayı bulur ve sınıflandırıcının nerede geliştirilmesi gerektiğini gösterir.

Sınıflandırıcıdan önce, doğrulama katmanını planlayın. Başarısızlığın neye benzediğini ve hangi nedenlerle yükseltme meydana geldiğini bilerek, yönlendirme mantığını temizleyin ve sistemi kenar durumlarına daha iyi hazırlayın.

Yönlendirme katmanının değeri, açık kaynaklı modeller daha iyi hale geldikçe ve yerel çıkarımın maliyeti düştükçe artar, değil azalır. Daha ucuz Tier 1 modeller, kademeler arasındaki maliyet farkını büyütür, bu da doğru sınıflandırmanın daha değerli olmasını sağlar. Bugün oluşturulan yönlendirme mimarisi, sadece hızlı bir çözüm olarak değil, uzun süre için faydalı olacaktır.

Viсtor Horlenko, Devart'ta Yapay Zeka Yenilikleri Başkanı olarak, şirketin veritabanı yönetim ve bağlantı araçları paketi boyunca yapay zeka destekli otomasyon, ürün optimizasyonu ve müşteri deneyimi konularındaki girişimlere liderlik etmektedir.