Deskripsi
ITZMA adalah pustaka basis data vektor berbasis Rust yang dirancang untuk pencarian vektor yang efisien langsung pada penyimpanan objek. Ini menyediakan solusi yang dapat diskalakan, tahan lama, dan berbasis cloud untuk aplikasi AI yang memerlukan data mereka dapat diakses dengan mudah tanpa beban server basis data perantara. Dengan menyematkan ITZMA dalam proses aplikasi Anda, Anda dapat berinteraksi langsung dengan penyimpanan objek seperti S3, GCS, Azure, disk lokal, atau bahkan penyimpanan dalam memori, memperlakukannya sebagai sumber kebenaran yang tahan lama untuk data vektor Anda.
Baca Selengkapnya
Arsitektur inti ITZMA dirancang untuk lingkungan cloud, memungkinkan beberapa proses untuk membaca dan menulis ke bucket penyimpanan objek yang sama secara bersamaan tanpa memerlukan koordinator, kunci, atau pemimpin. Ini dicapai dengan memanfaatkan fungsi bawaan `put-if-absent` dan `conditional update` dari penyimpanan objek, memastikan kebenaran dan konsistensi data. Operasi penulisan dikonfirmasi di bucket sebelum panggilan kembali, menjamin ketahanan.
ITZMA mendukung pencarian vektor padat dan jarang. Vektor padat dapat diindeks menggunakan algoritma HNSW atau SQ8, dipilih per segmen, dengan kandidat yang diurutkan ulang pada vektor yang tepat untuk memastikan hasil yang akurat. Vektor jarang, yang direpresentasikan sebagai pasangan (id istilah, bobot), disimpan bersama dengan vektor padat, memungkinkan kueri jarang yang tepat dengan indeks terbalik opsional. Selain itu, ini menawarkan kemampuan pencarian terfilter, memungkinkan pengguna untuk mendefinisikan atribut bertipe (Bool, Number, Text, TextSet, NumberSet) saat membuat namespace dan menerapkan filter secara independen atau untuk mempersempit kueri vektor.
Fitur utama termasuk penulisan batch atomik, dukungan untuk berbagai backend penyimpanan objek, dan strategi pengindeksan yang fleksibel yang dapat beradaptasi dengan pola akses yang berbeda (misalnya, HNSW untuk pembacaan yang di-cache, SQ8 untuk pembacaan yang tidak di-cache). Pustaka ini juga menyediakan binding Python di atas inti Rust yang aman untuk memori, membuatnya dapat diakses oleh komunitas pengembang yang lebih luas. Tugas pemeliharaan seperti kompaksi dan pengindeksan dilakukan secara eksplisit, memberikan kontrol penuh kepada pengembang atas manajemen data mereka. ITZMA dibangun oleh Sergio Marcial, seorang insinyur perangkat lunak utama dengan pengalaman luas dalam sistem terdistribusi, bertujuan untuk memberikan solusi pencarian vektor yang tepat dan tahan lama.
- KategoriBasis Data Vektor & Pengambilan
- Model HargaOpen source
- PenerapanLibrary
- PlatformWeb
Fitur Inti ITZMA
Pencarian vektor pada penyimpanan objek
Pustaka Rust dengan binding Python
Penyimpanan data yang dapat diskalakan dan tahan lama
Arsitektur berbasis cloud tanpa server
Mendukung pencarian vektor padat (HNSW, SQ8)
Mendukung pencarian vektor jarang dengan indeks terbalik
Pencarian terfilter pada atribut bertipe
Penulisan bersamaan dari beberapa proses
Upsert dan hapus batch atomik
Kompatibel dengan S3, GCS, Azure, disk lokal, memori
Kompaksi dan pengindeksan eksplisit
Cache baca RAM dan NVMe
Laporan kesehatan baca-saja
Input NumPy dan Arrow dalam Python
Cara menggunakan ITZMA?
Instal ITZMA: Tambahkan crate Rust dari crates.io atau instal paket Python dari PyPI.
Buat namespace: Definisikan namespace dengan dimensi tetap, metrik (L2, kosinus, produk titik), dan atribut bertipe.
Tulis dokumen: Kirim upsert dan hapus batch ke namespace, yang disimpan di bucket objek.
Kueri data: Lakukan kueri vektor padat atau jarang, dengan filter opsional, untuk mengambil hasil terdekat.
Kelola pemeliharaan: Panggil kompaksi, pengumpulan sampah, dan pengindeksan secara eksplisit sesuai kebutuhan untuk kinerja optimal.
Kasus Penggunaan ITZMA
- Membangun Aplikasi AI
- Penyimpanan Data Berbasis Cloud
- Pengambilan Waktu Nyata
- Pencarian Vektor Padat dan Jarang
- Kueri Vektor Terfilter
- Manajemen Data Terdistribusi
- Pengembangan Rust dan Python



