counter free hit invisible

Vektör Veritabanları (Vector Databases)

2000 yılından beri aralıksız İlişkisel Veritabanı (RDMBS) kullanan bir yazılım geliştirici olarak Vector Veritabanları benim için çok yabancı bir konu. Ama gelişimi oldukça eskilere dayanıyor(muş). 2000 ‘li yıllar öncesinde vektör tabanlı verilerin yönetimi ve benzerlik aramaları için vektör veritabanları yerine veri yapıları kullanılıyor (k-d ağaçları (k-d trees), R-ağaçları (R-trees) ve LSH (Locality-Sensitive Hashing)). Bunlar vektör verilerinin yönetimi ve hızlı aramaları için yapı taşlarını oluşturuyor. 2000 ‘lerden sonra bazı akademik araştırmalar ve bazı ticari uygulamalar yüksek boyutlu verilerle başa çıkmak için yeni algoritmalar ve yeni veri yapıları geliştiriyorlar. 2010 yılından sonra Makine öğrenimi (ML) ve Yapay Zeka (AI) kullanımının ihtiyaçlarını karşılamak için çeşitli kütüphaneler geliştiriliyor. (2014 Annoy Spotify, 2017 FAISS Facebook). 2019 Yılında Milvus veritabanı Zillis firması tarafından açık kaynak olarak yayınlanıyor.

Peki neden Vektör Veritabanları Kullanılıyor?

Yüksek Boyutlu Vektörleri Saklama: Vektör veritabanları, çok büyük boyuta boyuta sahip vektörleri verimli bir şekilde saklayabilir ve yönetebilir.

Benzerlik Arama: Bu Veritabanları vektörler arasındaki benzerlikleri bulmak için optimize edilmiştir. Yakın komşu araması (nearest neighbor search) gibi işlemleri hızlı ve etkili bir şekilde gerçekleştirmelerini sağlar.

Yüksek Performans: Büyük veri kümelerinde hızlı arama ve veri erişimi sağlarlar. Bu, büyük ölçekli makine öğrenimi modelleri ve yapay zeka uygulamaları için çok öenmlidir.

Çeşitli Veri Türlerini Destekleme: Görüntüler, metinler, sesler ve diğer veri türleri, genellikle vektörler olarak temsil edilebilir ve bu bunlar vektör veritabanlarında saklanabilir.

Aşağıda yaygın kullanılan vektör veritabanları listesini paylaşıyorum. Kullandıkça ya da bilgi edindikçe bu veritabanı sistemlerinin açıklamalarını da yazacağım.

Chroma

Chroma benim bu yazıyı yazmama sebep olan vektör veritabanı. Local LLM ile Python kullanarak bir RAG uygulaması yazarken karşıma çıktı (Bu uygulama bir sonraki yazının konusu).

Chroma, büyük dil modelleri (LLM’ler) kullanan uygulamaların geliştirilmesini kolaylaştırmak için tasarlanmış açık kaynaklı, yapay zekaya özgü bir vektör veritabanıdır. Verilerin vektör gömülmelerini (Embeddings) depolamak, gömmek ve aramak için araçlar sağlar, bu da onu özellikle yapay zeka odaklı müşteri destek temsilcileri ve belge arama sistemleri gibi anlamsal arama ve erişim gerektiren uygulamalar için kullanışlı hale getirir.

Chroma’nın Temel Özellikleri:
Gömüler (Embeddings) ve Meta Veri Depolama: Chroma, vektör katıştırmalarının meta verileriyle birlikte depolanmasına olanak tanıyarak anlamsal benzerlik ve meta veri kriterlerine dayalı olarak verilerin hassas bir şekilde aranmasını ve filtrelenmesini sağlar.

Entegrasyon: LangChain, LlamaIndex ve OpenAI gibi popüler çerçeveler ve kütüphanelerle sorunsuz bir şekilde entegre olur.

Basitlik ve Performans: Chroma kullanım kolaylığına öncelik verirken, gömme depolama ve erişimde yüksek performans sunar.

Çoklu İstemci Desteği: Python, JavaScript, Ruby, Java, Go, C#, Rust, Elixir, Dart ve PHP dahil olmak üzere bir çok programlama dili için istemci SDK’ları sunarak geniş uyumluluk ve entegrasyon kolaylığı sağlar.

Pinecone https://www.pinecone.io/
Milvus https://milvus.io/
Weaviate https://github.com/weaviate/weaviate
Deep Lake https://github.com/activeloopai/deeplake
Qdrant https://github.com/qdrant/qdrant
Elasticsearch https://www.elastic.co/elasticsearch/
Vespa https://vespa.ai/
Vald https://vald.vdaas.org/
Scann https://github.com/google-research/google-research/tree/master/scann
Pgvector https://github.com/pgvector/pgvector
Faiss https://github.com/facebookresearch/faiss
ClickHouse https://clickhouse.com/
OpenSearch https://opensearch.org/
Apache Cassandra https://cassandra.apache.org/

Bonus : Konular ilerledikçe bir Yapay Zeka Sözlüğü yazma ihtiyacı farkettim buradan ulaşabilirsiniz.

Yorum yapın