/ Модель

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

Контекст
512 токенов
Параметры
25,9 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Библиотека
sentence-transformers
Опубликована
22 июл 2025

code-reranker-miniLM-staqc

Классификация текстаТекст → label3 профессии

Кросс-энкодер MiniLM-L6 для переранжирования фрагментов кода Python по запросам на естественном языке.

384скачиваний за 30 дней2лайкавеса обновлены22 июл 2025

Бенчмарки

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

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

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

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

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

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

Naman Agnihotri разработал эту модель как дообученный кросс-энкодер MiniLM-L6 для переранжирования фрагментов кода Python по запросам на естественном языке. Она сопоставляет вопрос с каждым кандидатом и выдаёт оценку релевантности, поэтому подходит для поиска кода и ранжирования результатов в системах информационного поиска и RAG.

Модель основана на cross-encoder/ms-marco-MiniLM-L-6-v2 и дообучена на парах вопросов и фрагментов кода StaQC SCA из Stack Overflow. В репозитории указаны 25,9 млн параметров, контекст до 512 токенов и формат safetensors; для работы предусмотрена библиотека sentence-transformers. Автор приводит оценку MRR 0,938 и точность первого результата 0,910 на 500 кандидатах из Conala.

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

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

  • Переранжирование результатов поиска кода Python
  • Поиск фрагмента кода по вопросу на естественном языке
  • Выбор подходящих примеров Python для ответа помощника разработчика
  • Оценка релевантности кандидатов в RAG-системе для программирования на Python
  • Рекомендация фрагментов кода по описанию задачи

Ограничения

Модель обучена на фрагментах Python и вопросах в стиле Stack Overflow, поэтому может хуже обобщаться на другие языки программирования, источники кода и сложные запросы. Контекст ограничен 512 токенами.

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

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

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

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

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

Открыть на Hugging Face

code-reranker-miniLM-staqc

A fine-tuned cross-encoder based on cross-encoder/ms-marco-MiniLM-L-6-v2 for reranking Python code snippets based on natural language queries from Stack Overflow.

Model Description

This model is a cross-encoder trained on the StaQC dataset (Stack Overflow Question-Code pairs) to rerank relevant Python code snippets given a programming question or natural language intent. It is specifically fine-tuned for Python code search and retrieval tasks where accurate relevance scoring is important.

  • Architecture: Cross-Encoder based on MiniLM-L6
  • Base model: cross-encoder/ms-marco-MiniLM-L-6-v2
  • Fine-tuned on: StaQC SCA (Stack Overflow Question-Code) dataset
  • Task: Python code snippet reranking for natural language queries
  • Language: Python code snippets

Use Cases

  • Python code search engines
  • Developer assistants for Python programming
  • AI coding agents with natural language interfaces
  • Evaluation modules in RAG pipelines for Python programming use cases
  • Code recommendation systems

Evaluation Results

The model was evaluated on 500 query-code candidates from the Conala curated dataset.

MetricValue
MRR0.938
Top‑1 Accuracy0.910

How to Use

Using sentence-transformers

from sentence_transformers import CrossEncoder

# Load the model
model = CrossEncoder("NamanAgnih0tri/code-reranker-miniLM-staqc")

# Sample input
query = "How to convert a string to int in Python?"
code_snippet = "int_value = int('123')"

# Get relevance score
score = model.predict([query, code_snippet])
print(f"Relevance Score: {score:.4f}")

Using transformers directly

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

tokenizer = AutoTokenizer.from_pretrained("NamanAgnih0tri/code-reranker-miniLM-staqc")
model = AutoModelForSequenceClassification.from_pretrained("NamanAgnih0tri/code-reranker-miniLM-staqc")

# Sample input
query = "How to reverse a string in Python?"
code_snippet = "def reverse_string(s):\n    return s[::-1]"

# Tokenize and predict relevance
inputs = tokenizer(query, code_snippet, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
    logits = model(**inputs).logits
    score = logits[0].item()

print(f"Relevance Score: {score:.4f}")

Code Ranking Example

from sentence_transformers import CrossEncoder

model = CrossEncoder("NamanAgnih0tri/code-reranker-miniLM-staqc")

def rank_code_snippets(query, candidates):
    """Rank code snippets by relevance to the query."""
    pairs = [[query, code] for code in candidates]
    scores = model.predict(pairs)
    ranked_results = sorted(zip(candidates, scores), key=lambda x: x[1], reverse=True)
    return ranked_results

# Example usage
query = "How to reverse a string in Python?"
candidates = [
    "def reverse_string(s):\n    return s[::-1]",
    "print('hello'[::-1])",
    "def add(a,b):\n    return a + b",
    "list = [1,2,3,4]"
]

ranked_results = rank_code_snippets(query, candidates)
for rank, (code, score) in enumerate(ranked_results, 1):
    print(f"{rank}. Score: {score:.4f}\n{code}\n")

Dataset

  • StaQC SCA (Stack Overflow Question-Code pairs)
  • Each pair consists of a natural language programming question and a corresponding Python code snippet
  • Positive and negative pairs were used for contrastive fine-tuning
  • Dataset contains 85,294 training examples

Training Details

  • Base Model: cross-encoder/ms-marco-MiniLM-L-6-v2
  • Optimizer: AdamW
  • Epochs: 3
  • Batch size: 8
  • Learning rate: 2e-5
  • Loss: Cosine Similarity Loss
  • Training samples: 170,588 (including negative samples)
  • Warmup steps: 10% of total training steps

Model Performance Comparison

ModelMRRTop-1 Accuracy
code-reranker-miniLM-staqc0.9380.910
cross-encoder/ms-marco-MiniLM-L-6-v20.8950.844
cross-encoder/ms-marco-TinyBERT-L-2-v20.8230.756

Limitations

  • Trained specifically on Python code snippets; may not generalize well to other programming languages
  • Model is relatively small; performance may lag behind larger rerankers on complex queries
  • Fine-tuned on Stack Overflow-like questions; may not generalize to code from other domains

Citation

If you use this model in your work, please cite it as:

@misc{code-reranker-miniLM-staqc,
  title={Code Reranker using MiniLM and StaQC for Python Code Search},
  author={Naman Agnihotri},
  year={2025},
  howpublished={\url{https://huggingface.co/NamanAgnih0tri/code-reranker-miniLM-staqc}}
}

Author

License

This model is licensed under the Apache 2.0 License.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertForSequenceClassification
Ревизия весов
9bcf5f1

0 моделей