Aperçu
jina-code-embeddings-1.5b est un modèle d'embedding de code de 1,5B paramètres qui mappe le code de programmation et les requêtes en langage naturel dans un espace sémantique partagé de 1536 dimensions. Il prend en charge des fenêtres de contexte de 32K tokens, permettant la recherche sur des fichiers entiers et des contextes de code multi-fichiers. Il atteint un état de l'art en recherche de code, surpassant nettement sa variante 0,5B et des modèles dédiés de recherche de code nettement plus grands.
Méthodes
Le modèle repose sur un backbone transformeur autoregressif pré-entraîné sur des corpus de langage naturel et de code, exploitant l'objectif de pré-entraînement de génération de code pour produire des représentations sémantiques riches. Il extrait les embeddings via Last-Token-Pooling depuis la position finale de la séquence — l'attention causale du modèle autoregressif porte naturellement attention sur l'intégralité du contexte d'entrée, et l'objectif de génération de code produit des représentations qui captent à la fois la structure syntaxique et la sémantique fonctionnelle. L'entraînement utilise une recette en deux étapes : (1) pré-entraînement contrastif sur de grandes paires de code et de texte, (2) ajustement fin supervisé sur des jeux de données de recherche de code curés, avec minage de négatifs difficiles. La longueur de contexte de 32K est rendue possible par des embeddings de position rotatifs avec une fréquence de base ajustée. L'apprentissage de représentation Matryoshka autorise la troncature de dimensions de 1536 à 128.
Performance
Le modèle atteint une moyenne globale de 79,04 % et une moyenne MTEB Code de 78,94 %, établissant de nouveaux standards pour sa classe de paramètres. Scores notables : 98,41 % sur HumanEval, 90,13 % sur MBPP, 98,02 % sur WikiSQL, 99,44 % sur CodeChefXLang, 92,54 % sur CodeTransOceanContest (code-vers-code), 86,45 % sur COIR-CodeSearchNet (NL2Code), 96,34 % sur Doc2Code, 92,37 % sur StackOverflowQA et 86,33 % sur SWE-Bench (contre 83,00 % pour la variante 0,5B). Il dépasse les alternatives plus grandes et montre des améliorations cohérentes par rapport à la variante 0,5B, en particulier sur les tâches complexes multi-fichiers et inter-repositories.
Conseils
Employez stratégiquement les préfixes d'instruction selon les besoins de recherche : nl2code, code2code, code2nl, techqa, code2completion. Maintenez la cohérence sur toute votre pipeline — utilisez le même type de préfixe pour les requêtes et les documents dans un scénario de recherche donné. La capacité renforcée de 1,5B est idéale pour les scénarios complexes impliquant plusieurs paradigmes de programmation et de grandes bases de code. Profilez vos cas d'usage pour déterminer la dimension Matryoshka optimale équilibrant qualité et ressources ; 256–512 dimensions est un bon point de départ pour l'indexation, 1536 pour le re-ranking. Utilisez une taille de lot de 256 pour l'alignement production avec l'entraînement. Le modèle est excellent pour la recherche inter-repositories et inter-langues, au vu des 99,44 % sur CodeChefXLang. Implémentez-le comme composant principal de recherche dans les systèmes RAG, associé à jina-reranker-v3.5 pour la précision sur les 50 meilleurs candidats. Utilisez la similarité cosinus pour comparer les embeddings. Optimal pour les déploiements d'entreprise exigeant à la fois performance et efficacité avec une latence inférieure à la seconde.


