paint-brush
Yapay Zeka Destekli Arama için Vektör Yerleştirmelerini Anlamakile@picocreator
2,266 okumalar
2,266 okumalar

Yapay Zeka Destekli Arama için Vektör Yerleştirmelerini Anlamak

ile picocreator7m2023/01/28
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Gömmeler, arama veya soru yanıtlama, metin sınıflandırma ve metin oluşturma gibi diğer görevler için kullanılabilir. Gömme vektörü, yapay zeka modelinin metnin özetlenmiş anlayışını temsil eder. Bu, yalnızca yapay zekanın anlayabileceği bir dilde yazılmış "N kelimelik özet" olarak düşünülebilir. Bu, klasik arama motorlarının basit anahtar kelime aramalarının ötesinde büyük bir adımdır.
featured image - Yapay Zeka Destekli Arama için Vektör Yerleştirmelerini Anlamak
picocreator HackerNoon profile picture
0-item
1-item

Anahtar kelimeye dayalı aramaya elveda deyin


GPT 3+ veya ChatGPT'de anlık mühendisliğin sezgisel olarak anlaşılması daha kolaydır. Web'de ve sosyal medyada birçok kılavuz ve örnek mevcuttur. Örneğin



Gömmeler programlama gerektirir ve nasıl çalıştığına ilişkin çeşitli karşıt sezgisel davranışlar nedeniyle daha az anlaşılır. Ancak, diğer çeşitli olası kullanım durumları için arama yapmak veya mevcut metin tabanlı modellerle birlikte kullanılmak üzere son derece güçlü bir araçtır.


Yerleştirmelerin, talimat modelleri için AI araç seti içerisinde tartışmasız aynı derecede güçlü bir araç olduğu söylenebilir. Farklı kelime ve cümlelerde, hatta tüm dillerde arama yapabilme yeteneği nedeniyle. Herhangi bir sorgu için ilgili belgeyi aramaya odaklanmak.


Örneğin, İngilizce tabanlı bir belgeden arama ve yanıtlamayı güçlendirmek için kullanılabilir. İngilizce ...

Soru-Cevap botumuza İngilizce soru sorma

Ya da Japonca...

Aynı soruyu Japonca olarak sorarsanız, belgelerimizin yalnızca İngilizce olduğunu unutmayın.

Veya AI modelinin desteklediği diğer diller.


Vektör yerleştirme, arama veya soru yanıtlama, metin sınıflandırma ve metin oluşturma gibi diğer görevler için kullanılabilir.


Bu makalenin arama yönüne odaklandığını, yanıtlama sürecinin bir takip makalesinde yer aldığını unutmayın.


Vektör gömme nedir?

Bir vektör yerleştirme oluşturmak için, herhangi bir metni (büyük bir belge, bir cümle ve hatta bir kelime) vektör adı verilen bir "N boyut dizisine" dönüştüren bir yerleştirme yapay zeka modeli kullanılacaktır.


Örneğin How do I write a UI test script with Uilicious? gibi bir cümle.


OpenAI text-embedding-ada-002 modeli aracılığıyla bir diziye (vektör olarak adlandırılır) dönüştürülebilir: [0.010046141, -0.009800113, 0.014761676, -0.022538893, ... an a 1000+ numbers]


Bu vektör, yapay zeka modelinin metnin özetlenmiş anlayışını temsil eder. Bu, yalnızca yapay zekanın anlayabileceği bir dilde yazılmış "N kelimelik özet" olarak düşünülebilir.

Yapay zekanın belgeyi (yalnızca metnini değil) anlamasına bağlı olarak, ilgili belgelerin birbirine yakın mesafede olacağı yer.


Bu, klasik arama motorlarının basit anahtar kelime aramalarının ötesinde büyük bir adımdır çünkü cümle yapısı ve dildeki farklılıkları ele alabilir (yapay zeka modelinin söz konusu dili anlayacak şekilde eğitilmesi şartıyla).


Aşağıdakileri varsayımsal bir örnek olarak ele alalım; anlaşılması daha kolay olsun diye yanlış bir şekilde 2 boyutlu uzaya aşırı basitleştirilmiştir:



Bu, 2 boyutlu uzayda görsel olarak aşağıdaki gibi sunulabilir.


Örneğin D1,2,3, Uilicious'un çeşitli şekillerde nasıl kullanılacağına ilişkin tüm belgelerdir ve tek bir kümede gruplandırılmıştır


Basit birer bağlantı olan ve bunun ötesinde doğal bir değeri olmayan D4 ve D5, başka bir kümede ayrı ayrı gruplandırılmıştır.


Ayrıca D1 ve D2, kendi JavaScript tabanlı test dilimizi kullanan Uilicious test komutlarıyla ilgili olduklarından birlikte daha fazla gruplandırılmıştır.


D3, farklı bir kullanım senaryosuna ve hedef kitleye yönelik olan web sürücüsü protokolünün doğrudan altyapımızda kullanılmasıyla ilgili olduğundan ayrı olarak gruplandırılmıştır.


Benzer şekilde, C1 ve S2 için, cümle yapısı ve dildeki büyük farklılıklara rağmen, esasen aynı soru olduğu için iki soru birlikte gruplandırılmıştır.


Ek olarak, soru teknik olarak her iki şekilde de yorumlanabilse de (Uilicious test komut dosyası veya web sürücüsü protokolü kullanılarak), soru web sürücüsü üzerinde Uilicious test komut dosyası kullanımı anlamına geldiğinden, konumu D1 ve D2'ye "daha yakın" ve D1 ve D2'den daha uzaktadır. D3.


Bu nedenle, anahtar kelimelerde büyük örtüşmeler olmasına rağmen, gruplandırmalardaki bu nüanslar, yerleştirmelerin içinde kodlanan yapay zeka tarafından yakalanıyor. Anahtar kelime aramadaki ayırt edici farkını vurgulama


Ancak gerçekte, insanların anlaması kolay olan aşırı basitleştirilmiş 2 boyutlu bir dizi yerine, yerleştirme kolaylıkla 1.000'den fazla boyutlu bir dizi olabilir. Bu dizi, kullanılan spesifik AI modeline özeldir ve başka bir AI modelinin yerleştirmeleriyle karıştırılamaz.



Matematik notları: N boyutlu matematik, 2/3D matematikle uyumlu değildir

Aşırı basitleştirilmiş 2 boyut örnekleri, bir soruya (veya bir bakış açısına) göre yüksek düzeyde gruplandırma kavramını anlamak için iyi olsa da, bir N boyutunu doğru şekilde temsil etmez.


Karmaşık N boyutu matematiği nedeniyle A'nın B'ye yakın olabileceği, B'nin C'ye yakın olabileceği ancak A ve C'nin birbirinden uzak sayılabileceği durumlar olabilir. Bu son derece mantığa aykırı bir sonuç.


Bu tür mesafeler yalnızca aynı noktaya ve kullanılan formüllere göre kullanıldığında faydalıdır. hangisi kullanılarak hesaplanabilir?


  • Öklid mesafesi : Steroidlerde Pisagor Teoremi olarak da bilinir, kullanılan en yaygın mesafe ölçüsüdür ve N-küredeki iki nokta arasındaki düz çizgi mesafesidir.
  • Kosinüs Benzerliği : Bir N-küresindeki iki nokta arasındaki açısal mesafenin ölçüsüdür ve belgelerin veya diğer vektörlerin benzerliğini ölçmek için kullanışlıdır.
  • Manhattan veya Hamming Mesafesi: Bu iki ölçüm, iki vektör arasındaki farkları ölçmek için kullanılır ve iki dize arasındaki "düzenleme mesafesini" ölçmek için kullanışlıdır.


Her formülün etkinliğinin, farklı kullanım durumları için kendi artıları ve eksileri vardır. Metinsel arama için, Öklid mesafesinin çoğu durumda "daha iyi sonuç verdiği" ve diğer yöntemlerin öne çıktığı durumlarda "yeterince iyi" olduğu genel olarak kabul edilir.


Bunların hepsi aslında N-Boyutlarını tek bir noktaya göre tek bir boyuta (mesafeye) indirmek için kullanılır. Sonuç olarak bu, sorulan soruya bağlı olarak gruplamaların büyük ölçüde değişebileceği/değişebileceği anlamına gelir.


Mesafelerin bu "görelilik" niteliği, klasik veritabanı arama indekslerini etkisiz hale getirir.

Eğer bu bir anlam ifade etmiyorsa, matematik N-Küreleri ile 4 boyutlu uzay bu şekilde doğru şekilde görselleştirilir.


Şimdi 1000 boyutu hayal edin? Evet hiç mantıklı değil.


Bu konuyu bir doktora makalesiyle saptırmadan, bunu sadece matematik profesörlerine güvenmek olarak özetleyeceğim.


Anlamamız gereken tek şey, genel olarak, iki vektör yerleştirme noktası arasındaki mesafe ne kadar yakınsa, bunların birbirleriyle ilişkili olma olasılıklarının da o kadar yüksek olduğudur.

Pratik uygulama açısından. Önce Öklid mesafesini kullanarak başlayın. Kullanım durumunuza göre deneme yanılma yoluyla daha iyi sonuçlar elde etmek için ince ayar yapılmış diğer formülleri kullanmayı düşünmeden önce (önerilmez).



Bir vektör veritabanıyla yerleştirmeleri arama

Çeşitli belgeleri gömmelere dönüştürebildiğimize göre, artık bir veritabanında saklayabilir ve onunla arama yapabiliriz.


Bununla birlikte, metinle arama yapan bir SQL veritabanının aksine, hem arama hem de aranan veri, kendisini gömen vektördür. Bu, yerleştirmelerin aranması söz konusu olduğunda geleneksel veritabanı arama dizinlerinin etkisiz olduğu anlamına gelir.


Tüm belgelerinizin yerleştirilmesini, önceden hesaplanmasını ve bir vektör arama veritabanında saklanmasını sağlayabiliriz. Bu daha sonra en yakın mesafeye göre sıralanmış bir eşleşme listesi sağlamak için kullanılabilir.


Bu, aşağıdaki gibi mevcut vektör veritabanları kullanılarak yapılabilir:

  • REDIS : vektör yerleştirmelerini depolamak ve bunları verimli bir şekilde aramak için kullanılabilecek popüler bir açık kaynaklı veritabanı.
  • Annoy : Spotify tarafından oluşturulan ve yerleştirmeleri hızlı bir şekilde aramak için optimize edilmiş bir algoritma kullanan bir kütüphane.
  • FAISS : Facebook tarafından oluşturulan ve büyük veri kümeleri için etkili arama algoritmaları sağlayan bir kütüphane.

Unutulmaması gereken önemli bir nokta, vektör arama "veritabanı teknolojisi" nispeten yenidir. Vektör arama veritabanlarının büyük çoğunluğu, Facebook, Spotify veya Google gibi şirketlerde bulunan ve milyonlarca veya milyarlarca dolarlık rekor setlere sahip kullanım örnekleri için tasarlandı. Ve küçük veri kümeleri için optimize edilemeyebilir.


Bu önümüzdeki birkaç yıl içinde sürekli değişen bir alan olacak, işte gelecekteki vektör arama veritabanlarını takip etmenize ve bulmanıza yardımcı olacak bir github 'harika listesi'


Bu nedenle, genel olarak, (<10.000 ~ 100.000 yerleştirme) küçük veri kümeleri için, gömme veri kümesini bellekte tutmanın ve öklid-mesafe-karesini kaba zorlamanın birçok kullanım durumu için "yeterince iyi" olduğunu ve bazen resmi yöntemlerden daha iyi performans göstereceğini bulduk. aşağıdakine benzer bir veritabanı çözümü (disk/ağ ek yükleri olacak).



Bu yaklaşımın bariz dezavantajı, tüm veri kümesinin ek yük olmadan belleğe sığacak kadar küçük olması gerektiğidir.


Yerel bellek içi gömme aramayı mı yoksa resmi bir vektör arama veritabanını mı kullandığınıza bakılmaksızın.


Bu kadar!


Gömülü arama, çeşitli diller ve senaryolarla esnek bir şekilde çalışan bir sıralama ve sıralama algoritmasıdır. Okuyucu olarak sizin için soru, onu nasıl kullanabileceğinizdir. Olası bir Google arama alternatifi olarak veya sohbetten oyunlara kadar diğer araçlarla birlikte kullanılabilir. Olasılıklar sonsuzdur ve araştırmaya açıktır.


~ Bir dahaki sefere kadar 🖖 uzun yaşa ve başarılı ol

Eugene Cheah @ tech-talk-cto.com


İlk olarak yayınlandığı yer: https://substack.tech-talk-cto.com/p/introducing-ai-embeddings-and-how

Gömmeli veya gömmesiz Büyük Hayal Edin


Kullanılan tüm Görseller, uygun atıflarıyla birlikte