График ввода-вывода

Код

jina-code-embeddings

Задача

Вектор

Парето-фронт
30M100M300M1B3.0B10B40506070bge-base-en-v1.5bge-m3bge-small-en-v1.5CodeRankEmbedCodeSage-baseCodeSage-largeCodeSage-large-v2CodeSage-smallCodeXEmbed-7BContrievere5-base-v2e5-mistral-7b-instructe5-small-v2granite-embedding-engli…granite-embedding-small…gte-base-en-v1.5gte-modernbert-basegte-Qwen2-1.5B-instructjina-embeddings-v3jina-embeddings-v4modernbert-embed-baseNV-Embed-v2SFR-Embedding-2_RSFR-Embedding-Code-2B_RSFR-Embedding-Code-400M…snowflake-arctic-embed-…UniXcoderjina-code-embeddings-0.…Параметры (лог)nDCG@10
Эта модель
На фронте
Jina AI
Другие
CoIR
73.94
Параметры
494M
Ранг по баллу
1 / 31
Парето-фронт
На фронте
Распределение значений
AUC 0.8538
Корпус
Пары переводов
Поиск по документации
Код
Задача
nl2code.passage
nl2code.query
nl2code.query → nl2code.passage
qa.passage
qa.query
qa.query → qa.passage
0.7330.000.200.400.600.80
Связанные18.5%
Сложный отрицательный2.3%
Несвязанные1.1%
Рекомендуемые пороги
FPR 0.1 · 0.544
FPR 0.01 · 0.733
FPR 0.001 · 0.813
FPR 0.0001 · 0.889
сбалансированный · 0.427
AUC
0.8538
Потолок шума
0.809
Обрыв полноты
0.160
Измерено пар
119 / 11k
Компоненты вектора
-0.210.010.23
σ 0.0334 · 213k значений
Геометрия эмбеддингов
0896
Среднее по измерениям, наведите для диапазона
Уровень шума
0.329
Эффективных изм.
55 / 896
Выберите модели для сравнения
Публикации (1)

Обзор

jina-code-embeddings-0.5b — эмбеддинг-модель для кода на 494M параметров, которая отображает программный код и запросы на естественном языке в общее 896-мерное семантическое пространство. Поддерживает окна контекста в 32K токенов, что позволяет искать целые функции и несколько файлов, и использует обучение представлений Matryoshka для гибкой размерности (64–896). Достигает передовых результатов в поиске кода для своего размера, превосходя модели с 3-кратным числом параметров.

Методы

Модель построена на autoregressive трансформер-бэкбоне, предобученном на корпусах естественного языка и кода. Вместо двунаправленного пулинга, используемого традиционными эмбеддинг-моделями, она извлекает эмбеддинги через Last-Token-Pooling с последней позиции последовательности. Это ключевой архитектурный инсайт: каузальное внимание autoregressive модели естественно обращено на весь контекст входа, а цель предобучения генерации кода производит богатые семантические представления, хорошо переносящиеся на поиск. Обучение использует двухстадийный рецепт: (1) контрастивное предобучение на больших парах «код-текст» (описания на естественном языке, спаренные с реализациями кода) и (2) супервизированное дообучение на отобранных датасетах поиска кода с добычей трудных негативов. Длина контекста 32K обеспечивается rotary position embeddings с подогнанной базовой частотой.

Производительность

Модель достигает среднего значения 78,41% в целом и 78,72% в среднем MTEB Code на стандартных бенчмарках поиска кода. Заметные результаты: 96,77% на HumanEval, 89,01% на MBPP, 98,31% на WikiSQL, 99,70% на CodeChefXLang, 90,37% на CodeTransOceanContest (код в код), 85,73% на COIR-CodeSearchNet (NL2Code), 95,98% на Doc2Code и 91,04% на StackOverflowQA. Она превосходит Qwen3-Embedding-0,6B и более крупные модели, включая jina-embeddings-v4 (74,11%) и gemini-embedding-001 (77,38%), на задачах, специфичных для кода. При 494M параметров модель превосходит несколько моделей размером в 3–5 раз больше, демонстрируя, что подход с autoregressive бэкбоном даёт высокое семантическое качество на параметр.

Руководство

Всегда используйте соответствующие специфичные для задачи инструктивные префиксы: nl2code для поиска «естественный язык в код», code2code для сходства «код в код», code2nl для «код в естественный язык», techqa для технических вопросов и ответов и code2completion для автодополнения кода. Для больших кодовых баз реализуйте чанкинг на границах функций или классов, чтобы оставаться в пределах лимита 32K токенов. Обрезка Matryoshka до 128 или 256 измерений подходит для высокопроизводительной индексации; для re-ranking лучших кандидатов используйте все 896 измерений. Используйте косинусное сходство для сравнения эмбеддингов. Оптимальный размер батча — 512, длина последовательности 512 токенов. Модель оптимизирована для Python, JavaScript, Java, PHP, Go и Ruby, но поддерживает 30+ языков. Для RAG-конвейеров по коду сочетайте jina-reranker-v3.5 как второй этап, чтобы максимизировать точность на 50 лучших кандидатах.

Блоги, в которых упоминается эта модель