説明
ITZMAは、オブジェクトストレージ上で直接効率的なベクター検索を行うために設計されたRustベースのベクターデータベースライブラリです。中間データベースサーバーのオーバーヘッドなしにデータに容易にアクセスできることが求められるAIアプリケーション向けに、スケーラブルで耐久性があり、クラウドネイティブなソリューションを提供します。ITZMAをアプリケーションプロセス内に埋め込むことで、S3、GCS、Azure、ローカルディスク、またはインメモリストアのようなオブジェクトストレージと直接対話し、ベクターデータの耐久性のある真実のソースとして扱うことができます。
続きを読む
ITZMAのコアアーキテクチャはクラウド環境向けに設計されており、複数のプロセスが同じオブジェクトストレージバケットに同時に読み書きできるようになっています。これにはコーディネーター、ロック、リーダーを必要とせず、オブジェクトストアの固有の「put-if-absent」および「conditional update」機能を活用することで、データの正確性と一貫性を確保しています。書き込み操作は、呼び出しが戻る前にバケット内で確認され、耐久性が保証されます。
ITZMAは、密なベクター検索と疎なベクター検索の両方をサポートしています。密なベクターは、セグメントごとに選択されたHNSWまたはSQ8アルゴリズムを使用してインデックス化され、正確な結果を保証するために正確なベクターで候補が再ランク付けされます。疎なベクターは(タームID、重み)ペアとして表され、密なベクターと一緒に保存され、オプションの逆インデックスを使用して正確な疎なクエリを可能にします。さらに、フィルタリング検索機能を提供し、ユーザーが名前空間を作成する際に型付き属性(Bool、Number、Text、TextSet、NumberSet)を定義し、フィルターを独立して適用したり、ベクタークエリを絞り込んだりできます。
主な機能には、原子的なバッチ書き込み、さまざまなオブジェクトストレージバックエンドのサポート、異なるアクセスパターンに適応できる柔軟なインデックス戦略(例:キャッシュされた読み取り用のHNSW、キャッシュされていない読み取り用のSQ8)が含まれます。このライブラリは、メモリ安全なRustコアの上にPythonバインディングを提供し、より広範な開発者コミュニティにアクセス可能にしています。コンパクションやインデックス作成などのメンテナンスタスクは明示的であり、開発者にデータ管理の完全な制御を与えます。ITZMAは、分散システムに関する豊富な経験を持つ主任ソフトウェアエンジニアのセルヒオ・マルシアルによって構築され、正確で耐久性のあるベクター検索ソリューションを提供することを目指しています。
- カテゴリーベクトルデータベースと検索
- 料金モデルオープンソース
- デプロイLibrary
- プラットフォームWeb
ITZMAの主要機能
オブジェクトストレージ上でのベクター検索
Pythonバインディングを持つRustライブラリ
スケーラブルで耐久性のあるデータストレージ
サーバー不要のクラウドネイティブアーキテクチャ
密なベクター検索をサポート(HNSW、SQ8)
逆インデックスを持つ疎なベクター検索をサポート
型付き属性に基づくフィルタリング検索
複数プロセスからの同時書き込み
原子的なバッチアップサートと削除
S3、GCS、Azure、ローカルディスク、メモリと互換性
明示的なコンパクションとインデックス作成
RAMおよびNVMe読み取りキャッシュ
読み取り専用のヘルスレポート
PythonでのNumPyおよびArrow入力
ITZMAの使い方は?
ITZMAをインストール: crates.ioからRustクレートを追加するか、PyPIからPythonパッケージをインストールします。
名前空間を作成: 固定次元、メトリック(L2、コサイン、ドット積)、および型付き属性を定義して名前空間を作成します。
ドキュメントを書く: バッチアップサートと削除を名前空間に送信し、オブジェクトバケットに保存されます。
データをクエリ: 密または疎なベクタークエリを実行し、オプションのフィルターを使用して最も近いヒットを取得します。
メンテナンスを管理: 最適なパフォーマンスのために、必要に応じて明示的にコンパクション、ガーベジコレクション、およびインデックス作成を呼び出します。
ITZMAの使用例
- AIアプリケーションの構築
- クラウドネイティブデータストレージ
- リアルタイム取得
- 密なベクター検索と疎なベクター検索
- フィルタリングベクタークエリ
- 分散データ管理
- RustとPythonの開発



