[feat
] Add lightning-fast StaticEmbedding module based on model2vec
#2961
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello!
Pull Request overview
torch
EmbeddingBag
Details
This new StaticEmbedding module can be initialized:
model2vec
viafrom_distillation
model2vec
model viafrom_model2vec
Example
This script distills from
BAAI/bge-base-en-v1.5
into static embeddings, and then (very efficiently) embeds questions and answers from the natural-questions dataset. It then prints the mean similarity between positive pairs and all negative pairs. You can also update it to do the same for the all-nli dataset.The distillation process takes me ~1 second on CUDA, and encoding 10k queries and documents takes 0 seconds on CPU or CUDA.
cc @stephantul @Pringled