Vector Protocol
we-trust-vector is a dedicated protocol extension designed for the AI era, specifically for handling the storage and retrieval of high-dimensional vectors (Vector Search).
1. Protocol Features
Unlike traditional KV protocols, the Vector protocol supports the following at the message level:
- Dimension Definition: Specify vector dimensions (e.g., 768, 1536) during write operations.
- Distance Metrics: Supports specifying
L2(Euclidean distance),Cosine(Cosine similarity), orIP(Inner Product) in query messages. - Top-K Queries: A dedicated instruction set for quickly returning the K most similar results.
2. Data Encoding
Vector data is transmitted using a compact binary floating-point array format:
f32Arrays: Standard precision.f16/Int8Quantization: Supports data quantization and compression at the protocol layer, saving 50% - 75% of network bandwidth.
3. Search Operator Mapping
Vector instructions map directly to YYKV's underlying vector indices (such as HNSW or IVF-Flat):
MessageType::Querycarries the vector payload.- Storage nodes utilize the vector acceleration module in
yykv-computefor parallel retrieval.
4. Use Cases
- RAG (Retrieval-Augmented Generation): Provides real-time, efficient knowledge base retrieval for Large Language Models.
- Image/Video Search: Stores feature vectors and enables fast reverse image/video search.
- Recommendation Systems: Real-time personalized recommendations based on user behavior vectors.
Programming Interface (Pseudo-code)
// Pseudo-code: Initiating a vector search
let query_vector = vec!;
let request = new
.vector
.metric
.limit;
let results = conn.vector_search.await?;