Views
No views yet
pip install sentence-transformers1from sentence_transformers import SentenceTransformer
2
3# Load the model
4model = SentenceTransformer('EMBO/soda-vec-negative-sampling')
5
6# Encode biomedical texts
7texts = [
8 "CRISPR-Cas9 gene editing in human embryos",
9 "mRNA vaccine efficacy against COVID-19 variants",
10 "Protein folding mechanisms in neurodegenerative diseases"
11]
12
13embeddings = model.encode(texts)
14print(f"Embeddings shape: {embeddings.shape}") # (3, 768)1import numpy as np
2from sklearn.metrics.pairwise import cosine_similarity
3
4# Query and corpus
5query = "Alzheimer's disease biomarkers"
6corpus = [
7 "Tau protein aggregation in neurodegeneration",
8 "COVID-19 vaccine development strategies",
9 "Beta-amyloid plaques in dementia patients"
10]
11
12# Encode
13query_embedding = model.encode([query])
14corpus_embeddings = model.encode(corpus)
15
16# Find most similar
17similarities = cosine_similarity(query_embedding, corpus_embeddings)[0]
18best_match = np.argmax(similarities)
19print(f"Best match: {corpus[best_match]} (similarity: {similarities[best_match]:.3f})")| Feature | SODA-VEC (VICReg) | SODA-VEC Negative Sampling |
|---|---|---|
| Loss Function | VICReg (custom biomedical) | MultipleNegativesRankingLoss |
| Optimization | Empirically tuned coefficients | Standard contrastive learning |
| Training Data | Same (26.5M pairs) | Same (26.5M pairs) |
| Use Case | Biomedical research focus | General semantic similarity |
| Framework | Custom implementation | sentence-transformers standard |
1@misc{soda-vec-negative-sampling-2024,
2 title={SODA-VEC Negative Sampling: Biomedical Sentence Embeddings},
3 author={EMBO},
4 year={2024},
5 url={https://huggingface.co/EMBO/soda-vec-negative-sampling},
6 note={Trained on 26.5M PubMed text pairs using MultipleNegativesRankingLoss}
7}