Matthieufromparis/bge-small-code-search-v1
0105
bge-small-code-search-v1
A BGE-small-en-v1.5 model fine-tuned on CodeSearchNet (Python) for semantic code search.
๐ What It Does
Maps natural language queries and code snippets into the same 384-dimensional vector space. Search your codebase by describing what a function does.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Matthieufromparis/bge-small-code-search-v1")
query = "parse JSON config file and return a dictionary"
code_snippets = [...] # your codebase
query_emb = model.encode(query)
code_embs = model.encode(code_snippets)
similarities = model.similarity(query_emb, code_embs)๐ Performance
Evaluated on 500 held-out Python code-comment pairs from CodeSearchNet.
๐๏ธ Training
- Base Model: BAAI/bge-small-en-v1.5 (33M params, 384 dims)
- Dataset: CodeSearchNet โ Python subset, 6,000 pairs
- Loss: MultipleNegativesRankingLoss
- Epochs: 3 | Batch Size: 4 | LR: 2e-5
- Hardware: Apple M4 (MPS), ~33 min
๐ Quick Start
pip install sentence-transformersfrom sentence_transformers import SentenceTransformer
model = SentenceTransformer("Matthieufromparis/bge-small-code-search-v1")
query_embedding = model.encode("function that sorts a list of dictionaries by a key")
code_embedding = model.encode("def sort_dicts_by_key(dicts, key): return sorted(dicts, key=lambda x: x.get(key, ''))")
similarity = model.similarity(query_embedding, code_embedding)
print(f"Similarity: {similarity.item():.4f}")๐ฆ Use Cases
- Semantic Code Search โ Find functions by describing what they do
- Code Documentation Lookup โ Match docs to relevant code
- Code Deduplication โ Find similar implementations across repos
- RAG for Coding Assistants โ Retrieve relevant code for LLM context
๐ฏ Intended Use
Designed for asymmetric search โ queries are natural language, documents are code.
โ ๏ธ Limitations
- Trained on Python only โ may not generalize to other languages
- 384 dimensions โ trades quality for speed vs larger models
- Training data from CodeSearchNet (2019 vintage)
๐ Resources
- ๐ Fine-Tune Your Own Code Embeddings โ Complete Guide by Matthieu.AI
- ๐ BGE Paper (C-Pack)
- ๐ CodeSearchNet Paper
- ๐ MTEB Leaderboard
Author: Matthieu.AI (Matthieufromparis) โ License: Apache 2.0
