Bu iki bölümlük serinin ilk bölümünde, optimal olmayan yerleştirme modellerinin, verimsiz parçalama stratejilerinin ve meta veri filtreleme eksikliğinin Yüksek Lisans'ınızdan ilgili yanıtları almayı nasıl zorlaştırabileceğine bakıyoruz. İşte bu zorlukların üstesinden nasıl gelineceği.
kullanan üretken yapay zeka uygulamaları oluşturma
Bu süreci iki ana parçaya ayıracağız. Serideki bu ilk makalede ele alacağımız ilk konu,
Burada, kötü sonuçlara yol açabilecek üç ana alanı ele alacağız: optimal olmayan yerleştirme modelleri, verimsiz parçalama stratejileri ve meta veri filtreleme eksikliği. (Gelecek makalede, Yüksek Lisans ile gerçek etkileşime bakacağız ve orada ortaya çıkan ve kötü sonuçlara yol açabilecek bazı yaygın sorunları inceleyeceğiz.)
Gömme modeli seçiminiz, RAG uygulamanızın genel alaka düzeyi ve kullanılabilirliği üzerinde önemli bir etkiye sahip olacaktır. Bu nedenle, her modelin yeteneklerinin ayrıntılı bir şekilde anlaşılmasını ve bu yeteneklerin uygulamanızın gereksinimleriyle nasıl uyumlu olduğuna dair bir analiz gerektirir.
Genel olarak RAG ve yerleştirmeler konusunda nispeten yeniyseniz, bilmeniz gereken en iyi kaynaklardan biri
Skor tablosu, özel kullanım durumunuz için en iyi performansı gösterecek modelleri belirlemenize yardımcı olabilir.
Zayıf RAG performansının en yaygın nedenlerinden biri, bu alanda yeni olan geliştiricilerin, yerleştirme oluşturma örneklerini bulmak için bir Google araması yapmasıdır. Genellikle Word2Vec, sBERT ve RoBERTa gibi yerleştirme modellerini kullanan ve geri alma kullanım durumları için kötü seçimler olan örnekler bulurlar.
Bu makaleyi, alaka düzeyi düşük sonuçlarda hata ayıkladığınız için bulduysanız ve yerleştirmelerinizi oluşturmak için sBERT gibi bir şey kullandıysanız, muhtemelen alaka düzeyi sorunlarınızın nedenini tanımlamışızdır.
Eğer öyleyse, muhtemelen soracağınız bir sonraki soru, benzerlik arama sonuçlarınızı geliştirmek için hangi yerleştirme modellerini kullanabileceğinizdir. Kullanım durumunuzun ayrıntılarını bilmeden önerebileceğimiz üçü şunlardır:
8.192 jetona kadar maksimum giriş dizisi uzunluğuyla, alternatif modellere göre çok daha uzun metin parçaları için yerleştirmeler oluşturmanıza da olanak tanır. Bu hem bir lütuf hem de bir lanettir.
Büyük bir dizi boyutuna sahip olmak, metin içeriğinizin daha büyük bir kısmı için yerleştirme oluşturma sürecini basitleştirir ve gömme modelinin daha büyük bir metin gövdesindeki kelimeler ve cümleler arasındaki ilişkileri tanımlamasına olanak tanır.
Ancak bu aynı zamanda, aradığınız şey oluşturma sürecini kolaylaştırmak için ilgili bağlam parçaları olduğunda, iki uzun belgenin benzerliğini karşılaştırırken daha bulanık hale gelebilecek benzerlik aramalarıyla da sonuçlanır.
Ada v2'nin iki büyük dezavantajı var. Birincisi, yerel olarak çalıştırılamaması. Gömmeyi oluşturmak için OpenAI'nin API'sini kullanmanız gerekir. Bu, yalnızca birçok içerik parçası için yerleştirmeler oluşturmak istediğiniz durumlarda darboğazlar oluşturmakla kalmaz, aynı zamanda 1.000 jeton başına 0,0001 ABD Doları tutarında bir maliyet de ekler.
İkincisi ise Open AI modelinden oluşturulan yerleştirmelerin her birinin 1.536 boyutta olmasıdır. Bulut vektör veritabanı kullanıyorsanız bu, vektör depolama maliyetlerinizi önemli ölçüde artırabilir.
Ne zaman seçmelisiniz: Yalnızca API çağrısı gerektiren basit bir çözüm istiyorsanız, büyük belgeleri vektörleştirmeniz gerekebilir ve maliyet sorun değildir.
Jina v2, Ada v2 ile aynı 8.000 giriş dizisi desteğini sağlayan ve aslında geri alma kullanım durumlarında biraz daha iyi puan alan yeni bir açık kaynaklı yerleştirme modelidir.
Jina v2, Ada v2'nin sorunlarına panzehir sağlıyor. Apache Lisansı 2.0 altında açık kaynaktır ve yerel olarak çalıştırılabilir; eğer bunu yapmak için kendi kodunuzu çalıştırmayı düşünmüyorsanız bu da elbette bir dezavantajdır. Ayrıca Ada v2'nin yarısı boyutunda bir gömme vektörü üretir.
Böylece, karşılaştırmalı kullanım durumlarında yalnızca biraz daha iyi bir alma performansı elde etmekle kalmaz, aynı zamanda vektör veritabanı perspektifinden daha düşük depolama ve bilgi işlem gereksinimleriyle daha iyi sonuçlar elde edersiniz.
Ne zaman seçmelisiniz: Açık kaynaklı bir çözüm kullanmak istiyorsunuz ve potansiyel olarak büyük belgeleri vektörleştirmeniz gerekiyor ve yerleşik işlem hatlarını yerel olarak çalıştırma konusunda rahatsınız. Daha düşük boyutlu yerleştirmelerle vektör veritabanı maliyetlerini azaltmak istiyorsunuz.
bge-large-en-v1.5, MIT lisansı altında açık kaynaklıdır ve şu anda erişim kullanım senaryoları için MTEB sıralamasında en üst sıralarda yer alan yerleştirme modelidir. Daha küçük bir giriş dizisiyle, parçalama stratejiniz üzerinde daha fazla düşünmenizi gerektirecektir ancak sonuç olarak, geri alma kullanım durumları için en iyi genel performansı sağlar.
Ne zaman seçmelisiniz: Açık kaynaklı bir çözüm kullanmak istiyorsunuz ve girdi boyutu sınırlamaları dahilinde kalmak için parçalama stratejilerine daha fazla zaman harcamak istiyorsunuz. Yerel olarak yerleşik işlem hatlarını çalıştırma konusunda rahatsınız. Alma kullanım durumları için en iyi performansa sahip yerleştirme modelini istiyorsunuz.
Bu makalenin kapsamı dışında olsa da, sizin özel durumunuza en çok benzeyeni belirlemek için MTEB skor tablosundaki 15 kriteri daha derinlemesine incelemek isteyebilirsiniz.
Çeşitli yerleştirme modellerinin farklı kıyaslamalarda ne kadar iyi performans gösterdiğine ilişkin kesin modeller olsa da, genellikle her birinde öne çıkan belirli modeller vardır. Gömme seçiminizi daha da hassaslaştırmanız gerekiyorsa bu, daha fazla inceleme yapılması muhtemel bir alandır.
Giriş metninin bölümlenmesi veya "parçalanması", oluşturulan çıktının uygunluğunu ve doğruluğunu önemli ölçüde etkileyen önemli bir faktördür. Çeşitli parçalama stratejileri benzersiz avantajlar sunar ve belirli görev türleri için uygundur. Burada, bu metodolojileri derinlemesine inceliyor ve bazı temel hususları bir araya getirerek bunların uygulanmasına yönelik yönergeler sağlıyoruz:
Ne zaman kullanılmalı - İçeriğinizin kendisi oldukça yapılandırılmış ve sabit uzunlukta olmadığı sürece, genellikle aşağıdakiler gibi daha kullanışlı bir parçalama stratejisine güvenmek istersiniz.
Teknik değerlendirme - Uygulanması çok basit olmasına rağmen, bu parçalama stratejisi genellikle RAG uygulamalarında kötü sonuçlara yol açacaktır.
Ek bilgiler RAG uygulamanızla sabit uzunluklu bir strateji kullanıyorsanız ve ilgili bağlamı almada sorun yaşıyorsanız farklı bir parçalama yaklaşımına geçmeyi düşünmelisiniz.
Ne zaman kullanılmalı - Bu strateji, giriş metnindeki her cümle anlam ve bağlam açısından zengin olduğunda etkilidir. Modelin her cümledeki karmaşıklıklara odaklanmasına olanak tanır, böylece daha tutarlı ve bağlamsal olarak anlamlı yanıtlar üretilir. RAG kullanım durumları için cümle düzeyinde parçalamaya nadiren güvenirsiniz.
Teknik değerlendirme - Cümle düzeyinde parçalama genellikle doğal dil işleme (NLP) kitaplıkları kullanılarak gerçekleştirilebilen cümle sınırlarına dayalı simgeleştirmeyi içerir.
Ek bilgi - Cümle düzeyinde parçalama, belirli ifadeleri ararken, örneğin belirli bir metin parçasına semantik olarak benzer ifadeleri bulmaya çalıştığınız bir toplantının transkriptinde olduğu gibi, özellikle yararlı olabilir.
Ne zaman kullanılmalı - Girdi metni, her biri ayrı bir fikir veya konuyu kapsayan ayrı bölümler veya paragraflar halinde düzenlendiğinde bu stratejiyi kullanın. Bu, modelin her paragraftaki ilgili bilgilere odaklanmasını sağlar.
Teknik değerlendirme - Paragraf sınırlarının belirlenmesi genellikle yeni satır karakterlerinin veya paragrafın sonunu belirten diğer sınırlayıcıların tespit edilmesini içerir.
Ek bilgi - Paragraf düzeyinde gruplama, aynı konunun birçok farklı yönünü kapsayan belgeleriniz olduğunda yararlı olabilir. Örneğin, ürün belgelerinin bir sayfası bir ürün özelliğini tanıtabilir, ne zaman kullanılacağını açıklayabilir, nasıl yapılandırılacağı hakkında konuşabilir ve farklı yapılandırma örnekleri verebilir.
Paragraf düzeyinde gruplamanın kullanılması, LLM'ye bağlam olarak sunmak üzere belgenin en ilgili bölümünü belirlemenize yardımcı olabilir.
Ne zaman kullanılmalı - Metin içindeki belirli bölümlerin alaka düzeyi çok önemli olduğunda bu stratejiyi tercih edin. Örneğin, yasal belgelerde metni maddelere veya bölümlere göre bölümlere ayırmak, daha bağlama özgü yanıtlar sağlayabilir.
Teknik değerlendirme - Bu yaklaşım, metin içindeki anlamsal sınırları anlamak için ileri NLP tekniklerini gerektirebilir.
Ek bilgi - İçeriğe duyarlı parçalama, yapılandırılmış veya yarı yapılandırılmış verilerle uğraşırken özellikle yararlıdır; çünkü belirli parçalar, daha hassas erişim için meta veri filtrelemeyle birleştirilebilir.
Örneğin, yasal bir belgede, tüm garanti veya tazminat maddelerini çıkarmak isteyebilirsiniz ve parçalar için yerleştirmeleri bir vektör veritabanında sakladığınızda, bir veri tabanı oluştururken belirli bir türdeki içeriği aramayı kolaylaştırmak için meta verileri kullanabilirsiniz. RAG kullanım durumu.
Ne zaman kullanılmalı - Özyinelemeli parçalama, hiyerarşik bir yaklaşım kullanarak verileri gittikçe daha küçük parçalara böler. Örneğin, bir metin belgesini parçalara ayırırken metni önce paragraflara, sonra cümlelere ve son olarak da kelimelere bölebilirsiniz.
Veriler ilk parça kümesine bölündükten sonra, parçalama işlemini daha küçük parçaların her birine yinelemeli olarak uygulayabilir, ilgilendiğiniz en küçük parça boyutuna ulaşana kadar bunu tekrarlayabilirsiniz.
Teknik değerlendirme - Özyinelemeli parçalamanın uygulanması, parçaların ek kriterlere göre alt parçalara bölündüğü çok düzeyli bir ayrıştırma stratejisini içerebilir. Eğer kullanıyorsanız
Ek içgörü - Bu yaklaşım, modelin üst düzey temalardan ayrıntılı nüanslara kadar çeşitli düzeylerdeki bağlamı anlamasına olanak tanıyarak onu özellikle akademik makaleler, teknik kılavuzlar veya yasal sözleşmeler gibi karmaşık belgeler için kullanışlı hale getirir. Benzerlik aramaları hem daha geniş hem de daha kısa sorgular için benzer metni tanımlayabildiğinden bu durum esneklik avantajları sağlar.
Ancak bu aynı zamanda, özellikle metin ayırıcı yapılandırmanızda parçalar arasında daha uzun bir örtüşmeyi tercih ederseniz, aynı kaynak belgedeki benzer parçaların benzerlik aramalarında aşırı temsil edilme ihtimalinin olduğu anlamına da gelir.
Genel bir yaklaşım olarak, büyük bir derlemi parçalara ayırıp vektörleştirmeyi denemeden önce, verilerinizle bazı geçici deneyler yapmayı düşünmelisiniz.
Belirli bir sorgu için almak istediğiniz belgeleri manuel olarak inceleyin, LLM'ye sağlamak istediğiniz ideal bağlamı temsil eden parçaları belirleyin ve ardından hangisinin size en alakalı olacağını düşündüğünüz parçaları verdiğini görmek için parçalama stratejilerini deneyin. LLM'nin sahip olması için.
Yüksek Lisans'ın mevcut bağlam penceresi, parçalama stratejisi seçiminde önemli bir faktördür. Bağlam penceresi küçükse, en alakalı bilgilerin dahil edildiğinden emin olmak için modele beslediğiniz parçalarda daha seçici olmanız gerekir.
Tersine, daha büyük bir bağlam penceresi daha fazla esnekliğe izin vererek, tamamı kesinlikle gerekli olmasa bile modelin çıktısını artırabilecek ek bağlamın dahil edilmesine olanak tanır.
Bu parçalama stratejilerini deneyerek ve bu hususları hesaba katarak bunların, oluşturulan çıktıların uygunluğu üzerindeki etkisini değerlendirebilirsiniz. Önemli olan, seçilen stratejiyi RAG uygulamanızın özel gereksinimleriyle uyumlu hale getirmek, girdinin anlamsal bütünlüğünü korumak ve bağlamın kapsamlı bir şekilde anlaşılmasını sağlamaktır.
Bu, optimum performans için doğru parçalama işlemini bulmanızı sağlayacaktır.
Arama dizininizdeki yerleştirmelerin sayısı arttıkça, yaklaşık en yakın komşular (YSA), istemlerinize dahil edilecek ilgili bağlamı ararken daha az yardımcı olur. Diyelim ki bilgi tabanınızda 200 makale için yerleştirmeleri dizine eklediniz.
En yakın komşuyu %1'lik bir doğrulukla belirleyebilirseniz, muhtemelen oldukça alakalı sonuçlar bulacaksınız çünkü %1, bu 200 makalenin en iyi iki makalesini temsil ediyor ve bu ikisinden birini alacaksınız.
Şimdi Vikipedi'deki her makaleyi içeren bir arama dizini düşünün. Bu da yaklaşık 6,7 milyon makale anlamına geliyor. En yakın komşunuz en çok benzer makaleler arasında ilk %1'de yer alıyorsa bu, en benzer 67.000 makaleden birini aldığınız anlamına gelir.
Vikipedi gibi bir külliyatla bu, hâlâ hedefin çok uzağında kalabileceğiniz anlamına gelir.
Meta veri filtreleme, önce belgeleri filtreleyip ardından en yakın komşu algoritmasını uygulayarak içerik parçalarını daraltmanıza olanak tanır. Çok sayıda olası eşleşmeyle uğraştığınız durumlarda, bu ilk ön filtreleme, en yakın komşuları almadan önce olası seçenekleri daraltmanıza yardımcı olabilir.
Sırada, Yüksek Lisans ile etkileşime dalacağız ve kötü sonuçlara yol açabilecek bazı yaygın sorunları inceleyeceğiz.
Denemek
Yazan: Chris Latimer, DataStax
Burada da yayınlandı