Soluzioni

Codestral Embed

May 28, 2025

By Mistral AI

Siamo lieti di rilasciare Codestral Embed, il nostro primo modello di embedding specializzato per il codice. Offre prestazioni particolarmente elevate per i casi d'uso di retrieval su dati di codice reali. 

Codestral Embed supera in modo significativo i principali embedder per codice oggi sul mercato: Voyage Code 3, Cohere Embed v4.0 e il modello di embedding large di OpenAI.

Codestral Embed può produrre embedding con dimensioni e precisioni diverse, e la figura seguente illustra i compromessi tra qualità del retrieval e costi di archiviazione. Codestral Embed con dimensione 256 e precisione int8 offre comunque prestazioni migliori di qualsiasi modello dei nostri concorrenti. Le dimensioni dei nostri embedding sono ordinate per rilevanza. Per qualsiasi dimensione target intera n, è possibile scegliere di mantenere le prime n dimensioni per ottenere un compromesso graduale tra qualità e costo.

Retrieval Embed

Risultati

Di seguito mostriamo le prestazioni di Codestral Embed per diverse categorie. I dettagli dei benchmark corrispondenti a ciascuna categoria sono disponibili nella tabella della sezione “Dettagli dei benchmark”.

SWE-Bench si basa su un dataset di issue GitHub reali e sulle correzioni corrispondenti, ed è particolarmente rilevante per la generazione aumentata dal retrieval per agenti di coding. Text2Code (GitHub) contiene benchmark rilevanti per fornire contesto al completamento o alla modifica del codice. Riteniamo che queste due categorie siano particolarmente rilevanti per gli assistenti di codice. 

 

 

Casi d'uso

Codestral Embed è ottimizzato per il retrieval del codice ad alte prestazioni e per la comprensione semantica. Abilita una serie di applicazioni pratiche nei workflow di sviluppo, soprattutto quando si lavora con corpora di codice su larga scala. 

1. Generazione aumentata dal retrieval 

Codestral Embed facilita il retrieval rapido ed efficiente del contesto per attività di completamento, modifica o spiegazione del codice. È ideale per il software engineering basato sull'AI in copiloti o framework per agenti di coding. 

2. Ricerca semantica del codice

Embed consente una ricerca accurata di snippet di codice rilevanti a partire da query in linguaggio naturale o in codice. È adatto all'uso all'interno di strumenti per sviluppatori, sistemi di documentazione e copiloti. 

3. Ricerca per similarità e rilevamento dei duplicati

Gli embedding del modello possono essere utilizzati per identificare segmenti di codice quasi duplicati o funzionalmente simili, anche in presenza di variazioni lessicali significative. Questo supporta casi d'uso come l'identificazione di codice riutilizzabile per evitare duplicati, o il rilevamento del riuso tramite copia-incolla per applicare le policy di licenza.

4. Clustering semantico e analytics del codice

Codestral Embed supporta il raggruppamento non supervisionato del codice in base a funzionalità o struttura. Questo è utile per analizzare la composizione dei repository, identificare pattern architetturali emergenti o alimentare sistemi automatizzati di documentazione e categorizzazione.

Disponibilità 

Codestral Embed è disponibile sulla nostra API con il nome `codestral-embed-2505` al prezzo di $0,15 per milione di token. È inoltre disponibile sulla nostra API batch con uno sconto del 50%. Per deployment on-prem, La invitiamo a contattarci per mettersi in contatto con il nostro Team di AI applicata. 

Consulti la nostra documentazione per iniziare e il nostro cookbook per esempi su come utilizzare Codestral Embed per il retrieval degli agenti di codice. 

Parametri di chunking

Per i casi d'uso di retrieval, pur potendo utilizzare l'intera dimensione del contesto di 8192 token, spesso è più efficiente suddividere il dataset in chunk. Consigliamo di usare chunk di 3000 caratteri con una sovrapposizione di 1000 caratteri. Chunk più grandi tendono a influire negativamente sulle prestazioni del sistema di retrieval. Consulti il nostro cookbook per maggiori informazioni sul chunking. 

Dettagli dei benchmark

I dettagli dei benchmark utilizzati per valutare il nostro modello sono disponibili nella tabella seguente. Riportiamo il punteggio medio per categoria e la macro-media (media dei punteggi di ciascuna categoria). 

Benchmark

Descrizione

Categoria

SWE-Bench lite

Esempi da SWE-Bench lite: dati issue GitHub reali, recuperare i file da modificare per risolvere l'issue a partire dallo stato specificato del repository. Massima rilevanza per il RAG degli agenti di codice.

swebench_lite

CodeSearchNet Code -> Code

Dato codice reale da GitHub, recuperare il codice che appare nello stesso contesto

code2code

CodeSearchNet doc2code

Data una docstring da codice GitHub reale, recuperare il codice corrispondente 

Text2code (github)

CommitPack

Dato un messaggio di commit da codice GitHub reale, recuperare i file modificati corrispondenti 

Text2code (github)

Spider

Recuperare codice SQL data una query

Text2SQL

WikiSQL

Recuperare codice SQL data una query

Text2SQL

Synthetic Text2SQL

Recuperare codice SQL data una query

Text2SQL

DM code contests

Abbinare le descrizioni dei problemi alle soluzioni corrette per siti di competizioni di programmazione (il corpus contiene soluzioni corrette e non corrette per ciascun problema).

Text2Code (Algorithms)

APPS

Abbinare le descrizioni dei problemi alle soluzioni per siti di competizioni di programmazione.

Text2Code (Algorithms)

CodeChef

Abbinare le descrizioni dei problemi alle soluzioni per siti di competizioni di programmazione.

Text2Code (Algorithms)

MBPP+

Abbinare domande algoritmiche a soluzioni per programmi Python per lo più di base

Text2Code (Algorithms)

DS 1000

Abbinare domande di data science alle implementazioni

Text2Code (Data Science)