概述
jina-code-embeddings-1.5b 是一個 1.5B 參數的程式碼向量模型,將程式碼和自然語言查詢映射到共享的 1536 維語意空間。它支援 32K token 上下文視窗,可實現整個檔案和多重檔案程式碼上下文的檢索。它達到最先進的程式碼檢索性能,顯著超過其 0.5B 兄弟模型以及大得多的專用程式碼檢索模型。
方法
該模型建構在自然語言和程式碼語料上預訓練的自回歸 Transformer 骨幹之上,利用程式碼生成預訓練目標產生豐富的語意表示。它透過 Last-Token-Pooling 從序列的最終位置提取向量——自回歸模型的因果注意力自然地關注完整輸入上下文,程式碼生成目標產生既捕捉句法結構又捕捉功能語意的表示。訓練採用兩階段方案:(1) 在大幅度的程式碼-文字對上進行對比預訓練,(2) 在精選的程式碼檢索資料集上以困難負樣本挖掘進行監督微調。32K 上下文長度透過調整基礎頻率的旋轉位置編碼實現。Matryoshka 表示學習支援將維度從 1536 截斷到 128。
效能
該模型取得 79.04% 的總平均和 78.94% 的 MTEB Code 平均,為其參數級別樹立新基準。值得注意的分數:HumanEval 98.41%、MBPP 90.13%、WikiSQL 98.02%、CodeChefXLang 99.44%、CodeTransOceanContest(程式碼到程式碼)92.54%、COIR-CodeSearchNet(NL2Code)86.45%、Doc2Code 96.34%、StackOverflowQA 92.37%、SWE-Bench 86.33%(0.5B 變體為 83.00%)。它超過更大的替代方案,並在複雜的多檔案和跨儲存庫任務上較 0.5B 變體有一致提升。
最佳實踐
根據檢索需求策略性地使用指令前綴:nl2code、code2code、code2nl、techqa、code2completion。在整個流水線中保持一致——在特定檢索場景中,查詢和文件使用相同類型的前綴。增強的 1.5B 容量非常適合涉及多種程式範式和大型程式碼庫的複雜場景。透過用例分析確定平衡品質與資源的最優 Matryoshka 維度;256–512 維是索引的良好起點,重排序使用 1536 維。生產環境為與訓練對齊請使用批次大小 256。憑藉 99.44% 的 CodeChefXLang 性能,該模型非常適合跨儲存庫和跨語言搜尋。將其作為 RAG 系統中的主要檢索元件實施,並搭配 jina-reranker-v3.5 以提高前 50 候選的精確度。使用餘弦相似度比較向量。對於要求性能與效率兼備且延遲低於一秒的企業部署最為理想。


