Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İpucu
En son vektör veritabanı ve RAG deseni uygulama örnekleri için Azure Cosmos DB Örnekleri Galerisi'ni 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) ve DiskANN'yi 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ında 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 ve arama 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:
- İçeriklerine, temalarına, yaklaşımlarına ve stillerine göre benzer görüntüleri, belgeleri ve şarkıları tanımlama
- Benzer ürünleri özelliklerine, özelliklerine ve kullanıcı gruplarına göre 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.
Vektör veritabanları, 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 ö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şın
- 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.
Uyarı
Ultra yüksek aktarım hızı vektör arama özellikleriyle mi ilgileniyorsunuz? Azure Cosmos DB, ultra yüksek aktarım hızına sahip eklemeler ve aramalarla eşleştirilmiş büyük vektör veri kümeleri için tasarlanmış gelişmiş vektör arama özellikleri geliştiriyor. Tahmin edilebilir, düşük gecikme süresi ve eşleşmeyen maliyet verimliliği ile saniyede milyonlarca sorgu (QPS) barındırabilir. Erken erişim fırsatları hakkında daha fazla bilgi edinmek ve bu özellikler kullanılabilir olduğunda bildirim almak için kaydolun.
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 içeren bir 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.
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.
Verilerinizin makine öğrenmesi modeliyle oluşturduğunuz vektör gösterimlerini (sayı listeleri) alarak çalışan bu sistem, Azure OpenAI Yerleştirmeleri veya Azure'da Hugging Face gibi bir yerleştirme API'si kullanır. Ardından veri vektörleri ile sorgu vektörünüzün arasındaki mesafeyi ölçer. Sorgu vektörünüze en yakın veri vektörleri, anlam bakımından en benzer olanlardır.
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.
İstemler ve istem mühendisliği
Bir istem, LLM'ye yönerge olarak hizmet edebilen veya LLM'nin geliştirebileceği bağlamsal veri olarak kullanılabilecek belirli bir metin veya bilgiyi ifade eder. İstem, soru, deyim ve hatta kod parçacığı gibi çeşitli formlar alabilir. İstemler şunlar için hizmet verebilir:
- LLM'ye talimatlar sağlayan yönergeler
- işlenmek üzere LLM'ye bilgi veren birincil içerik
- Modeli belirli bir göreve veya işleme göre koşula yardımcı olmak için örnekler
- LLM'nin çıkışını doğru yönde yönlendirme ipuçları
- LLM'nin çıkış oluşturmak için kullanabileceği ek bilgileri temsil eden destekleyici içerik
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. Sistem iletisi tasarımı.
Jetonlar
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]
Bilgi getirili artırılmış üretim
Bilgi Alma ile Güçlendirilmiş Üretim (RAG), bir vektör veritabanında depolanan temel veriler sağlayan vektör arama gibi bir bilgi alma sistemi ekleyerek ChatGPT, GPT-3.5 veya GPT-4 gibi büyük dil modellerinin (LLM) yeteneklerini 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:
- Azure Cosmos DB NoSQL Vektör Dizinini Etkinleştirme
- Veritabanı ve kapsayıcıyı, kapsayıcı vektör politikası ve vektör dizini ile kurma
- 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. Daha fazla bilgi için bkz LLM'leri Topraklama.
Tümleşik vektör veritabanı işlevlerini uygulama
Azure Cosmos DB ve çeşitli uyumluluk API'leri için tümleşik vektör veritabanı işlevleri uygulayabilirsiniz.
NoSQL API'si
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, 99,999% SLA (HA özellikli), coğrafi çoğaltma, sunucusuz aktarım hızına (RU) sorunsuz geçiş gibi NoSQL için Azure Cosmos DB'nin 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ı
- NoSQL için Azure Cosmos DB'de Vektör Arama
- Python - Notebook eğitimi
- 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
Kod örnekleri
- Python Not Defteri - LangChain ile vektör veritabanı tümleştirmesi öğreticisi
- Python Defteri - LangChain ile LLM Önbelleğe Alma entegrasyonu eğitimi
- Python - LlamaIndex tümleştirmesi
- Python - Anlam Çekirdeği bellek tümleştirmesi
- Python Notebook - 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.