Ü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.



