Обзор
jina-code-embeddings-1.5b — эмбеддинг-модель для кода на 1,5B параметров, которая отображает программный код и запросы на естественном языке в общее 1536-мерное семантическое пространство. Поддерживает окна контекста в 32K токенов, что позволяет искать по целым файлам и мультифайловым кодовым контекстам. Достигает передовых результатов в поиске кода, существенно превосходя свою 0,5B версию и значительно более крупные специализированные модели поиска кода.
Методы
Модель построена на autoregressive трансформер-бэкбоне, предобученном на корпусах естественного языка и кода, использующем цель предобучения генерации кода для создания богатых семантических представлений. Она извлекает эмбеддинги через Last-Token-Pooling с последней позиции последовательности — каузальное внимание autoregressive модели естественно обращено на весь контекст входа, а цель генерации кода создаёт представления, улавливающие и синтаксическую структуру, и функциональную семантику. Обучение использует двухстадийный рецепт: (1) контрастивное предобучение на больших парах «код-текст», (2) супервизированное дообучение на отобранных датасетах поиска кода с добычей трудных негативов. Длина контекста 32K обеспечивается rotary position embeddings с подогнанной базовой частотой. Обучение представлений Matryoshka позволяет урезать размерность с 1536 до 128.
Производительность
Модель достигает среднего значения 79,04% в целом и 78,94% в среднем MTEB Code, устанавливая новые бенчмарки для своего класса параметров. Заметные результаты: 98,41% на HumanEval, 90,13% на MBPP, 98,02% на WikiSQL, 99,44% на CodeChefXLang, 92,54% на CodeTransOceanContest (код в код), 86,45% на COIR-CodeSearchNet (NL2Code), 96,34% на Doc2Code, 92,37% на StackOverflowQA и 86,33% на SWE-Bench (против 83,00% у 0,5B версии). Она превосходит более крупные альтернативы и показывает устойчивые улучшения относительно 0,5B версии, особенно на сложных мультифайловых и межрепозиторных задачах.
Руководство
Стратегически применяйте инструктивные префиксы в зависимости от требований поиска: nl2code, code2code, code2nl, techqa, code2completion. Сохраняйте согласованность во всей конвейере — в заданном сценарии поиска используйте один тип префикса для запросов и документов. Увеличенная ёмкость 1,5B идеальна для сложных сценариев с несколькими программными парадигмами и большими кодовыми базами. Профилируйте сценарии использования, чтобы определить оптимальное измерение Matryoshka, балансирующее качество и ресурсы; 256–512 измерений — хорошая отправная точка для индексации, 1536 — для re-ranking. Для согласования с обучением в продакшене используйте размер батча 256. Модель превосходна для межрепозиторного и межъязыкового поиска при показателе 99,44% на CodeChefXLang. Встраивайте как основной поисковый компонент в RAG-системах, в паре с jina-reranker-v3.5 для точности на 50 лучших кандидатах. Используйте косинусное сходство для сравнения эмбеддингов. Оптимально для корпоративных развёртываний, где нужны и производительность, и эффективность с латентностью менее секунды.


