Research2Vec
examples
Research2Vec | examples | |
---|---|---|
3 | 7 | |
194 | 384 | |
- | 7.8% | |
0.0 | 6.8 | |
about 3 years ago | 3 months ago | |
Jupyter Notebook | Jupyter Notebook | |
- | Apache License 2.0 |
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.
Research2Vec
- [P] 20K+ Arxiv ML Papers Vectorised, Cluster Application and Projector
-
20k+ ML Research Papers Vectorised + Clustered + Visualised! [OC]
In recent years, the number of research papers have grown tremendously. New areas are popping up everyday but it is not exactly clear which areas are emerging or which interesting new area has just surfaced up. I decided to cluster together 20k+ interesting machine learning papers that were recently surfaced up. Cluster Application: https://cloud.relevance.ai/dataset/research2vec/deploy/cluster/jacky-wong/M0FQOVdINEJZQTVzdWJmNHdQaXI6M1NIMVFncm9TNENZeU1vNUNHTUVWZw/60\_dWH4Bq8SHcPzXrEpF Embeddings Projector: https://cloud.relevance.ai/dataset/research2vec/deploy/projector/jacky-wong/NXNzdjUzNEIxczVzVVpOdUpabXE6TE92enhOZ1VTN2labDlocVZNNDlMUQ/4zQk534BY7n37LD0yk4A/old-australia-east/ I created the vectors using a fine-tuned version of Sentence Transformer's roberta-base model. What I scoped out from the problem: The training had to be unsupervised because no one would have any idea what was in the dataset An NLP embeddings-based approach with unsupervised clustering would be the simplest way to surface insights Interesting New Topics I Discovered Federated Learning,and Graph GANs were really interesting topics, along with the growth of Representation Learning Solution In order to get some form of off-the-shelf domain adaptation, I used off-the-shelf BART for unsupervised query generation and then fine-tuned my roberta embeddings using multiple negative rankings loss based on SentenceTransformers. This seemed to work quite well as the topics seemed to have separated out quite nicely in my embeddings projector. I then trained my model on the title and abstract of the research papers so that the model could better understand some of the data. Afterwards, I encoded the titles and clustered them using a simple K Means algorithm. Dataset The dataset curation process was fairly straightforward. I used the arxiv API and scraped 20k papers off the query "machine learning" sometime in late 2020 before I began experimenting with the work. I am looking to get feedback on what others would like to see in this application and would be curious to hear suggestions on where I could improve. From previous research, I did find this repository: https://github.com/Santosh-Gupta/Research2Vec However, as the dataset was different, I was unable to use the exact method provided. Disclaimer: I currently work for Relevance AI (the company behind the projector).
- 20k+ ML Research Papers Vectorised + Clustered + Visualised!
examples
- FLaNK-AIM Weekly 06 May 2024
- FLaNK Stack Weekly for 07August2023
-
Vector database built for scalable similarity search
As another commenter noted, Milvus is overkill and a "bit much" if you're learning/playing.
A good intro to the field with progression towards a full Milvus implementation could be starting with towhee[0] (which is also supported by Milvus).
towhee has an example to do exactly what you want with CLIP[1].
[0] - https://towhee.io/
[1] - https://github.com/towhee-io/examples/tree/main/image/text_i...
-
Ask HN: Any good self-hosted image recognition software?
Usually this is done in three steps. The first step is using a neural network to create a bounding box around the object, then generating vector embeddings of the object, and then using similarity search on vector embeddings.
The first step is accomplished by training a detection model to generate the bounding box around your object, this can usually be done by finetuning an already trained detection model. For this step the data you would need is all the images of the object you have with a bounding box created around it, the version of the object doesnt matter here.
The second step involves using a generalized image classification model thats been pretrained on generalized data (VGG, etc.) and a vector search engine/vector database. You would start by using the image classification model to generate vector embeddings (https://frankzliu.com/blog/understanding-neural-network-embe...) of all the different versions of the object. The more ground truth images you have, the better, but it doesn't require the same amount as training a classifier model. Once you have your versions of the object as embeddings, you would store them in a vector database (for example Milvus: https://github.com/milvus-io/milvus).
Now whenever you want to detect the object in an image you can run the image through the detection model to find the object in the image, then run the sliced out image of the object through the vector embedding model. With this vector embedding you can then perform a search in the vector database, and the closest results will most likely be the version of the object.
Hopefully this helps with the general rundown of how it would look like. Here is an example using Milvus and Towhee https://github.com/towhee-io/examples/tree/3a2207d67b10a246f....
Disclaimer: I am a part of those two open source projects.
-
Deep Dive into Real-World Image Search Engine with Python
I have shown how to Build an Image Search Engine in Minutes in the previous tutorial. Here is another one for how to optimize the algorithm, feed it with large-scale image datasets, and deploy it as a micro-service.
-
Build an Image Search Engine in Minutes
The full tutorial is at https://github.com/towhee-io/examples/blob/main/image/reverse_image_search/build_image_search_engine.ipynb
What are some alternatives?
towhee - Towhee is a framework that is dedicated to making neural data processing pipelines simple and fast.
milvus-lite - A lightweight version of Milvus
gorilla-cli - LLMs for your CLI
anomalib - An anomaly detection library comprising state-of-the-art algorithms and features such as experiment management, hyper-parameter optimization, and edge inference.
EverythingApacheNiFi - EverythingApacheNiFi
OpenBuddy - Open Multilingual Chatbot for Everyone
harlequin - The SQL IDE for Your Terminal.
Milvus - A cloud-native vector database, storage for next generation AI applications
ann-benchmarks - Benchmarks of approximate nearest neighbor libraries in Python
node-redis - Redis Node.js client
roboflow-python - The official Roboflow Python package. Manage your datasets, models, and deployments. Roboflow has everything you need to build a computer vision application.
Transformers-Tutorials - This repository contains demos I made with the Transformers library by HuggingFace.