Skip to main content

Weaviate 1.24.0

Weaviate 1.24 is here!

Here are the release ⭐️highlights⭐️!

Weaviate 1.24

Named vectors

Named vectors

Named vectors make your collections richer and more versatile.

Starting in 1.24, collections can have multiple named vectors. Each vector is independent. Each vector has its own index, its own compression, and its own vectorizer. This means you can create vectors for properties, use different vectorization models, and apply different metrics to fine tune interactions with your data.

In earlier versions, objects in your collections are limited to one vector. Now, you can vectorize meta data like titles and descriptions so that it is available for vector search. You can group things that are logically related, like a music video and a lyric sheet, in the same object. You don't have to create cross-references or manage shared metadata. A single object in a collection can have multiple named vectors.

You don't have to use multiple vectors in your collections, but if you do, adjust your queries to specify which vector you want to use.

For details, see Multiple vectors.

HNSW and binary quantization

HNSW and binary quantization

Weaviate improves binary quantization (BQ) in 1.24 to be faster, more memory efficient, and more cost-effective. Use BQ vector compression with HNSW indexes to dramatically improve your query speed.

BQ compresses vector representations while preserving essential information. Uncompressed, Weaviate uses a float32 to store each dimension. BQ uses one bit per dimension to encode Vector directionality. This means BQ compresses vectors from 32 bits per dimension to 1 bit per dimension - a savings of 32 times the space. This compression significantly reduces storage requirements.

Comparing BQ compressed vectors is fast. To calculate the distance between to vectors, compare their dimensional agreement. The bitwise comparison ensures optimal resource utilization without compromising accuracy. For instance, consider two vectors encoded as [1,1,0,1,0,1,0,1] and [1,1,0,0,1,1,0,1]. Their distance is 2.

Bitwise comparison details

Compare each value in the first vector one with the corresponding value in the second vector. If they are the same, score 0. If they are different, score 1. The distance between the vectors is the sum of the bitwise comparisons.

[1,1,0,1,0,1,0,1]
[1,1,0,0,1,1,0,1]
-----------------
0+0+0+1+1+0+0+0 = 2

Efficient BQ processing compliments our HNSW index to enable mind dizzyingly fast vector search and throughput!

Let’s talk numbers! You might know from our v1.23 release that combining a flat index with BQ enables real-time search capabilities. Even so, a brute force a search on 1 million vectors, where each vector has 768 dimensions, takes about 23 milliseconds with a flat index. When you use HNSW and BQ, even with vectors six times as big (4608 dimensions), the same brute force search only takes about 90 milliseconds.

A flat index combined with BQ is fast, but compare a HNSW index combined with BQ. Together HNSW and BQ enable vector search capabilities that reach nearly 10,000 queries per second at 85% recall!

Keep an eye out for an upcoming blog post with the nitty-gritty details of how HNSW+BQ compares to other index and compression algorithms.

Simplified Docker configuration

Starting in v1.24, there is a new Docker image that runs using common, default values. This image lets you start development and exploration quickly. Just enter a simple command line:

docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:1.24.1

Alternatively, you can edit the docker-compose.yml file to customize your instance.

For details, see Docker configuration

Backend improvements

Weaviate is a robust platform that handles many kinds of workloads. This release brings major improvements for imports, updates, and deletions. You don't have to do anything to enable these fixes, but you may notice improved upload times, especially if you make frequent changes to your collections.

Python client

The new Weaviate Python client v4 is available. The latest release adds support for named vectors and brings numerous other updates. If you have feedback on the new client, please let us know.

Summary

Enjoy the new features and improvements in Weaviate 1.24. This release is available as a docker image and on WCD. Try it out in a free, WCD sandbox, or download a copy and try it out locally.

Thanks for reading, see you next time 👋!