Panoramica
jina-code-embeddings-0.5b è un modello di embedding del codice da 494M parametri che mappa il codice di programmazione e le query in linguaggio naturale in uno spazio semantico condiviso di 896 dimensioni. Supporta finestre di contesto di 32K token, abilitando la retrieval di intere funzioni e di più file, e usa l'apprendimento delle rappresentazioni Matryoshka per una dimensionalità flessibile (64–896). Raggiunge prestazioni state-of-the-art nella retrieval del codice per la sua dimensione, superando modelli con 3 volte i parametri.
Metodi
Il modello è basato su un backbone transformer autoregressivo pre-addestrato su corpora di linguaggio naturale e codice. Invece del pooling bidirezionale usato dai modelli di embedding tradizionali, estrae gli embedding tramite Last-Token-Pooling dalla posizione finale della sequenza. Questo è un insight architettonico chiave: l'attenzione causale del modello autoregressivo si concentra naturalmente sull'intero contesto di input, e l'obiettivo di pre-addestramento per la generazione di codice produce rappresentazioni semantiche ricche che si trasferiscono bene alla retrieval. L'addestramento usa una ricetta in due fasi: (1) pre-addestramento contrastivo su coppie codice-testo su larga scala (descrizioni in linguaggio naturale abbinate a implementazioni di codice) e (2) fine-tuning supervisionato su dataset di retrieval del codice curati, con mining di negativi difficili. La lunghezza di contesto di 32K è abilitata tramite embedding posizionali rotazionali con frequenza di base calibrata.
Prestazione
Il modello raggiunge una media generale del 78,41% e una media MTEB Code del 78,72% sui benchmark standard di retrieval del codice. Punteggi degni di nota: 96,77% su HumanEval, 89,01% su MBPP, 98,31% su WikiSQL, 99,70% su CodeChefXLang, 90,37% su CodeTransOceanContest (codice-a-codice), 85,73% su COIR-CodeSearchNet (NL2Code), 95,98% su Doc2Code e 91,04% su StackOverflowQA. Supera Qwen3-Embedding-0,6B e modelli più grandi, inclusi jina-embeddings-v4 (74,11%) e gemini-embedding-001 (77,38%), nei task specifici del codice. Con 494M parametri, supera diversi modelli da 3 a 5 volte la sua dimensione, dimostrando che l'approccio a backbone autoregressivo offre un'alta qualità semantica per parametro.
Orientamento
Usa sempre i prefissi di istruzione specifici per il task appropriati: nl2code per la ricerca da linguaggio naturale a codice, code2code per la similarità codice-a-codice, code2nl per codice-a-linguaggio-naturale, techqa per le Q&A tecniche e code2completion per la completazione del codice. Per codebase grandi, implementa il chunking ai confini di funzione o di classe per restare entro il limite di 32K token. La troncatura Matryoshka a 128 o 256 dimensioni è adatta all'indicizzazione ad alto throughput; usa le 896 dimensioni complete per il re-ranking dei candidati principali. Usa la similarità coseno per il confronto degli embedding. La batch size ottimale è 512, la lunghezza di sequenza 512 token. Il modello è ottimizzato per Python, JavaScript, Java, PHP, Go e Ruby ma supporta 30+ lingue. Per pipeline RAG sul codice, abbina jina-reranker-v3.5 come seconda fase per massimizzare la precisione sui top-50 candidati.



