Daha iyi bir Türkiye mümkün! Türkiye'nin girişimcilik ve inovasyon topluluğu·2018'den beri

Yapay Zeka (ai)

/yapayzeka

Bu toplulukta yapay zekâ ile ilgili yeni araçlar, kullanım senaryoları, proje fikirleri, etik tartışmalar, iş dünyasındaki uygulamalar, eğitimde AI kullanımı ve Türkiye’de yapay zekânın gelişimine katkı sunabilecek çalışmalar paylaşılabilir.

#yapay zeka (ai) akışına dön
@mean · 5 gün önce huggingface.co ↗

RAG kurduk ama cevaplar yanlış kaynağı gösteriyor: parçalama ve yeniden sıralama ayarlarıyla üç haftalık deney

Şirket içi doküman arama için bir soru cevap sistemi kurduk. 4.200 sayfalık bir arşiv var: prosedürler, teknik şartnameler, eski teklif dosyaları. İlk sürüm iki günde ayağa kalktı ve herkes etkilendi. Üçüncü hafta kullanım düştü, çünkü sistem doğru cümleyi söyleyip yanlış belgeyi kaynak gösteriyordu. Kullanıcı kaynağa tıklayıp orada o bilgiyi bulamayınca sisteme güvenmeyi bıraktı. Üç haftayı bunu düzeltmekle geçirdim, not aldıklarımı paylaşayım.

Birinci bulgu: sorun modelde değil parçalamadaydı. Belgeleri sabit 1.000 karakterlik parçalara bölmüştük. Bu yöntem, bir tablonun ortasından, bir maddenin yarısından kesiyor. Parçanın tek başına anlamı olmayınca arama onu yanlış soruya eşliyor. Başlık yapısına göre bölmeye geçtik: her parça bir başlık altındaki metin, çok uzunsa alt başlıklara iniyor. Parça sayısı azaldı, isabet belirgin biçimde arttı.

İkinci bulgu: her parçanın başına bağlam satırı eklemek. Parçanın içine, ait olduğu belgenin adını, bölüm başlığını ve tarihini yazdık. Yani arama sırasında kullanılan metin sadece paragraf değil, "Satınalma Prosedürü, Bölüm 4, Teklif Değerlendirme, 2025 revizyonu" bilgisini de taşıyor. Bu küçük ek, özellikle benzer içerikli farklı revizyonlar arasında ayırt etmeyi sağladı. Bizim arşivde aynı prosedürün üç revizyonu vardı ve sistem sürekli eskisini getiriyordu.

Üçüncü bulgu: tek aşamalı arama yetmiyor. Önce geniş bir aday kümesi çekiyoruz, sonra bir yeniden sıralama adımıyla bu adayları soruyla ilişkisine göre yeniden puanlıyoruz. İlk aşamada 40 parça çekip ikinci aşamada 6 taneye indirmek, doğrudan 6 parça çekmekten çok daha iyi sonuç verdi. Maliyeti var ama arama başına eklenen süre kabul edilebilir seviyede kaldı.

Dördüncü bulgu: anahtar kelime aramasını atmayın. Sadece anlamsal arama kullanınca ürün kodları, standart numaraları ve kısaltmalar kayboluyor. "TS EN 13501" gibi bir ifade anlamsal aramada hiçbir şey ifade etmiyor. Klasik kelime aramasıyla anlamsal aramayı birleştirip skorları harmanlayınca bu tip sorgularda isabet çok arttı.

Beşinci bulgu, en önemlisi: kaynak göstermeyi modele bırakmayın. Model cevabı yazarken kaynak uydurabiliyor. Biz şöyle yaptık: cevabın her cümlesi için, o cümlenin hangi parçadan geldiğini ayrı bir doğrulama adımıyla kontrol ediyoruz. Eşleşmeyen cümleler için kaynak gösterilmiyor ve kullanıcıya "bu kısım belgelerde doğrudan geçmiyor" uyarısı çıkıyor. Kullanıcı güveni asıl bundan sonra geri geldi.

Rakamlar: kendi hazırladığımız 120 soruluk test setinde doğru belge getirme oranı yüzde 54'ten yüzde 89'a çıktı. Cevap kalitesinde de düzelme var ama asıl kazanç kaynak doğruluğunda oldu, çünkü kullanıcı için ölçüt oydu.

Yapılacaklar listemde hala duran iki şey var: tablolardan çıkarılan metnin hala kötü olması ve taranmış eski belgelerin okunamaması. Tablo tarafında ne kullanıyorsunuz, ayrı bir çözüm mü koştuyorsunuz?
2 5 yorum
Yorumlar (5)
@navigator · 4 gün önce 3
Bağlam satırı ekleme numarası bizde de en çok fark yaratan şey oldu. Bir ek öneri: parçanın sonuna da bir önceki ve bir sonraki parçanın ilk cümlesini koyun. Prosedür metinlerinde cümle sınırları net olmadığı için bu küçük örtüşme, kesilen maddelerin anlamını kurtarıyor.
@keremyldz · 4 gün önce 0
Tablo sorusuna cevap: biz tabloları ayrı bir boru hattından geçiriyoruz. Tabloyu metne çevirmek yerine her satırı tek bir cümleye dönüştürüyoruz, yani başlıkları her satırda tekrarlıyoruz. "Ürün: X, Kalınlık: 3 mm, Fiyat: 240 TL" gibi. Yer kaplıyor ama arama tarafında inanılmaz fark ediyor çünkü her satır kendi başına anlamlı hale geliyor.
@burakdmrts · 4 gün önce 0
Cümle bazında kaynak doğrulama fikri çok iyi ama maliyeti ne oldu merak ettim. Her cevap için ek bir model çağrısı mı yapıyorsunuz, yoksa daha ucuz bir yöntemle mi eşleştiriyorsunuz?
@mean · 4 gün önce 1
Maliyet sorusuna cevap: ek model çağrısı yapmıyoruz. Cümleyle parçalar arasında basit bir benzerlik hesabı yapıp eşik üstündekini kaynak sayıyoruz. Tam cümle eşleşmesi aramıyoruz, kelime örtüşmesine ve gömme benzerliğine bakıyoruz. Maliyeti neredeyse sıfır. Yanlış pozitif oluyor ama uydurma kaynak gösterme problemini büyük ölçüde bitirdi.
@hakanoztrk · 3 gün önce 1
Revizyon problemi bizde de vardı, biz tarihe göre filtre koyduk. Arama sırasında aynı belgenin birden fazla revizyonu geldiyse yalnızca en günceli kalıyor, eski revizyonlar ancak kullanıcı açıkça geçmişi sorduğunda geliyor. Bunu kurduktan sonra şikayetlerin yarısı bitti. Belge adında revizyon bilgisi yoksa önce bir temizlik yapmak gerekiyor, biz dosya adlarını düzenlemek için bir hafta harcadık ama değdi.
Tanıtım videosu · 1 dk

inovanadolu'yu 1 dakikada tanı

Kanallar, sözlük, İlham blogu, kişilik testleri ve 102 ücretsiz araç. Üretenlerin buluşma noktasında neler olduğunu kısaca izle.