The Salesforce/SFR-Embedding-Code is a generalist embedding model family for multilingual and multi-task code and Text retrieval. It demonstrates superior performance compared to various open-source code embedding models across multiple code retrieval tasks.
This release is for research purposes only in support of an academic paper. Our models, datasets, and code are not specifically designed or evaluated for all downstream purposes. We strongly recommend users evaluate and address potential concerns related to accuracy, safety, and fairness before deploying this model. We encourage users to consider the common limitations of AI, comply with applicable laws, and leverage best practices when selecting use cases, particularly for high-risk scenarios where errors or misuse could significantly impact people’s lives, rights, or safety. For further guidance on use cases, refer to our
AUP
and
AI AUP
.
License Statement:
Users need to make their own assessment regarding any obligations or responsibilities under the corresponding licenses or terms and conditions pertaining to the original datasets and data. This release is for research purposes only in support of an academic paper.
Performance on CoIR Benchmark
Model
Model Size
CoIR AVG (NDCG@10)
SFR-Embedding-Code
2B
67.4
CodeSage-Large-v2
1.3B
64.2
CodeSage-Large
1.3B
61.0
SFR-Embedding-Code
400M
61.9
CodeRankEmbed
137M
60.1
CodeSage-Base
356M
57.5
Voyage-Code-002
-
56.3
CodeSage-Small
130M
54.4
SFR-Embedding Team († indicates co-leaders)
Ye Liu
Rui Meng
Shafiq Rayhan Joty
Silvio Savarese
Caiming Xiong †
Yingbo Zhou †
Semih Yavuz †
How to run
Transformers
import torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer
input_texts = [
"how to implement quick sort in Python?",
"def quick_sort(arr):\n if len(arr) <= 1:\n return arr\n pivot = arr[len(arr) // 2]\n left = [x for x in arr if x < pivot]\n middle = [x for x in arr if x == pivot]\n right = [x for x in arr if x > pivot]\n return quick_sort(left) + middle + quick_sort(right)",
"def bubble_sort(arr):\n n = len(arr)\n for i in range(n):\n for j in range(0, n-i-1):\n if arr[j] > arr[j+1]:\n arr[j], arr[j+1] = arr[j+1], arr[j]\n return arr",
]
model_path = 'Salesforce/SFR-Embedding-Code-400M_R'
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True)
# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=8192, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = outputs.last_hidden_state[:, 0]
# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:1] @ embeddings[1:].T) * 100print("Similarity Scores:", scores.tolist())
Sentence Transformers
Requires sentence_transformers>=2.7.0
from sentence_transformers import SentenceTransformer
from sentence_transformers.util import cos_sim
sentences = [
"how to implement quick sort in Python?",
"def quick_sort(arr):\n if len(arr) <= 1:\n return arr\n pivot = arr[len(arr) // 2]\n left = [x for x in arr if x < pivot]\n middle = [x for x in arr if x == pivot]\n right = [x for x in arr if x > pivot]\n return quick_sort(left) + middle + quick_sort(right)",
"def bubble_sort(arr):\n n = len(arr)\n for i in range(n):\n for j in range(0, n-i-1):\n if arr[j] > arr[j+1]:\n arr[j], arr[j+1] = arr[j+1], arr[j]\n return arr",
]
model = SentenceTransformer('Salesforce/SFR-Embedding-Code-400M_R', trust_remote_code=True)
embeddings = model.encode(sentences)
print(cos_sim(embeddings[0], embeddings[1:]))
Citation
@article{liu2024codexembed,
title={CodeXEmbed: A Generalist Embedding Model Family for Multiligual and Multi-task Code Retrieval},
author={Liu, Ye and Meng, Rui and Jot, Shafiq and Savarese, Silvio and Xiong, Caiming and Zhou, Yingbo and Yavuz, Semih},
journal={arXiv preprint arXiv:2411.12644},
year={2024}
}
Runs of Salesforce SFR-Embedding-Code-400M_R on huggingface.co
20.8K
Total runs
0
24-hour runs
233
3-day runs
971
7-day runs
14.2K
30-day runs
More Information About SFR-Embedding-Code-400M_R huggingface.co Model
More SFR-Embedding-Code-400M_R license Visit here:
SFR-Embedding-Code-400M_R huggingface.co is an AI model on huggingface.co that provides SFR-Embedding-Code-400M_R's model effect (), which can be used instantly with this Salesforce SFR-Embedding-Code-400M_R model. huggingface.co supports a free trial of the SFR-Embedding-Code-400M_R model, and also provides paid use of the SFR-Embedding-Code-400M_R. Support call SFR-Embedding-Code-400M_R model through api, including Node.js, Python, http.
SFR-Embedding-Code-400M_R huggingface.co is an online trial and call api platform, which integrates SFR-Embedding-Code-400M_R's modeling effects, including api services, and provides a free online trial of SFR-Embedding-Code-400M_R, you can try SFR-Embedding-Code-400M_R online for free by clicking the link below.
Salesforce SFR-Embedding-Code-400M_R online free url in huggingface.co:
SFR-Embedding-Code-400M_R is an open source model from GitHub that offers a free installation service, and any user can find SFR-Embedding-Code-400M_R on GitHub to install. At the same time, huggingface.co provides the effect of SFR-Embedding-Code-400M_R install, users can directly use SFR-Embedding-Code-400M_R installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
SFR-Embedding-Code-400M_R install url in huggingface.co: