Vektör veritabanı
İpucu
En son Vektör Veritabanı ve RAG Deseni Uygulama Örnekleri için yeni Örnekler Galerimizi ziyaret edin
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. Şema esnekliğine ve tümleşik vektör veritabanına sahip yüksek performanslı bir veritabanı özellikle yapay zeka aracıları için idealdir.
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.
Vektör veritabanıyla ilgili kavramlar
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 araması
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:
- Azure Cosmos DB NoSQL Vektör Dizini önizlemesine kaydolma
- Kapsayıcı vektör ilkesi ve vektör dizini ile bir veritabanı ve kapsayıcı ayarlayın.
- NoSQL için Azure Cosmos DB veritabanı ve kapsayıcısına veri ekleme
- Azure OpenAI Embeddings kullanarak bir veri özelliğinden ekleme oluşturma
- NoSQL için Azure Cosmos DB'yi bağlayın.
- Ekleme özellikleri üzerinde vektör dizini oluşturma
- Kullanıcı istemini temel alan vektör benzerliği araması gerçekleştirmek için işlev oluşturma
- 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:
NoSQL API
NoSQL için Azure Cosmos DB, dünyanın ilk sunucusuz NoSQL vektör veritabanıdır. Microsoft Research tarafından geliştirilen yüksek performanslı vektör dizin algoritmaları paketi olan DiskANN'yi temel alan bir vektör dizini oluşturabileceğiniz tümleşik vektör veritabanı özellikleriyle vektörlerinizi ve verilerinizi NoSQL için Azure Cosmos DB'de birlikte depolayın.
DiskANN, Azure Cosmos DB'nin NoSQL için %99,999 SLA (HA özellikli), coğrafi çoğaltma, sunucusuz aktarım hızına (RU) sorunsuz geçiş gibi tüm avantajlarından yararlanırken her ölçekte yüksek oranda doğru, düşük gecikme süreli sorgular gerçekleştirmenizi sağlar.
Bağlantılar ve örnekler
- ChatGPT'nin arkasındaki veritabanı nedir? - Microsoft Mechanics
- NoSQL için Azure Cosmos DB'de vektör dizini oluşturma
- VectorDistance sistem işlevi NoSQL sorguları
- Azure Cosmos DB NoSQL'de vektör veritabanı özelliklerini ayarlama
- Python - Not defteri öğreticisi
- C# - AKS ve Anlam Çekirdeği ile Kendi Copilot Complete Çözüm Hızlandırıcınızı Oluşturma
- C# - Kendi Copilot Örnek Uygulamanızı ve Uygulamalı Laboratuvarınızı Oluşturun
- Python - Film Sohbet Botu
MongoDB için Azure Cosmos DB
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
- Semantik Çekirdek ile C# dilinde MongoDB için Azure Cosmos DB için Kendi Copilot'ınızı Oluşturma
- .NET öğreticisi - tarif sohbet botu
- C# RAG deseni - OpenAI Hizmetlerini Cosmos ile Tümleştirme
- Python RAG deseni - Azure ürün sohbet botu
- Python Not Defteri - LangChain ile vektör veritabanı tümleştirmesi öğreticisi
- Python Not Defteri - LangChain ile LLM Önbelleğe Alma tümleştirmesi öğreticisi
- Python - LlamaIndex tümleştirmesi
- Python - Anlam Çekirdeği bellek tümleştirmesi
- Python Not Defteri - Film Sohbet Botu
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 örneği
Vektör veritabanı çözümleri
İlgili içerik
- 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