E/A-Diagramm

Code

jina-code-embeddings

Aufgabe

Vektor

Pareto-Front
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.…Parameter (log)nDCG@10
Dieses Modell
Auf der Front
Jina AI
Andere
CoIR
73.94
Parameter
494M
Rang nach Score
1 / 31
Pareto-Front
Darauf
Werteverteilung
AUC 0.8538
Korpus
Übersetzungspaare
Dokumentensuche
Code
Aufgabe
nl2code.passage
nl2code.query
nl2code.query → nl2code.passage
qa.passage
qa.query
qa.query → qa.passage
0.7330.000.200.400.600.80
Verwandt18.5%
Hartes Negativ2.3%
Unverwandt1.1%
Empfohlene Schwellenwerte
FPR 0.1 · 0.544
FPR 0.01 · 0.733
FPR 0.001 · 0.813
FPR 0.0001 · 0.889
ausgewogen · 0.427
AUC
0.8538
Rauschgrenze
0.809
Recall-Kante
0.160
Gemessene Paare
119 / 11k
Vektorkomponenten
-0.210.010.23
σ 0.0334 · 213k Werte
Einbettungsgeometrie
0896
Mittelwert je Dimension, für den Bereich überfahren
Rauschboden
0.329
Effektive Dim.
55 / 896
Wählen Sie Modelle zum Vergleichen aus
Publikationen (1)

Überblick

jina-code-embeddings-0.5b ist ein Code-Embedding-Modell mit 494M Parametern, das Programmcode und Natural-Language-Queries in einen gemeinsamen 896-dimensionalen semantischen Raum abbildet. Es unterstützt 32K-Token-Kontextfenster, ermöglicht damit das Retrieval ganzer Funktionen und mehrerer Dateien, und nutzt Matryoshka-Repräsentationslernen für flexible Dimensionalität (64–896). Es erreicht state-of-the-art Code-Retrieval-Performance in seiner Größe und übertrifft Modelle mit der 3-fachen Parameterzahl.

Methoden

Das Modell basiert auf einem autoregressiven Transformer-Backbone, der auf Natural-Language- und Code-Korpora vortrainiert wurde. Anstatt des bidirektionalen Poolings traditioneller Embedding-Modelle extrahiert es Embeddings via Last-Token-Pooling von der finalen Position der Sequenz. Das ist eine wichtige architektonische Erkenntnis: Die kausale Attention des autoregressiven Modells achtet natürlicherweise auf den gesamten Eingabe-Kontext, und das Code-Generierungs-Pretraining-Ziel erzeugt reichhaltige semantische Repräsentationen, die sich gut auf Retrieval übertragen. Das Training verwendet ein zwei-stufiges Rezept: (1) kontrastives Pretraining auf großskaligen Code-Text-Paaren (Natural-Language-Beschreibungen gepaart mit Code-Implementierungen), (2) supervidiertes Feintuning auf kuratierten Code-Retrieval-Datensätzen mit Hard-Negative-Mining. Die 32K-Kontextlänge wird über rotary position embeddings mit abgestimmter Basisfrequenz ermöglicht.

Leistung

Das Modell erreicht einen Gesamt-Durchschnitt von 78,41 % und einen MTEB-Code-Durchschnitt von 78,72 % über die Standard-Code-Retrieval-Benchmarks. Hervorzuhebende Werte: 96,77 % auf HumanEval, 89,01 % auf MBPP, 98,31 % auf WikiSQL, 99,70 % auf CodeChefXLang, 90,37 % auf CodeTransOceanContest (code-zu-code), 85,73 % auf COIR-CodeSearchNet (NL2Code), 95,98 % auf Doc2Code und 91,04 % auf StackOverflowQA. Es übertrifft Qwen3-Embedding-0,6B und größere Modelle, darunter jina-embeddings-v4 (74,11 %) und gemini-embedding-001 (77,38 %), in code-spezifischen Aufgaben. Mit 494M Parametern übertrifft es mehrere Modelle, die 3–5-mal so groß sind, und zeigt, dass der autoregressive-Backbone-Ansatz eine hohe semantische Qualität pro Parameter liefert.

Anleitung

Immer passende task-spezifische Instruktion-Präfixe verwenden: nl2code für Natural-Language-zu-Code-Suche, code2code für Code-zu-Code-Ähnlichkeit, code2nl für Code-zu-Natural-Language, techqa für technische Q&A und code2completion für Code-Vervollständigung. Für große Codebasen Chunking an Funktions- oder Klassen-Grenzen implementieren, um innerhalb der 32K-Token-Grenze zu bleiben. Matryoshka-Trunkierung auf 128 oder 256 Dimensionen eignet sich für hochdurchsatzfähiges Indexieren; für das Re-Ranking der Top-Kandidaten die vollen 896 Dimensionen verwenden. Cosine-Ähnlichkeit für den Embedding-Vergleich verwenden. Optimale Batch-Größe ist 512, Sequenzlänge 512 Tokens. Das Modell ist für Python, JavaScript, Java, PHP, Go und Ruby optimiert, unterstützt aber 30+ Sprachen. Für RAG-Pipelines über Code mit jina-reranker-v3.5 als zweite Stufe kombinieren, um die Präzision auf die Top-50-Kandidaten zu maximieren.

Blogs, die dieses Modell erwähnen