/ Модель

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

Контекст
32 768 токенов
Параметры
7,1 млрд
Размер весов
28,3 ГБ
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-Coder-7B-Instruct
Библиотека
sentence-transformers
Опубликована
24 мар 2025

nomic-embed-code

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

Nomic Embed Code — дообученная модель на 7,1 млрд параметров, которая строит эмбеддинги кода и помогает находить подходящие фрагменты по текстовому запросу.

443 тыс.скачиваний за 30 дней124лайкавеса обновлены31 мар 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Nomic Embed Code — модель встраивания кода, разработанная Nomic AI на основе Qwen2.5-Coder-7B-Instruct и дообученная для поиска по коду. Она преобразует текстовые запросы и фрагменты кода в векторы для поиска функций по описаниям и семантического сопоставления кода. Модель предназначена для Python, Java, Ruby, PHP, JavaScript и Go; размер составляет 7,1 млрд параметров, контекст — до 32 768 токенов. Для обучения использовался набор CoRNStack с парами описаний функций и кода, фильтрацией качества и подбором сложных отрицательных примеров.

README сообщает о результатах на CodeSearchNet, превосходящих Voyage Code 3 и OpenAI Embed 3 Large в нескольких языках, однако не приводит полную методику сравнения. Модель распространяется под лицензией Apache-2.0. Описание не подтверждает генерацию кода как основную функцию: назначение модели — построение эмбеддингов и поиск.

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

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

Ограничения

README описывает поддержку шести языков программирования, но язык естественного текста в метаданных не указан; обучающие пары README характеризует как англоязычные. Заявленные сравнительные результаты приведены для CodeSearchNet, а полная методика оценки в карточке отсутствует.

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

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

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

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

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

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

Открыть на Hugging Face

Nomic Embed Code: A State-of-the-Art Code Retriever

Blog | Technical Report | AWS SageMaker | Atlas Embedding and Unstructured Data Analytics Platform

nomic-embed-code is a state-of-the-art code embedding model that excels at code retrieval tasks:

  • High Performance: Outperforms Voyage Code 3 and OpenAI Embed 3 Large on CodeSearchNet
  • Multilingual Code Support: Trained for multiple programming languages (Python, Java, Ruby, PHP, JavaScript, Go)
  • Advanced Architecture: 7B parameter code embedding model
  • Fully Open-Source: Model weights, training data, and evaluation code released
ModelPythonJavaRubyPHPJavaScriptGo
Nomic Embed Code81.780.581.872.377.193.8
Voyage Code 380.880.584.671.779.293.2
OpenAI Embed 3 Large70.872.975.359.668.187.6
Nomic CodeRankEmbed-137M78.476.979.368.871.492.7
CodeSage Large v2 (1B)74.272.376.765.272.584.6
CodeSage Large (1B)70.870.271.961.369.583.7
Qodo Embed 1 7B59.961.668.448.557.081.4

Model Architecture

  • Total Parameters: 7B
  • Training Approach: Trained on the CoRNStack dataset with dual-consistency filtering and progressive hard negative mining
  • Supported Languages: Python, Java, Ruby, PHP, JavaScript, and Go

Usage Guide

Installation

You can install the necessary dependencies with:

pip install transformers sentence-transformers torch

Transformers

import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("nomic-ai/nomic-embed-code")
model = AutoModel.from_pretrained("nomic-ai/nomic-embed-code")

def last_token_pooling(hidden_states, attention_mask):
    sequence_lengths = attention_mask.sum(-1) - 1
    return hidden_states[torch.arange(hidden_states.shape[0]), sequence_lengths]

queries = ['Represent this query for searching relevant code: Calculate the n-th factorial']
codes = ['def fact(n):\n if n < 0:\n  raise ValueError\n return 1 if n == 0 else n * fact(n - 1)']
code_snippets = queries + codes

encoded_input = tokenizer(code_snippets, padding=True, truncation=True, return_tensors='pt')
model.eval()
with torch.no_grad():
    model_output = model(**encoded_input)[0]

embeddings = last_token_pooling(model_output, encoded_input['attention_mask'])
embeddings = F.normalize(embeddings, p=2, dim=1)
print(embeddings.shape)

similarity = F.cosine_similarity(embeddings[0], embeddings[1], dim=0)
print(similarity)

SentenceTransformers

from sentence_transformers import SentenceTransformer

queries = ['Calculate the n-th factorial']
code_snippets = ['def fact(n):\n if n < 0:\n  raise ValueError\n return 1 if n == 0 else n * fact(n - 1)']

model = SentenceTransformer("nomic-ai/nomic-embed-code")
query_emb = model.encode(queries, prompt_name="query")
code_emb = model.encode(code_snippets)

similarity = model.similarity(query_emb[0], code_emb[0])
print(similarity)

CoRNStack Dataset Curation

Starting with the deduplicated Stackv2, we create text-code pairs from function docstrings and respective code. We filtered out low-quality pairs where the docstring wasn't English, too short, or that contained URLs, HTML tags, or invalid characters. We additionally kept docstrings with text lengths of 256 tokens or longer to help the model learn long-range dependencies.

image/png

After the initial filtering, we used dual-consistency filtering to remove potentially noisy examples. We embed each docstring and code pair and compute the similarity between each docstring and every code example. We remove pairs from the dataset if the corresponding code example is not found in the top-2 most similar examples for a given docstring.

During training, we employ a novel curriculum-based hard negative mining strategy to ensure the model learns from challenging examples. We use a softmax-based sampling strategy to progressively sample hard negatives with increasing difficulty over time.

Join the Nomic Community

Citation

If you find the model, dataset, or training code useful, please cite our work:

@misc{suresh2025cornstackhighqualitycontrastivedata,
      title={CoRNStack: High-Quality Contrastive Data for Better Code Retrieval and Reranking}, 
      author={Tarun Suresh and Revanth Gangi Reddy and Yifei Xu and Zach Nussbaum and Andriy Mulyar and Brandon Duderstadt and Heng Ji},
      year={2025},
      eprint={2412.01007},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2412.01007}, 
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
Qwen2Model
Ревизия весов
1111402

0 моделей