/ Модель

Характеристики

Контекст
512 токенов
Параметры
25,9 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
all-MiniLM-L6-v2
Библиотека
sentence-transformers
Опубликована
4 янв 2026

all-MiniLM-L6-v2-code-search-512

ЭмбеддингиТекст → embedding8 профессий

Компактный энкодер, который преобразует запросы и фрагменты кода в эмбеддинги для семантического поиска и сопоставления с документацией.

4 844скачиваний за 30 дней0лайковвеса обновлены5 янв 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

all-MiniLM-L6-v2-code-search-512 — компактная модель Sentence Transformers, дообученная для семантического поиска по коду. Она преобразует текстовые запросы на естественном языке и фрагменты исходного кода в векторы общего пространства, чтобы находить подходящие участки кода, сопоставлять код с документацией и сравнивать фрагменты. Модель разработана автором репозитория isuruwijesiri на основе sentence-transformers/all-MiniLM-L6-v2 и обучена на парах кода и документации из CodeSearchNet.

Это плотный энкодер архитектуры BERT с 25,9 млн параметров по метаданным. Максимальная длина входа — 512 токенов; поддерживаются запросы на естественном языке и код на Python, Java, JavaScript, PHP, Ruby, Go и других языках из CodeSearchNet. В README для валидационной выборки CodeSearchNet заявлены Accuracy@1 90,3% и MRR@10 0,9259.

Модель подходит для поиска кода, поиска по документации, сопоставления запросов и фрагментов кода, а также кластеризации по сходству. Она предназначена для получения эмбеддингов и оценки семантического сходства, а не для генерации или автодополнения кода; входы длиннее 512 токенов обрезаются, а качество может различаться между языками программирования. Лицензия — Apache-2.0.

Сценарии применения

  • поиск фрагментов кода по запросу на естественном языке
  • поиск функций и примеров в репозитории
  • сопоставление исходного кода с документацией
  • поиск похожих фрагментов кода
  • кластеризация кода по семантическому сходству
  • встраивание семантического поиска кода в IDE и инструменты разработчика

Ограничения

Входы длиннее 512 токенов обрезаются; модель не предназначена для генерации или автодополнения кода. Качество поиска может различаться между языками программирования.

Для каких профессий подходит8

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

all-MiniLM-L6-v2-code-search-512

Version: v1.0
Release Date: 2026-01-04
Base Model: https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2


Overview

  • all-MiniLM-L6-v2-code-search-512 is a lightweight, high-accuracy sentence-transformers fine-tuned specifically for semantic code search and code embeddings.
  • It maps natural language queries and source code into a shared embedding space, enabling fast and accurate retrieval of relevant code snippets across multiple programming languages.
  • On CodeSearchNet, this model achieves 90.3% Accuracy@1, significantly outperforming the base all-MiniLM-L6-v2 model while keeping the same 33M parameter footprint.

Key Features

  • Fine-tuned on 1.29M+ code–documentation pairs from CodeSearchNet
  • Supports 512-token context length (2× longer than the base model)
  • Multi-language code support (Python, Java, JavaScript, PHP, Ruby, Go)
  • 33M parameters for fast inference
  • Pre-configured with max_seq_length=512 by default

Intended Use

Recommended use cases:

  • Semantic code search
  • Natural language to code retrieval
  • Code–documentation matching
  • Code similarity and clustering
  • Developer tools and IDE integrations

Supported languages:

  • Python
  • Java
  • JavaScript
  • PHP
  • Ruby
  • Go
  • Other languages included in CodeSearchNet

Quick Start

from sentence_transformers import SentenceTransformer

model = SentenceTransformer('isuruwijesiri/all-MiniLM-L6-v2-code-search-512')

# Encode code
code_embedding = model.encode("def hello_world():\n    print('Hello, World!')")

# Encode natural language description
query_embedding = model.encode("function that prints hello world")

# Calculate similarity
from sklearn.metrics.pairwise import cosine_similarity
similarity = cosine_similarity([query_embedding], [code_embedding])[0][0]
print(f"Similarity: {similarity:.4f}")

Quick Start - JS

Use this model in JavaScript/TypeScript with Transformers.js - works in Node.js and browsers!

Installation:

npm install @xenova/transformers

Usage:

import {{ pipeline }} from '@xenova/transformers';

// Load the model (auto-downloads and caches)
const extractor = await pipeline('feature-extraction', 'isuruwijesiri/all-MiniLM-L6-v2-code-search-512', {
  quantized: false  // false = model.onnx (86MB), true = model_quantized.onnx (22MB)
});

// Generate embeddings
const output = await extractor('def add(a, b): return a + b', {{
  pooling: 'mean',
  normalize: true
}});

// Use the embedding
const embedding = Array.from(output.data);
console.log(embedding); // [384] dimensional vector

Code Search Example

from sentence_transformers import SentenceTransformer, util

# Load model
model = SentenceTransformer('isuruwijesiri/all-MiniLM-L6-v2-code-search-512')

# Your code snippets
code_snippets = [
    "def calculate_sum(a, b):\n    return a + b",
    "def find_max(numbers):\n    return max(numbers)",
    "class User:\n    def __init__(self, name):\n        self.name = name"
]

# Natural language query
query = "function to add two numbers"

# Encode
query_emb = model.encode(query, convert_to_tensor=True)
code_embs = model.encode(code_snippets, convert_to_tensor=True)

# Find most similar
similarities = util.cos_sim(query_emb, code_embs)[0]
best_match_idx = similarities.argmax().item()

print(f"Best match: {code_snippets[best_match_idx]}")
print(f"Similarity: {similarities[best_match_idx]:.4f}")

Code Search Example - JS

import {{ pipeline }} from '@xenova/transformers';

const extractor = await pipeline('feature-extraction', 'isuruwijesiri/all-MiniLM-L6-v2-code-search-512', {
  quantized: false  // false = model.onnx (86MB), true = model_quantized.onnx (22MB)
});

// Your code snippets
const codeSnippets = [
  "def add(a, b): return a + b",
  "def multiply(x, y): return x * y",
  "class User: pass"
];

// Search query
const query = "function to add two numbers";

// Get embeddings
const queryEmb = await extractor(query, {{ pooling: 'mean', normalize: true }});
const codeEmbs = await Promise.all(
  codeSnippets.map(code => extractor(code, {{ pooling: 'mean', normalize: true }}))
);

// Calculate similarities (dot product of normalized vectors = cosine similarity)
const similarities = codeEmbs.map(codeEmb => 
  Array.from(queryEmb.data).reduce((sum, val, i) => 
    sum + val * codeEmb.data[i], 0
  )
);

console.log(similarities); // [0.87, 0.23, 0.15] - first one is most similar!

Performance

Evaluated on the CodeSearchNet validation set (2,000 samples).

MetricScore
MRR@100.9259
Accuracy@10.9030
Accuracy@30.9440
Accuracy@50.9540
Accuracy@100.9705
Recall@10.9030
Recall@50.9540
Recall@100.9705
NDCG@100.9367
MAP@1000.9269

This model significantly outperforms the base all-MiniLM-L6-v2 on code search tasks:

MetricBase ModelFine-tunedImprovement
MRR@100.77590.9259+0.1500 (+19.3%)
Accuracy@10.71750.9030+0.1855 (+25.9%)
Accuracy@50.85550.9540+0.0985 (+11.5%)
Recall@100.88400.9705+0.0865 (+9.8%)
NDCG@100.80220.9367+0.1344 (+16.8%)

Context Length Configuration

This model was trained with a maximum sequence length of 512 tokens. By default, max_seq_length is already set to 512. No manual configuration is required.

model.max_seq_length = 256  # Faster inference for short code
model.max_seq_length = 512  # Default, best accuracy (recommended)

Training Details

Dataset: CodeSearchNet
Training samples: 1,294,017
Evaluation samples: 2,000
Epochs: 3
Batch size: 192
Loss function: MultipleNegativesRankingLoss

Limitations

  • Inputs longer than 512 tokens are truncated
  • Not suitable for code generation or completion
  • Optimized for semantic similarity, not syntactic correctness
  • Performance may vary across programming languages

Citation

If you use this model, please cite:

@misc{all_MiniLM_L6_v2_code_search_512,
  author = {isuruwijesiri},
  title = {all-MiniLM-L6-v2-code-search-512},
  year = {2026},
  publisher = {Hugging Face},
  url = {https://huggingface.co/isuruwijesiri/all-MiniLM-L6-v2-code-search-512}
}

License: Apache 2.0

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
13b266a

0 моделей