I/O 图

代码

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 token 上下文窗口,可实现整个函数和多文件检索,并使用 Matryoshka 表示学习实现灵活维度(64–896)。它在同尺寸中达到最先进的代码检索性能,超过参数量为其 3 倍的模型。

方法

该模型构建在自然语言和代码语料上预训练的自回归 Transformer 骨干之上。与传统向量模型使用的双向池化不同,它通过 Last-Token-Pooling 从序列的最终位置提取向量。这是一个关键的架构洞见:自回归模型的因果注意力自然地关注完整输入上下文,而代码生成预训练目标产生丰富的语义表示,能很好地迁移到检索。训练采用两阶段方案:(1) 在大规模代码-文本对(自然语言描述与代码实现配对)上进行对比预训练,(2) 在精选的代码检索数据集上以困难负样本挖掘进行监督微调。32K 上下文长度通过调整基础频率的旋转位置编码实现。

性能

该模型在标准代码检索基准上取得 78.41% 的总平均和 78.72% 的 MTEB Code 平均。值得注意的分数:HumanEval 96.77%、MBPP 89.01%、WikiSQL 98.31%、CodeChefXLang 99.70%、CodeTransOceanContest(代码到代码)90.37%、COIR-CodeSearchNet(NL2Code)85.73%、Doc2Code 95.98%、StackOverflowQA 91.04%。在代码特定任务上,它超过 Qwen3-Embedding-0.6B 以及更大的模型,包括 jina-embeddings-v4(74.11%)和 gemini-embedding-001(77.38%)。在 494M 参数下,它超过多个尺寸为其 3–5 倍的模型,证明自回归骨干方法每参数提供高语义质量。

最佳实践

始终使用适当的任务特定指令前缀:自然语言到代码搜索用 nl2code,代码到代码相似度用 code2code,代码到自然语言用 code2nl,技术问答用 techqa,代码补全用 code2completion。对于大型代码库,在函数或类边界处实现分块,以保持在 32K token 限制内。Matryoshka 截断到 128 或 256 维适合高吞吐索引;重排序顶级候选时使用完整的 896 维。使用余弦相似度比较向量。最佳批量大小为 512,序列长度 512 token。该模型针对 Python、JavaScript、Java、PHP、Go 和 Ruby 优化,但支持 30 多种语言。对于代码的 RAG 流水线,第二阶段搭配 jina-reranker-v3.5,以最大化前 50 候选的精度。

提及此模型的博客