annoy VS bootcamp

Compare annoy vs bootcamp and see what are their differences.

annoy

Approximate Nearest Neighbors in C++/Python optimized for memory usage and loading/saving to disk (by spotify)

bootcamp

Dealing with all unstructured data, such as reverse image search, audio search, molecular search, video analysis, question and answer systems, NLP, etc. (by milvus-io)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
annoy bootcamp
40 24
12,692 1,619
1.5% 3.6%
5.3 9.1
3 months ago 3 days ago
C++ HTML
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

annoy

Posts with mentions or reviews of annoy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-05.
  • Do we think about vector dbs wrong?
    7 projects | news.ycombinator.com | 5 Sep 2023
    The focus on the top 10 in vector search is a product of wanting to prove value over keyword search. Keyword search is going to miss some conceptual matches. You can try to work around that with tokenization and complex queries with all variations but it's not easy.

    Vector search isn't all that new a concept. For example, the annoy library (https://github.com/spotify/annoy) has been around since 2014. It was one of the first open source approximate nearest neighbor libraries. Recommendations have always been a good use case for vector similarity.

    Recommendations are a natural extension of search and transformers models made building the vectors for natural language possible. To prove the worth of vector search over keyword search, the focus was always on showing how the top N matches include results not possible with keyword search.

    In 2023, there has been a shift towards acknowledging keyword search also has value and that a combination of vector + keyword search (aka hybrid search) operates in the sweet spot. Once again this is validated through the same benchmarks which focus on the top 10.

    On top of all this, there is also the reality that the vector database space is very crowded and some want to use their performance benchmarks for marketing.

    Disclaimer: I am the author of txtai (https://github.com/neuml/txtai), an open source embeddings database

  • Vector Databases 101
    3 projects | /r/datascience | 25 Jun 2023
    If you want to go larger you could still use some simple setup in conjunction with faiss, annoy or hnsw.
  • I'm an undergraduate data science intern and trying to run kmodes clustering. Did this elbow method to figure out how many clusters to use, but I don't really see an "elbow". Tips on number of clusters?
    2 projects | /r/datascience | 21 Jun 2023
  • Calculating document similarity in a special domain
    1 project | /r/LanguageTechnology | 1 Jun 2023
    I then use annoy to compare them. Annoy can use different measures for distance, like cosine, euclidean and more
  • Can Parquet file format index string columns?
    1 project | /r/dataengineering | 27 May 2023
    Yes you can do this for equality predicates if your row groups are sorted . This blog post (that I didn't write) might add more color. You can't do this for any kind of text searching. If you need to do this with file based storage I'd recommend using a vector based text search and utilize a ANN index library like Annoy.
  • [D]: Best nearest neighbour search for high dimensions
    4 projects | /r/MachineLearning | 17 May 2023
    If you need large scale (1000+ dimension, millions+ source points, >1000 queries per second) and accept imperfect results / approximate nearest neighbors, then other people have already mentioned some of the best libraries (FAISS, Annoy).
  • Billion-Scale Approximate Nearest Neighbor Search [pdf]
    1 project | news.ycombinator.com | 6 May 2023
  • [R] Unlimiformer: Long-Range Transformers with Unlimited Length Input
    1 project | /r/MachineLearning | 5 May 2023
    Would be possible to further speed up the process with using something like ANNOY? https://github.com/spotify/annoy
  • Faiss: A library for efficient similarity search
    14 projects | news.ycombinator.com | 30 Mar 2023
    I like Faiss but I tried Spotify's annoy[1] for a recent project and was pretty impressed.

    Since lots of people don't seem to understand how useful these embedding libraries are here's an example. I built a thing that indexes bouldering and climbing competition videos, then builds an embedding of the climber's body position per frame. I then can automatically match different climbers on the same problem.

    It works pretty well. Since the body positions are 3D it works reasonably well across camera angles.

    The biggest problem is getting the embedding right. I simplified it a lot above because I actually need to embed the problem shape itself because otherwise it matches too well: you get frames of people in identical positions but on different problems!

    [1] https://github.com/spotify/annoy

  • How to find "k" nearest embeddings in a space with a very large number of N embeddings (efficiently)?
    3 projects | /r/MLQuestions | 23 Feb 2023
    If you just want quick in memory search then pynndescent is a decent option: it's easy to install, and easy to get running. Another good option is Annoy; it's just as easy to install and get running with python, but it is a little less performant if you want to do a lot of queries, or get a knn-graph quickly.

bootcamp

Posts with mentions or reviews of bootcamp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-01.
  • FLaNK AI - 01 April 2024
    31 projects | dev.to | 1 Apr 2024
  • FLaNK Stack Weekly 22 January 2024
    37 projects | dev.to | 22 Jan 2024
  • Milvus Adventures Jan 5, 2023
    1 project | dev.to | 5 Jan 2024
    Metadata Filtering with Zilliz Cloud Pipelines This tutorial discuss scalar or metadata filtering and how you can perform metadata filtering in Zilliz Cloud. This blog continues on the previous blog on Getting started with RAG in just 5 minutes. You can find its code in this notebook and scroll down to Cell #27.
  • Build a search engine, not a vector DB
    3 projects | news.ycombinator.com | 20 Dec 2023
    Partially agree.

    Vector DBs are critical components in retrieval systems. What most applications need are retrieval systems, rather than building blocks of retrieval systems. That doesn't mean the building blocks are not important.

    As someone working on vector DB, I find many users struggling in building their own retrieval systems with building blocks such as embedding service (openai,cohere), logic orchestration framework (langchain/llamaindex) and vector databases, some even with reranker models. Putting them together is not as easy as it looks. A fairly changeling system work. Letting alone quality tuning and devops.

    The struggle is no surprise to me, as tech companies who are experts on this (google,meta) all have dedicated teams working on retrieval system alone, making tons of optimizations and develop a whole feedback loop of evaluating and improving the quality. Most developers don't get access to such resource.

    No one size fits all. I think there shall exist a service that democratize AI-powered retrieval, in simple words the know-how of using embedding+vectordb and a bunch of tricks to achieve SOTA retrieval quality.

    With this idea I built a Retrieval-as-a-service solution, and here is its demo:

    https://github.com/milvus-io/bootcamp/blob/master/bootcamp/R...

    Curious to learn your thoughts.

  • Vector Database in a Jupyter Notebook
    1 project | news.ycombinator.com | 6 Jun 2023
    Although it's common to use vector databases in conjunction with LLMs, I like to talk about vector databases in the context of unstructured data, i.e. any data that you can vectorize with (or without) an ML model. Yes, this includes text, but it also includes things like visual data, molecular structures, and geospatial data.

    For folks who want to learn a bit more, there are examples of vector database use cases beyond semantic text search in our bootcamp: https://github.com/milvus-io/bootcamp

  • Beginner-ish resources for choosing a vector database?
    1 project | /r/vectordatabase | 20 May 2023
    Easy to get started: Here are some tutorials for Milvus in a Jupyter Notebook that I wrote - reverse image search, semantic text search
  • Semantic Similarity Search
    1 project | /r/learnmachinelearning | 13 May 2023
    I think you can just store your vector embeddings in the vector store somewhere and then query with your second document. I created a short tutorial on this that shows how to get the top 2 vector embeddings from a text query
  • [D] Looking for open source projects to contribute
    15 projects | /r/MachineLearning | 9 Jan 2022
    For more beginner tasks associated with the Milvus vector database, you can contribute to the Bootcamp project( https://github.com/milvus-io/bootcamp), where we build a lot of data-driven solutions using ML and Milvus vector database, including reverse image search, recommender systems, etc.
  • I built an image similarity search system... Suggestions needed: what are some fun image datasets or scenarios I can use with this? :)
    3 projects | /r/datascience | 21 Dec 2021
    Source code here: https://github.com/milvus-io/bootcamp/tree/master/solutions/reverse_image_search
  • Faiss: Facebook's open source vector search library
    8 projects | news.ycombinator.com | 14 Dec 2021

What are some alternatives?

When comparing annoy and bootcamp you can also consider the following projects:

faiss - A library for efficient similarity search and clustering of dense vectors.

Milvus - A cloud-native vector database, storage for next generation AI applications

hnswlib - Header-only C++/python library for fast approximate nearest neighbors

google-research - Google Research

implicit - Fast Python Collaborative Filtering for Implicit Feedback Datasets

docarray - Represent, send, store and search multimodal data

es-clip-image-search - Sample implementation of natural language image search with OpenAI's CLIP and Elasticsearch or Opensearch.

TensorRec - A TensorFlow recommendation algorithm and framework in Python.

habitat-sim - A flexible, high-performance 3D simulator for Embodied AI research.

fastFM - fastFM: A Library for Factorization Machines

nn - 🧑‍🏫 60 Implementations/tutorials of deep learning papers with side-by-side notes 📝; including transformers (original, xl, switch, feedback, vit, ...), optimizers (adam, adabelief, sophia, ...), gans(cyclegan, stylegan2, ...), 🎮 reinforcement learning (ppo, dqn), capsnet, distillation, ... 🧠