Aracılığıyla paylaş


.NET + AI için vektör veritabanları

Vektör veritabanları, vektör eklemelerini depolamak ve yönetmek için tasarlanmıştır. Eklemeler, anlamsal anlamı koruyan sayısal olmayan verilerin sayısal gösterimleridir. Sözcükler, belgeler, görüntüler, ses ve diğer veri türlerinin tümü vektörleştirilebilir. Bir yapay zeka modelinin metin özetleme, bağlamsal olarak ilgili verileri bulma veya metin açıklamalarından görüntü oluşturma gibi karşılaştırmalar ve dönüştürmeler yapabilmesi için girişlerin anlamını anlamasına yardımcı olmak için eklemeleri kullanabilirsiniz.

Ö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ımlayın.
  • Benzer ürünleri özelliklerine, özelliklerine ve kullanıcı gruplarına göre tanımlayın.
  • Kullanıcı tercihlerine göre içerik, ürün veya hizmet önerin.
  • Karmaşık gereksinimleri karşılamak için büyük bir seçenek havuzundan en iyi olası seçenekleri belirleyin.
  • Baskın veya normal desenlerden farklı olan veri anomalilerini veya sahte etkinlikleri tanımlayın.

Vektör veritabanları, bir özellik alanındaki tam eşleşmeler yerine veri özelliklerine göre benzer öğeleri bulmak için vektör arama özellikleri sağlar. Vektör araması, Azure OpenAI ekleme modelleri gibi bir yapay zeka ekleme modeli kullanarak oluşturduğunuz verilerinizin vektör gösterimlerini analiz ederek çalışır. Arama işlemi, 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.

MongoDB için Azure Cosmos DB sanal çekirdeği gibi bazı hizmetler verileriniz için yerel vektör arama özellikleri sağlar. Diğer veritabanları, vektör arama özellikleri sağlamak için verilerinizi tarayabilen ve dizine alabilen Azure AI Search gibi bir hizmet kullanılarak depolanan verilerin dizinini oluşturarak vektör araması ile geliştirilebilir.

.NET ve OpenAI ile vektör arama iş akışları

Vektör veritabanları ve bunların arama özellikleri, Azure OpenAI ile RAG deseni iş akışlarında özellikle kullanışlıdır. Bu desen, verileriniz hakkında daha fazla görsel açıdan zengin bilgiyle yapay zeka modelinizi geliştirmenize veya geliştirmenize olanak tanır. Vektör veritabanlarını kullanan yaygın bir yapay zeka iş akışı aşağıdaki adımları içerebilir:

  1. OpenAI ekleme modeli kullanarak verileriniz için eklemeler oluşturun.
  2. Eklemeleri bir vektör veritabanında veya arama hizmetinde depolayın ve dizinleyin.
  3. Uygulamanızdaki kullanıcı istemlerini eklemelere dönüştürün.
  4. Kullanıcı istemi ekleme işlemini veritabanınızı ekleme işlemleriyle karşılaştırarak verileriniz arasında bir vektör araması çalıştırın.
  5. Vektör arama sonuçlarından kullanıcı dostu tamamlama derlemek için GPT-35 veya GPT-4 gibi bir dil modeli kullanın.

Bu akışın uygulamalı bir örneği için .NET uygulamasında vektör araması kullanarak RAG ile Azure OpenAI uygulama öğreticisini ziyaret edin.

RAG deseninin diğer avantajları şunlardır:

  • Yapay zeka modellerinden kullanıcı istemlerine bağlamsal olarak uygun ve doğru yanıtlar oluşturun.
  • LLM belirteçleri sınırlarının üstesinden gelin; ağır kaldırma işlemi veritabanı vektör aramasıyla yapılır.
  • Güncelleştirilmiş verilerde sık sık yapılan ince ayarlamalardan kaynaklanan maliyetleri azaltın.

Kullanılabilir vektör veritabanı çözümleri

Yapay zeka uygulamaları, ilgililiği geliştirmek ve özelleştirilmiş işlevsellik sağlamak için genellikle veri vektör veritabanlarını ve hizmetlerini kullanır. Bu hizmetlerin çoğu .NET için yerel bir SDK sağlarken, diğerleri özel kod aracılığıyla bağlanabileceğiniz bir REST hizmeti sunar. Anlam Çekirdeği, her SDK'nın öğrenilmesine gerek kalmadan farklı vektör depolarını kullanmanızı sağlayan genişletilebilir bir bileşen modeli sağlar.

Semantik Çekirdek, aşağıdaki vektör veritabanları ve hizmetleri için bağlayıcılar sağlar:

Vektör hizmeti Semantik Çekirdek bağlayıcısı .NET SDK
Azure Yapay Zeka Arama Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
NoSQL için Azure Cosmos DB Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
MongoDB için Azure Cosmos DB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL Sunucusu Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Azure SQL Veritabanı Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Chroma Microsoft.SemanticKernel.Connectors.Chroma NA
DuckDB Microsoft.SemanticKernel.Connectors.DuckDB DuckDB.NET.Data.Full
Milvus Microsoft.SemanticKernel.Connectors.Milvus Milvus.Client
MongoDB Atlas Vektör Arama Microsoft.SemanticKernel.Connectors.MongoDB MongoDb.Driver
Pinecone Microsoft.SemanticKernel.Connectors.Pinecone REST API
Postgres Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Qdrant Microsoft.SemanticKernel.Connectors.Qdrant Qdrant.Client
Redis Microsoft.SemanticKernel.Connectors.Redis StackExchange.Redis
Ağırlaştır Microsoft.SemanticKernel.Connectors.Weaviate REST API

.NET SDK'sını ve API desteğini bulmak için ilgili her hizmetin belgelerini ziyaret edin.