Fast_Sentence_Embeddings
MUSE
Fast_Sentence_Embeddings | MUSE | |
---|---|---|
3 | 4 | |
603 | 3,128 | |
- | - | |
0.0 | 0.0 | |
about 1 year ago | over 1 year ago | |
Jupyter Notebook | Python | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
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.
Fast_Sentence_Embeddings
-
The Illustrated Word2Vec
This is a great guide.
Also - despite the fact that language model embedding [1] are currently the hot rage, good old embedding models are more than good enough for most tasks.
With just a bit of tuning, they're generally as good at many sentence embedding tasks [2], and with good libraries [3] you're getting something like 400k sentence/sec on laptop CPU versus ~4k-15k sentences/sec on a v100 for LM embeddings.
When you should use language model embeddings:
- Multilingual tasks. While some embedding models are multilingual aligned (eg. MUSE [4]), you still need to route the sentence to the correct embedding model file (you need something like langdetect). It's also cumbersome, with one 400mb file per language.
For LM embedding models, many are multilingual aligned right away.
- Tasks that are very context specific or require fine-tuning. For instance, if you're making a RAG system for medical documents, the embedding space is best when it creates larger deviations for the difference between seemingly-related medical words.
This means models with more embedding dimensions, and heavily favors LM models over classic embedding models.
1. sbert.net
2. https://collaborate.princeton.edu/en/publications/a-simple-b...
3. https://github.com/oborchers/Fast_Sentence_Embeddings
4. https://github.com/facebookresearch/MUSE
-
You probably shouldn't use OpenAI's embeddings
You can find some comparisons and evaluation datasets/tasks here: https://www.sbert.net/docs/pretrained_models.html
Generally MiniLM is a good baseline. For faster models you want this library:
https://github.com/oborchers/Fast_Sentence_Embeddings
For higher quality ones, just take the bigger/slower models in the SentenceTransformers library
-
[D] Unsupervised document similarity state of the art
Links: fse: https://github.com/oborchers/Fast_Sentence_Embeddings Sentence-transformers: https://github.com/oborchers/sentence-transformers
MUSE
-
The Illustrated Word2Vec
This is a great guide.
Also - despite the fact that language model embedding [1] are currently the hot rage, good old embedding models are more than good enough for most tasks.
With just a bit of tuning, they're generally as good at many sentence embedding tasks [2], and with good libraries [3] you're getting something like 400k sentence/sec on laptop CPU versus ~4k-15k sentences/sec on a v100 for LM embeddings.
When you should use language model embeddings:
- Multilingual tasks. While some embedding models are multilingual aligned (eg. MUSE [4]), you still need to route the sentence to the correct embedding model file (you need something like langdetect). It's also cumbersome, with one 400mb file per language.
For LM embedding models, many are multilingual aligned right away.
- Tasks that are very context specific or require fine-tuning. For instance, if you're making a RAG system for medical documents, the embedding space is best when it creates larger deviations for the difference between seemingly-related medical words.
This means models with more embedding dimensions, and heavily favors LM models over classic embedding models.
1. sbert.net
2. https://collaborate.princeton.edu/en/publications/a-simple-b...
3. https://github.com/oborchers/Fast_Sentence_Embeddings
4. https://github.com/facebookresearch/MUSE
-
Best AI-generated bilingual dictionaries
I am looking for the best way to get an AI-generated bilingual dictionary, so that I can get a list of words with their translations for each language pair I want. It is possible to get a list (with sometimes alright, sometimes bad results) using this project. Additionally, there exists this, but it does not have a whole lot of words unfortunately. I also read about the huge CCMatrix dataset which has millions of parallel sentences for many language pairs, but how would I extract direct word translations from it? (A naive python algorithm would probably take forever.)
-
Help with aligned word embeddings
We currently train our own vocabularies on Wikipedia and other sources, and we align the vocabularies using MUSE with default settings (0-5000 dictionary for training, 5000-6500 dictionary for evaluation and 5 refinements).
-
D How Advanced Is The Current Practice Of
MUSE embeddings has an unsupervised approach based on adversarial training: https://github.com/facebookresearch/MUSE#the-unsupervised-way-adversarial-training-and-refinement-cpugpu
What are some alternatives?
gensim - Topic Modelling for Humans
LASER - Language-Agnostic SEntence Representations
smaller-labse - Applying "Load What You Need: Smaller Versions of Multilingual BERT" to LaBSE
electra - ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
cso-classifier - Python library that classifies content from scientific papers with the topics of the Computer Science Ontology (CSO).
word2word - Easy-to-use word-to-word translations for 3,564 language pairs.
kgtk - Knowledge Graph Toolkit
RecSys_Course_AT_PoliMi - This is the official repository for the Recommender Systems course at Politecnico di Milano.
sentence-transformers - Sentence Embeddings with BERT & XLNet
wembedder - Wikidata embedding
gpt4-pdf-chatbot-langchain - GPT4 & LangChain Chatbot for large PDF docs