Aperçu
jina-code-embeddings-0.5b est un modèle d'embedding de code de 494M paramètres qui mappe le code de programmation et les requêtes en langage naturel dans un espace sémantique partagé de 896 dimensions. Il prend en charge des fenêtres de contexte de 32K tokens, permettant la recherche de fonctions entières et de multi-fichiers, et utilise l'apprentissage de représentation Matryoshka pour une dimensionalité flexible (64–896). Il atteint un état de l'art en recherche de code pour sa taille, surpassant des modèles avec 3× plus de paramètres.
Méthodes
Le modèle repose sur un backbone transformeur autoregressif pré-entraîné sur des corpus de langage naturel et de code. Au lieu du pooling bidirectionnel utilisé par les modèles d'embedding traditionnels, il extrait les embeddings via Last-Token-Pooling depuis la position finale de la séquence. C'est un point clé de l'architecture : l'attention causale du modèle autoregressif porte naturellement attention sur l'intégralité du contexte d'entrée, et l'objectif de pré-entraînement de génération de code produit des représentations sémantiques riches qui se transfèrent bien en recherche. L'entraînement utilise une recette en deux étapes : (1) pré-entraînement contrastif sur de grandes paires de code et de texte (descriptions en langage naturel appairées avec des implémentations de code) et (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.
Performance
Le modèle atteint une moyenne globale de 78,41 % et une moyenne MTEB Code de 78,72 % sur les benchmarks standards de recherche de code. Scores notables : 96,77 % sur HumanEval, 89,01 % sur MBPP, 98,31 % sur WikiSQL, 99,70 % sur CodeChefXLang, 90,37 % sur CodeTransOceanContest (code-vers-code), 85,73 % sur COIR-CodeSearchNet (NL2Code), 95,98 % sur Doc2Code et 91,04 % sur StackOverflowQA. Il surpasse Qwen3-Embedding-0,6B et des modèles plus grands, dont jina-embeddings-v4 (74,11 %) et gemini-embedding-001 (77,38 %), sur les tâches spécifiques au code. Avec 494M paramètres, il surpasse plusieurs modèles de 3 à 5 fois sa taille, démontrant que l'approche backbone autoregressif offre une haute qualité sémantique par paramètre.
Conseils
Utilisez toujours les préfixes d'instruction spécifiques à la tâche appropriés : nl2code pour la recherche langage-naturel-vers-code, code2code pour la similarité code-vers-code, code2nl pour le code-vers-langage-naturel, techqa pour les questions-réponses techniques et code2completion pour la complétion de code. Pour les grandes bases de code, implémentez le découpage en blocs (chunking) aux limites de fonction ou de classe pour rester dans la limite de 32K tokens. La troncature Matryoshka à 128 ou 256 dimensions convient à l'indexation à haut débit ; utilisez les 896 dimensions complètes pour le re-ranking des meilleurs candidats. Utilisez la similarité cosinus pour comparer les embeddings. La taille de lot optimale est 512, la longueur de séquence 512 tokens. Le modèle est optimisé pour Python, JavaScript, Java, PHP, Go et Ruby, mais prend en charge plus de 30 langues. Pour les pipelines RAG sur le code, associez jina-reranker-v3.5 comme seconde étape pour maximiser la précision sur les 50 meilleurs candidats.



