このプロジェクトについて
dve(dve vector engine)は、Appleデバイス上でローカルにベクトル埋め込みを作成・検索するためのライブラリです。Zigで構築されており、実験的なSwiftバインディングも利用可能です。プロジェクトは初期段階であり、活発に開発中であると説明されており、GitHubでのバグ報告、問題提起、プルリクエストを歓迎しています。
使用方法は、ベクトルデータベースを保存するディレクトリを開き、モデルを選択し、テキストを埋め込んで検索することに焦点を当てています。Zigの例では、std.fs.cwd().makeOpenPathでディレクトリを作成し、dve.VectorEngine(.mpnet_embedding)でモデルを選択し、アロケータとディレクトリでエンジンを初期化します。テキストエントリはembedTextで追加され、キーがエントリ(通常はファイルパス)を識別します。検索はクエリ文字列と結果バッファを受け取り、類似度順に並べた結果を返します。例では、人工知能に関するクエリが「doc1」というキーのエントリと一致することを示しています。READMEは、ZigとSwiftの完全な動作デモについてはexamplesディレクトリを、インストール、利用可能なモデルオプションとトレードオフ、完全な使用法の詳細についてはUSAGE.mdを参照するよう指示しています。
述べられている動機は、ベクトル検索はアプリに役立つが、オンデバイス実装は見つけにくいということです。開発者は通常、コストとサードパーティ依存関係が追加されるクラウドAPIか、Hugging Face Transformersのような重いオールインワンフレームワークのどちらかを選択します。READMEは、MLフレームワークが圧倒的にLinuxサーバーを優先し、CoreMLのドキュメントが不十分で、クロスプラットフォームライブラリがmacOSやiOSアプリにきれいに統合されることがほとんどないAppleプラットフォームでは、これが特に深刻であると主張しています。dveは、移植性を中核的な設計目標としながら、Appleから始めてそのギャップを埋めることを目指しています。
プロジェクトは3つの中核原則を挙げています:移植可能(少ないライブラリで任意のプラットフォームで簡単に使用できること)、シンプル(シンプルだが設定可能なインターフェースと適切なデフォルト)、ローカル(高性能でネットワーク呼び出しを一切行わないこと)です。
ロードマップには、Linuxサポートの追加、Swiftバインディングの安定化、C/C++バインディングの安定化、iOSサポート、マルチモーダル埋め込みサポート、テキストドキュメント内のリンクをダウンロードして埋め込む機能、mpnetとApple NL以外の複数モデルタイプのサポート、単一プロセス内での複数データベースインスタンスのサポートが含まれています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.