Gráfico de E/S

Código

jina-code-embeddings

Tarea

Vector

Frontera de Pareto
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.…Parámetros (log)nDCG@10
Este modelo
En la frontera
Jina AI
Otros
CoIR
73.94
Parámetros
494M
Rango por score
1 / 31
Frontera de Pareto
En ella
Distribución de valores
AUC 0.8538
Corpus
Pares de traducción
Búsqueda documental
Código
Tarea
nl2code.passage
nl2code.query
nl2code.query → nl2code.passage
qa.passage
qa.query
qa.query → qa.passage
0.7330.000.200.400.600.80
Relacionados18.5%
Negativo difícil2.3%
No relacionados1.1%
Umbrales recomendados
FPR 0.1 · 0.544
FPR 0.01 · 0.733
FPR 0.001 · 0.813
FPR 0.0001 · 0.889
equilibrado · 0.427
AUC
0.8538
Techo de ruido
0.809
Caída de exhaustividad
0.160
Pares medidos
119 / 11k
Componentes del vector
-0.210.010.23
σ 0.0334 · 213k valores
Geometría del embedding
0896
Media por dimensión, pasa el cursor para ver el rango
Suelo de ruido
0.329
Dim. efectivas
55 / 896
Elija modelos para comparar
Publicaciones (1)

Descripción general

jina-code-embeddings-0.5b es un modelo de embeddings de código de 494M parámetros que mapea código de programación y consultas en lenguaje natural a un espacio semántico compartido de 896 dimensiones. Admite ventanas de contexto de 32K tokens, lo que permite la recuperación de funciones completas y de múltiples archivos, y usa aprendizaje de representaciones Matryoshka para una dimensionalidad flexible (64–896). Alcanza un rendimiento state-of-the-art en recuperación de código para su tamaño, superando a modelos con el triple de parámetros.

Métodos

El modelo se construye sobre un backbone transformer autoregresivo preentrenado en corpora de lenguaje natural y código. En lugar del agrupamiento bidireccional usado por los modelos de embedding tradicionales, extrae embeddings mediante Last-Token-Pooling desde la posición final de la secuencia. Esto es un hallazgo arquitectónico clave: la atención causal del modelo autoregresivo atiende de forma natural a todo el contexto de entrada, y el objetivo de preentrenamiento de generación de código produce representaciones semánticas ricas que se transfieren bien a la recuperación. El entrenamiento usa una receta de dos etapas: (1) preentrenamiento contrastivo en pares código-texto a gran escala (descripciones en lenguaje natural emparejadas con implementaciones de código) y (2) ajuste fino supervisado en conjuntos de datos de recuperación de código curados, con minería de negativos difíciles. La longitud de contexto de 32K se habilita mediante embeddings de posición rotacionales con una frecuencia base ajustada.

Rendimiento

El modelo alcanza un promedio general del 78,41 % y un promedio MTEB Code del 78,72 % en los benchmarks estándar de recuperación de código. Puntuaciones destacadas: 96,77 % en HumanEval, 89,01 % en MBPP, 98,31 % en WikiSQL, 99,70 % en CodeChefXLang, 90,37 % en CodeTransOceanContest (código a código), 85,73 % en COIR-CodeSearchNet (NL2Code), 95,98 % en Doc2Code y 91,04 % en StackOverflowQA. Supera a Qwen3-Embedding-0,6B y a modelos mayores, incluidos jina-embeddings-v4 (74,11 %) y gemini-embedding-001 (77,38 %), en tareas específicas de código. Con 494M parámetros, supera a varios modelos de 3 a 5 veces su tamaño, demostrando que el enfoque de backbone autoregresivo ofrece alta calidad semántica por parámetro.

Guía

Use siempre los prefijos de instrucción específicos por tarea adecuados: nl2code para búsqueda de lenguaje natural a código, code2code para similitud código a código, code2nl para código a lenguaje natural, techqa para preguntas y respuestas técnicas y code2completion para completado de código. Para bases de código grandes, implemente segmentación (chunking) en límites de función o de clase para permanecer dentro del límite de 32K tokens. La truncación Matryoshka a 128 o 256 dimensiones es adecuada para indexación de alto rendimiento; use las 896 dimensiones completas al re-ordenar (re-ranking) los mejores candidatos. Use similitud de coseno para comparar embeddings. El tamaño de lote óptimo es 512 y la longitud de secuencia, 512 tokens. El modelo está optimizado para Python, JavaScript, Java, PHP, Go y Ruby, pero admite más de 30 idiomas. En pipelines de RAG sobre código, combine jina-reranker-v3.5 como segunda etapa para maximizar la precisión en los 50 mejores candidatos.

Blogs que mencionan este modelo