Vektör veritabanı

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB sanal çekirdeği Postgresql

Vektör veritabanları, doğal dil işleme, video ve görüntü tanıma, öneri sistemi ve arama gibi analitik ve üretken yapay zeka genelinde çok sayıda etki alanında ve durumda kullanılır.

2023'te önemli bir yazılım eğilimi, yapay zeka geliştirmelerinin tümleştirilmesiydi ve bu, genellikle özel tek başına vektör veritabanlarını mevcut teknoloji yığınlarına ekleyerek elde edildi. Bu makalede vektör veritabanlarının ne olduğu açıklanır ve dikkate almak isteyebileceğiniz alternatif bir mimari sağlanır: Özellikle çok kalıcı verilerle çalışırken NoSQL'de tümleşik vektör veritabanını veya zaten kullandığınız ilişkisel veritabanını kullanma. Bu yaklaşım hem maliyeti azaltmanıza hem de daha fazla veri tutarlılığı, ölçeklenebilirlik ve performans elde etmenizi sağlar.

İpucu

Veri tutarlılığı, ölçeklenebilirlik ve performans, veri yoğunluklu uygulamalar için kritik öneme sahiptir. Bu nedenle OpenAI, Azure Cosmos DB üzerinde ChatGPT hizmetini oluşturmayı tercih eder. Siz de tümleşik vektör veritabanından ve tek basamaklı milisaniye yanıt sürelerinden, otomatik ve anlık ölçeklenebilirlikten ve her ölçekteki garantili hızdan yararlanabilirsiniz. Uygulama örneklerine bakın ve ücretsiz deneyin.

Vektör veritabanı nedir?

Vektör veritabanı, yüksek boyutlu bir alanda verilerin matematiksel temsilleri olan vektör eklemelerini depolamak ve yönetmek için tasarlanmış bir veritabanıdır. Bu alanda, her boyut verilerin bir özelliğine karşılık gelir ve gelişmiş verileri temsil etmek için on binlerce boyut kullanılabilir. Vektörlerin bu boşluktaki konumu, özelliklerini temsil eder. Sözcükler, tümcecikler veya belgelerin tamamı, görüntüler, ses ve diğer veri türlerinin tümü vektörleştirilebilir. Bu vektör eklemeleri benzerlik aramasında, çok kalıcı aramada, öneri altyapılarında, büyük dil modellerinde (LLM) vb. kullanılır.

Vektör veritabanında eklemeler vektör uzaklığına veya benzerliğine göre vektör arama algoritmaları aracılığıyla dizinlenir ve sorgulanır. En uygun verileri tanımlamak için sağlam bir mekanizma gereklidir. Bazı iyi bilinen vektör arama algoritmaları Hiyerarşik Gezinilebilir Küçük Dünya (HNSW), Ters Dosya (IVF), DiskANN vb. içerir.

Tümleşik vektör veritabanı ile saf vektör veritabanı karşılaştırması

İki yaygın vektör veritabanı uygulaması türü vardır: saf vektör veritabanı ve NoSQL veya ilişkisel veritabanındaki tümleşik vektör veritabanı.

Saf vektör veritabanı, az miktarda meta verinin yanı sıra vektör eklemelerini verimli bir şekilde depolamak ve yönetmek için tasarlanmıştır; eklemelerin türetildiği veri kaynağından ayrıdır.

Yüksek performanslı bir NoSQL veya ilişkisel veritabanıyla tümleştirilmiş bir vektör veritabanı ek özellikler sağlar. NoSQL veya ilişkisel veritabanındaki tümleşik vektör veritabanı, ilgili özgün verilerin yanı sıra eklemeleri depolayabilir, dizinleyebilir ve sorgulayabilir. Bu yaklaşım, verileri ayrı bir saf vektör veritabanında çoğaltmanın ek maliyetini ortadan kaldırır. Ayrıca, vektör eklemelerini ve özgün verileri bir arada tutmak, çok modalı veri işlemlerini daha iyi kolaylaştırır ve daha fazla veri tutarlılığı, ölçeklendirme ve performans sağlar.

Vektör veritabanı kullanım örnekleri

Vektör veritabanları, doğal dil işleme, video ve görüntü tanıma, öneri sistemi, arama vb. dahil olmak üzere analitik ve üretken yapay zeka genelinde çok sayıda etki alanında ve durumda kullanılır. Örneğin, vektör veritabanını kullanarak şunları yapabilirsiniz:

  • benzer resimleri, belgeleri ve şarkıları içeriklerine, temalarına, yaklaşımlarına ve stillerine göre tanımlama
  • özelliklerine, özelliklerine ve kullanıcı gruplarına göre benzer ürünleri tanımlama
  • kişilerin tercihlerine göre içerik, ürün veya hizmet önerme
  • kullanıcı gruplarının benzerliklerine göre içerik, ürün veya hizmet önerme
  • karmaşık gereksinimleri karşılamak için büyük bir seçenek havuzundan en uygun olası seçenekleri belirleme
  • baskın veya normal desenlerden farklı veri anomalilerini veya sahte etkinlikleri tanımlama
  • yapay zeka aracıları için kalıcı bellek uygulama

İpucu

Vektör veritabanları için bu tipik kullanım örneklerinin yanı sıra, tümleşik vektör veritabanımız düşük gecikme süresi, yüksek ölçeklenebilirlik ve yüksek kullanılabilirlik sayesinde üretim düzeyinde LLM önbelleğe alma için de ideal bir çözümdür.

LLM'lerden ve özel verilerden veya etki alanına özgü bilgilerden yararlanan alma artırılmış oluşturma (RAG) özelliğini etkinleştirmek için vektör veritabanlarını kullanmak özellikle popülerdir. Bu yaklaşım şunları yapmanızı sağlar:

  • Yapay zeka modellerinden kullanıcı istemlerine bağlamsal olarak uygun ve doğru yanıtlar oluşturma
  • LLM'lerin belirteç sınırlarını aşma
  • Güncelleştirilmiş verilerde sık sık yapılan ince ayarlamalardan kaynaklanan maliyetleri azaltma

Bu işlem, özel bir veri kaynağından ilgili bilgileri ayıklamayı ve bunu istem mühendisliği aracılığıyla model isteğiyle tümleştirmeyi içerir. LLM'ye istek göndermeden önce, kullanıcı girişi/sorgusu/isteği de eklemeye dönüştürülür ve veritabanındaki en benzer eklemeleri bulmak için vektör arama teknikleri kullanılır. Bu teknik, veritabanındaki en ilgili veri kayıtlarının tanımlanmasını sağlar. Bu alınan kayıtlar daha sonra istem mühendisliği kullanılarak LLM isteğine giriş olarak sağlanır.

Eklemeler

Ekleme, makine öğrenmesi modellerinin ve algoritmalarının kolayca kullanabileceği özel bir veri gösterimi biçimidir. Ekleme, bir metin parçasının anlamsal anlamının yoğun bilgi gösterimidir. Her ekleme, kayan nokta sayılarından oluşan bir vektördür; böylece vektör uzayında iki ekleme arasındaki uzaklık, özgün biçimdeki iki giriş arasındaki anlamsal benzerlikle ilişkilendirilir. Örneğin, iki metin benzerse, vektör gösterimleri de benzer olmalıdır. Eklemelerinizi özgün verilerinizle depolamanıza olanak tanıyan bir vektör veritabanı uzantısı, veri tutarlılığı, ölçeklendirme ve performans sağlar. [Geri dön]

Vektör arama, bir özellik alanında tam eşleşmeler yerine veri özelliklerine göre benzer öğeleri bulmanıza yardımcı olan bir yöntemdir. Bu teknik, benzer metin arama, ilgili görüntüleri bulma, önerilerde bulunma ve hatta anomalileri algılama gibi uygulamalarda kullanışlıdır. Azure OpenAI Eklemeleri veya Azure'da Yüz Tanıma gibi bir eklemeLER API'si kullanarak makine öğrenmesi modeli kullanarak oluşturduğunuz verilerinizin vektör gösterimlerini (sayı listeleri) alarak çalışır. Ardından veri vektörleri ile sorgu vektörünüzün arasındaki mesafeyi ölçer. Sorgu vektörünüzün en yakın veri vektörleri, en benzer olduğu saptanan vektörlerdir. Yerel vektör arama özelliğini kullanmak, yüksek boyutlu vektör verilerini doğrudan diğer uygulama verileriyle birlikte depolamak, dizine eklemek ve aramak için verimli bir yol sunar. Bu yaklaşım, verilerinizi daha maliyetli alternatif vektör veritabanlarına geçirme gereksinimini ortadan kaldırır ve yapay zeka temelli uygulamalarınızın sorunsuz bir tümleştirmesini sağlar. [Geri dön]

İstemler ve istem mühendisliği

İstem, LLM'ye yönerge olarak hizmet verebilen veya LLM'nin üzerine oluşturabileceği bağlamsal veriler olarak görev yapabilen belirli bir metin veya bilgiyi ifade eder. İstem, soru, deyim ve hatta kod parçacığı gibi çeşitli formlar alabilir. İstemler şu şekilde hizmet verebilir:

  • Yönergeler LLM'ye yönergeler sağlar
  • Birincil içerik: İşlenmek üzere LLM'ye bilgi verir
  • Örnekler: modeli belirli bir göreve veya işleme göre koşula yardımcı olun
  • ipuçları: LLM'nin çıkışını doğru yönde yönlendirme
  • Destekleyici içerik: LLM'nin çıkış oluşturmak için kullanabileceği ek bilgileri temsil eder

Senaryo için iyi istemler oluşturma işlemine istem mühendisliği adı verilir. İstemler ve istem mühendisliği için en iyi yöntemler hakkında daha fazla bilgi için bkz. Azure OpenAI Hizmeti istem mühendisliği teknikleri. [Geri dön]

Belirteçler

Belirteçler, giriş metni daha küçük parçalara bölünerek oluşturulan küçük metin öbekleridir. Bu segmentler, tek bir karakterden sözcüğün tamamına kadar değişen sözcükler veya karakter grupları olabilir. Örneğin hamburger sözcüğü jambon, bur ve ger gibi belirteçlere bölünürken, armut gibi kısa ve ortak bir sözcük tek bir belirteç olarak kabul edilir. ChatGPT, GPT-3.5 veya GPT-4 gibi LLM'ler, sözcükleri işlemek üzere belirteçlere ayırır. [Geri dön]

Alma artırılmış nesil

Alma artırılmış oluşturma (RAG), Bir vektör veritabanında depolananlar gibi topraklama verileri sağlayan vektör arama gibi bir bilgi alma sistemi ekleyerek ChatGPT, GPT-3.5 veya GPT-4 gibi LLM'lerin özelliklerini geliştiren bir mimaridir. Bu yaklaşım LLM'nizin vektörleştirilmiş belgelerden, görüntülerden, seslerden, videolardan vb. alınan özel verilerinize göre bağlamsal olarak ilgili ve doğru yanıtlar oluşturmasını sağlar.

NoSQL için Azure Cosmos DB kullanan basit bir RAG deseni şu olabilir:

  1. NoSQL için Azure Cosmos DB veritabanına ve koleksiyonuna veri ekleme
  2. Azure OpenAI Embeddings kullanarak bir veri özelliğinden ekleme oluşturma
  3. NoSQL için Azure Cosmos DB'yi Azure Bilişsel Arama bağlama (vektör dizin oluşturma/arama için)
  4. Ekleme özellikleri üzerinde vektör dizini oluşturma
  5. Kullanıcı istemini temel alan vektör benzerliği araması gerçekleştirmek için işlev oluşturma
  6. Azure OpenAI Tamamlamaları modelini kullanarak veriler üzerinde soru yanıtlama gerçekleştirme

HıZLı mühendislik ile RAG deseni, modele daha bağlamsal bilgiler sunarak yanıt kalitesini geliştirme amacına hizmet eder. RAG, modelin, ilgili dış kaynakları oluşturma sürecine ekleyerek daha geniş bir bilgi bankası uygulamasına olanak sağlayarak daha kapsamlı ve bilinçli yanıtlar elde eder. "Topraklama" LLM'leri hakkında daha fazla bilgi için bkz . TOPRAKLAMA LLM'leri. [Geri dön]

Tümleşik vektör veritabanı işlevlerimizi kullanarak verilerinize RAG uygulamanın birden çok yolu şunlardır:

Tümleşik vektör veritabanı işlevlerini uygulama

Aşağıdaki Azure Cosmos DB API'leri için tümleşik vektör veritabanı işlevleri uygulayabilirsiniz:

MongoDB için API

MongoDB için Azure Cosmos DB'de (sanal çekirdek mimarisi) yerel olarak tümleştirilmiş vektör veritabanını kullanın. Bu veritabanı, yüksek boyutlu vektör verilerini doğrudan diğer uygulama verileriyle birlikte depolamak, dizine almak ve aramak için verimli bir yol sunar. Bu yaklaşım, verilerinizi daha maliyetli alternatif vektör veritabanlarına geçirme gereksinimini ortadan kaldırır ve yapay zeka temelli uygulamalarınızın sorunsuz bir tümleştirmesini sağlar.

Kod örnekleri

PostgreSQL için API

PostgreSQL için Azure Cosmos DB'de yerel olarak tümleştirilmiş vektör veritabanını kullanın. Bu veritabanı, yüksek boyutlu vektör verilerini doğrudan diğer uygulama verileriyle birlikte depolamak, dizine eklemek ve aramak için verimli bir yol sunar. Bu yaklaşım, verilerinizi daha maliyetli alternatif vektör veritabanlarına geçirme gereksinimini ortadan kaldırır ve yapay zeka temelli uygulamalarınızın sorunsuz bir tümleştirmesini sağlar.

Kod örnekleri

NoSQL API

Not

NoSQL API'miz için en son düzey vektör dizinleme algoritmasının yerel tümleştirmesi Mayıs 2024'te Derleme sırasında duyurulacaktır. Lütfen bizi izlemeye devam edin.

NoSQL API'sindeki yerel olarak tümleştirilmiş vektör veritabanı geliştirme aşamasındadır. Bu arada, NoSQL için Azure Cosmos DB ve Azure AI Search ile RAG desenleri uygulayabilirsiniz. Bu yaklaşım, NoSQL API'sinde bulunan verilerinizin yapay zeka odaklı uygulamalarınızla güçlü bir şekilde tümleştirilmesini sağlar.

Kod örnekleri

Sonraki adım

Azure aboneliği olmadan 30 günlük Ücretsiz Deneme

Azure AI Avantajı ile 90 günlük Ücretsiz Deneme sürümü ve 6.000 ABD dolarına kadar aktarım hızı kredisi

Daha fazla vektör veritabanı çözümü

Vektör dizin oluşturma hizmetlerinin diyagramı.