From 6518c57bcc02be6b41259238c9044fdc69aa1152 Mon Sep 17 00:00:00 2001 From: Ce Gao Date: Tue, 5 Mar 2024 17:16:34 +0800 Subject: [PATCH] feat: Add doc for binary vector (#52) * feat: Add a separate doc for bvector Signed-off-by: Ce Gao * chore: Update Signed-off-by: Ce Gao --------- Signed-off-by: Ce Gao --- .vitepress/config.mts | 1 + src/usage/images/bvector.png | Bin 0 -> 70958 bytes src/usage/vector-types.md | 47 +++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/usage/images/bvector.png create mode 100644 src/usage/vector-types.md diff --git a/.vitepress/config.mts b/.vitepress/config.mts index 3d7eadc..9c16344 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -66,6 +66,7 @@ export default defineConfig({ items: [ { text: 'Indexing', link: '/usage/indexing' }, { text: 'Search', link: '/usage/search' }, + { text: 'Vector Types', link: '/usage/vector-types' }, { text: 'Monitoring', link: '/usage/monitoring' }, { text: 'Quantization', link: '/usage/quantization' }, { text: 'Compatibility', link: '/usage/compatibility' }, diff --git a/src/usage/images/bvector.png b/src/usage/images/bvector.png new file mode 100644 index 0000000000000000000000000000000000000000..84ef796c3a54df4da701ef25207a00bfe9de2d7e GIT binary patch literal 70958 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�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 z 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 e*2Rp&>A&iOk1G`DT^0Jn00f?{elF{r5}E*y6B` (`bvector_l2_ops`): squared Euclidean distance, defined as $\Sigma (x_i - y_i) ^ 2$. The Hamming distance is equivalent to the squared Euclidean distance for binary vectors. +- `<#>` (`bvector_dot_ops`): negative dot product, defined as $- \Sigma x_iy_i$. +- `<=>` (`bvector_cos_ops`): cosine distance, defined as $1 - \frac{\Sigma x_iy_i}{\sqrt{\Sigma x_i^2 \Sigma y_i^2}}$. +- `<~>` (`bvector_jaccard_ops`): Jaccard distance, defined as $1 - \frac{|X\cap Y|}{|X\cup Y|}$. + +```sql + +Index can be created on `bvector` type as well. + +```sql +CREATE INDEX bvector ON items USING vectors (embedding bvector_l2_ops); + +SELECT * FROM items ORDER BY embedding <-> '[1,0,1]' LIMIT 5; +``` + +### Performance + +The `bvector` type is optimized for storage and performance. It uses a bit-packed representation to store the binary vector. The distance calculation is also optimized for binary vectors. + +Here are some performance benchmarks for the `bvector` type. We use the [dbpedia-entities-openai3-text-embedding-3-large-3072-1M](https://huggingface.co/datasets/Qdrant/dbpedia-entities-openai3-text-embedding-3-large-3072-1M) dataset for the benchmark. The VM is n2-standard-8 (8 vCPUs, 32 GB memory) on Google Cloud. + +We upsert 1M binary vectors into the table and then run a KNN query for each embedding. It only takes about 600MB memory to index 1M binary vectors. + +![bvector](./images/bvector.png) + +We can see that the `bvector`'s accuracy is not as good as the `vector` type, but it exceeds 95% if we adopt adaptive retrieval.