Oggi, Mistral AI ha rilasciato Leanstral 1.5. Si tratta di un modello di agente per codice sviluppato per Lean 4, una piattaforma per la dimostrazione assiomatica automatizzata. Il modello mira all’automatizzazione di processi di prova matematica e all’ingegneria delle dimostrazioni. I pesi sono resi disponibili al pubblico mediante la licenza Apache 2.0, inoltre c'è un endpoint API gratuito, leanstral-1-5, attualmente attivo.

Cos'è Leanstral 1.5

Leanstral 1.5 è un modello di agente progettato specificatamente per Lean 4, un sistema per la verifica formale. La verifica formale richiede la verifica meccanica di ogni passo logico in una dimostrazione matematica; Lean 4 è capace di rappresentare concetti avanzati, ad esempio, spazi perfettoide o proprietà di frammenti Rust.

L'architettura del modello adotta un paradigma Mistura di Esperti (MoE). L'MoE assegna a ogni token alcuni esperti specializzati, riducendo i costi computazionali mantenendo grandi capacità complessive. Leanstral 1.5 utilizza 128 esperti, con 4 attivi per token.

I parametri totali sono 119 miliardi, di cui 6,5 miliardi sono attivati per token. La lunghezza contestuale è di 256m token. L'input accetta testo e immagini, mentre l'output è esclusivamente testuale.

Come Mistral ha addestrato Leanstral 1.5

L’addestramento di Leanstral 1.5 avviene in tre fasi principali: fase intermedia, sintonizzazione supervisionata e apprendimento rinforzato tramite CISPO. Gli sviluppatori hanno utilizzato due ambienti di apprendimento per sviluppare comportamenti agentivi.

    • Ambiente a più passaggi: il modello riceve un'asserzione matematica e deve dimostrarla o smentirla. Pone una dimostrazione, riceve una risposta dal compilatore Lean e si avvale di iterazioni successive finché non ha successo o esaurisce il budget.
    • Ambiente di agente con codice: Leanstral opera all’interno di un filesystem grezzo, modifica file, esegue comandi bash, utilizza il server linguaggio Lean. Questo server fornisce informazioni sulle mete, gli errori e i tipi in tempo reale, permettendo il completamento di dimostrazioni parziali e la costruzione di lemmi ausiliari.

Le correttezze vengono verificate da un fork di SafeVerify messo a punto da Mistral, in conformità con criteri matematici prestabiliti.

Prestazioni e benchmark

Gli sviluppatori di Mistral comunicano che Leanstral 1.5 raggiunge un 100% di saturazione su miniF2F, risolvendo completamente il val+test. Inoltre, il modello risolve 587 su 672 problemi nel benchmark PutnamBench.

Imposta nuovi standard sull'algebra in benchmark FATE-H e FATE-X, rispettivamente all'87% e al 34%. Le passate metriche su FLTEval crescono da 21.9 a 28.9 per pass@1, e da 31.9 a 43.2 per pass@8.

I benchmark completati da Leanstral 1.5 includono:

    • miniF2F (val + test): 100% (completo, per Mistral)
    • PutnamBench: 587 / 672 (~$4 per problema)
    • FATE-H: 87% (nuovo stato dell'arte
    • FATE-X: 34% (nuovo stato dell'arte
    • FLTEval pass@1: 28.9 (da 21.9)
    • FLTEval pass@8: 43.2 (batte Opus 4.6’s 39.6)

Su PutnamBench, Leanstral supera Seed-Prover 1.5 di 7 problemi, a un costo circa 1/7 rispetto a Seed-Prover (che stima circa $300 a problema per un budget di 10 H20-days per problema). In confronto, Aleph Prover costa intorno a $54 a $68 per problema.

La scalabilità durante i test caratterizza maggiormente il modello. Aumentare il budget di token per prova migliora nettamente le performance di PutnamBench Pass@8, risolvendo 44 problemi a 50k, 244 a 200k, 493 a 1M e 587 a 4M.

Casi d’uso

Apart from mathematics, Leanstral 1.5 also verifies code correctness. Mistral illustrates two case studies relevant to developers.

    • Leanstral verificò la complessità temporale O(log n) per un’implementazione pratica di un albero AVL.
    • Trovò bug autentici in codice open-source, identificando 5 errori precedentemente non segnalati.

Nel primo caso, la dimostrazione utilizzò induzione strutturale e tracciamento temporale monadico via TimeM; richiese 2,7 milioni di token e 22 compattazioni.

Esempio reale di risposta di Leanstral

In un bug nel repository datrs/varinteger per la funzione di segno nella decodifica zigzag, l’espressione (value + 1) causò overflow per Std.U64.MAX, scatenando crash in modalità debug o corruzione silente in release.

Nel contesto pratico, team di sviluppo possono completare dimostrazioni parziali all'interno di repository, generare proprietà di correttezza di funzioni, stress-testare codice Rust verificando o smentendo invarianti.

Getting Started: codice e distribuzione

Il percorso più semplice per iniziare è Mistral Vibe, l’interfaccia grafica di agente. Leanstral funziona sul piano gratuito di Mistral. È necessario abilitare gli “Labs modelli” nel proprio account e creare una chiave di accesso.

Installare Vibe, aggiungere l’agente Lean, quindi avviarlo:

Copy Code
Use a different Browser

1. Set up Mistral Vibe

uv tool install mistral-vibe

uv tool update mistral-vibe

vibe --setup

2. Inside vibe, install Leanstral, then leave vibe

/leanstall

exit

3. Launch the Lean agent

vibe --agent lean

Per auto-ospitare, installare vLLM 0.24.0 o successivo, quindi servire i