Un modello di codice aperto che ha imparato sul campo

Un modello di codice aperto che ha imparato sul campo
JetBrains ha rilasciato Mellum2.1 l'8 ottobre. È un modello mixture-of-experts da 12 miliardi di parametri pensato per gli agenti di programmazione, ed è disponibile su Hugging Face con licenza Apache 2.0. Da soli, questi dati ne farebbero uno dei tanti rilasci simili di questo mese. Ciò che lo distingue è come è stato addestrato.
Il post-training di Mellum2.1 usa l'apprendimento per rinforzo dentro veri ambienti di programmazione. Non un banco di prova simulato, e non un dataset statico di problemi risolti. Il modello esplora repository, modifica file e verifica le proprie modifiche, come farebbe uno sviluppatore al lavoro.
Perché l'assetto dell'addestramento conta più del numero di parametri
La maggior parte dei modelli di codice oggi viene addestrata a prevedere il blocco di codice successivo, poi messa a punto su esempi di buone patch. È una pipeline ragionevole e produce modelli capaci di completare e spiegare. Ma prepara male alla realtà disordinata di un repository che non compila, dove la prima correzione rompe un test e la seconda rompe qualcos'altro.
L'abilità che conta non è scrivere una funzione. È chiudere il ciclo: formulare un'ipotesi, cambiare qualcosa, osservare il risultato, correggere. L'addestramento con apprendimento per rinforzo in un ambiente reale premia esattamente questo comportamento, perché la ricompensa deriva dal fatto che la modifica abbia davvero funzionato.
È lo stesso cambiamento che ha reso utili gli agenti di programmazione fin dall'inizio. Un modello che sa solo scrivere codice è un autocompletamento sofisticato. Un modello che sa eseguire i test, leggere i fallimenti e riprovare è un collaboratore. I dati di addestramento di Mellum2.1 sono il ciclo stesso.

Un modello da 12B è una dimensione voluta
Dodici miliardi di parametri sono pochi rispetto alla frontiera. È proprio questo il punto. Un agente di programmazione opera in un ciclo stretto, leggendo file, eseguendo comandi e ispezionando diff, quindi viene chiamato di continuo. Un modello economico da eseguire e rapido a rispondere si può usare in modo molto più aggressivo di uno che costa denaro vero a ogni passo.
Il design mixture-of-experts rafforza la stessa idea. Le attivazioni per token restano contenute anche quando la capacità totale cresce, il che mantiene economica l'inferenza senza privare il modello della conoscenza. Per uno strumento che può attivarsi decine di volte per completare una sola attività, questo scambio è esattamente quello giusto.
Lungo tutto ottobre si sta formando uno schema. Modelli piccoli, specializzati e con licenza aperta compaiono per svolgere il lavoro ripetitivo dentro sistemi più grandi: qui JetBrains, poi i modelli decisionali di Liquid AI, la build 27B compressa di Underdog AI. Il modello di frontiera fissa il tetto. I modelli piccoli fissano il pavimento, e sul pavimento si spende la maggior parte dei token.
Pesi aperti come strategia di distribuzione
JetBrains non è un laboratorio che si contende corone nei benchmark. Vende strumenti per sviluppatori, e il suo interesse è renderli migliori, non custodire un modello. Rilasciare Mellum2.1 con Apache 2.0 lascia che il modello si diffonda nell'ecosistema, anche in editor concorrenti e harness per agenti.
Vale la pena notarlo. Quando un'azienda di strumenti apre il codice di un modello di programmazione, scommette che il valore stia nell'integrazione e nel flusso di lavoro, non nei pesi. È la stessa scommessa che molte aziende di infrastruttura stanno facendo quest'anno, ed è una scommessa che tende a invecchiare bene. Un modello che nessuno può adottare è un modello che non può diventare uno standard.
Proprio Apache 2.0 conta per l'adozione. Una licenza permissiva elimina la revisione legale che rallenta una grande impresa nel provare un nuovo modello. Per un'azienda i cui clienti sono esattamente quelle imprese, pubblicare un modello con licenza permissiva è un modo per seminare familiarità prima di vendere qualsiasi cosa.
Il confronto con i modelli di codice di frontiera
I modelli di codice di frontiera sono migliori sui problemi difficili. Questo non è in discussione e difficilmente cambierà presto. Ciò che è in discussione è se ogni attività di programmazione richieda la frontiera. La maggior parte no. Rinominare una funzione in tutto un progetto, aggiornare una dipendenza, scrivere un test per un comportamento esistente: sono attività comuni, noiose e ampiamente alla portata di un modello piccolo con un buon harness.
Mellum2.1 non cerca di battere i modelli più grandi sulle loro attività migliori. Cerca di essere abbastanza buono sulle attività che riempiono la giornata di uno sviluppatore. È un obiettivo più stretto e più duraturo, perché non dipende dal vincere una corsa che non vincerà.
Esiste anche una ragione strategica perché un'azienda di strumenti mantenga un modello di questa dimensione. Un modello abbastanza piccolo da girare in locale si può offrire senza un conto per singola query, il che elimina la misurazione che rende gli sviluppatori riluttanti a usare gli agenti liberamente. Un editor in grado di invocare il proprio modello senza un giro sulla rete è un prodotto diverso da uno che non può, e la differenza si vede in quanto gli utenti osano appoggiarvisi.
Perché l'apprendimento per rinforzo in un ambiente reale è diverso
La distinzione tra addestrarsi su esempi e addestrarsi su risultati merita un ultimo passaggio, perché è il dettaglio più rilevante del rilascio. Un modello addestrato su esempi impara come appare un buon output. Un modello addestrato su risultati impara quali azioni portano a buoni risultati, che è un'abilità diversa e più difficile.
Le azioni sono sequenze. Una patch che passa i test non è una decisione ma una catena di decisioni: dove guardare, cosa cambiare, cosa eseguire, come leggere un fallimento. L'apprendimento per rinforzo in un ambiente reale dà al modello un segnale su tutta la catena, ed è l'unico modo per imparare che certe scelte localmente ragionevoli portano in un posto sbagliato. È l'intuizione dietro l'uso di repository reali invece di un insieme curato di problemi.
Questo approccio è più costoso e più fragile da gestire rispetto al fine-tuning supervisionato, ed è per questo che più modelli non lo adottano. Tende anche a produrre agenti che si comportano meglio in situazioni sconosciute, perché si sono esercitati a riprendersi dall'errore invece di limitarsi a imitare il giusto.
Cosa tenere d'occhio
La prova ovvia è se un agente da 12B addestrato così regge su un vero compito di repository: diagnosticare un test che fallisce, proporre una patch, verificare il risultato. Se lo fa, la domanda interessante diventa quanto un piccolo modello aperto possa avvicinarsi alla qualità di codice di frontiera quando gli si dà un buon harness e un ciclo di retroazione stretto.
Questa domanda è più rilevante di qualsiasi singolo rilascio di modello. Se il divario tra un agente da 12B e un modello di frontiera si restringe nella pratica, allora gran parte del mercato degli agenti di programmazione smette di riguardare chi ha il modello migliore e comincia a riguardare chi ha i migliori strumenti attorno a un modello sufficientemente buono. Mellum2.1 è un dato piccolo e concreto in quella direzione, e la direzione è ciò che conta.
Articoli correlati
I Big Five usano l'IA in silenzio per le copertine dei libri
Wired rivela che almeno tre dei cinque grandi editori americani generano copertine e testi con l'IA senza dichiararlo né consultare gli autori.
Character.AI in bancarotta, Disney offre 20 milioni per i brevetti
Character.AI chiede la protezione fallimentare e Disney entra come stalking horse con 20 milioni, per asset scelti e una licenza brevetti. Del Serie A da 150 milioni restano i brevetti.
XERJ: un motore di ricerca locale per agenti di codice che ammette i propri numeri
XERJ indicizza il codice in locale con tree-sitter per far leggere meno file agli agenti: 2,7 volte meno token di grep, non i 40 del titolo. Il maintainer lo ammette da solo.
Smettiamo di insegnare agli agenti a guardare lo schermo: CLI-Anything dà una riga di comando a ogni programma
Non serve insegnare agli agenti a guardare lo schermo. CLI-Anything genera in sette fasi CLI testate e documentate per GIMP, Blender o LibreOffice, che l'agente si limita a digitare.