Salta al contenuto

Ingegneria

Nessun server da avviare. Il modello risponde da dentro l'applicazione.

Runlix esegue i modelli nel proprio processo: niente da lanciare prima, sei famiglie di modelli che funzionano nativamente, e la velocità misurata contro mlx-lm con accanto la data della misura.

Aggiornato 2026-09-13Misurato 2026-09-07

Apri l'applicazione e fai una domanda. La sequenza è tutta qui.

Niente da avviare prima Nessun servizio in secondo piano, nessuna finestra di terminale, niente in ascolto su una porta se non l'accendi tu.
Niente Python, da nessuna parte Né nell'inferenza né nell'applicazione: 229 MB installata, 80 MB da scaricare, e la costruzione fallisce se un interprete ci rientra.
Sei famiglie, nativamente E per le altre, una risposta chiara prima del download: non ancora, o mai.
86–93% di mlx-lm Misurato il 7 settembre 2026. I quattro rapporti sono più sotto, col giorno accanto.

Sembra poca cosa finché non è il giorno in cui non lo è. Quasi tutti i modi di eseguire un modello sul proprio Mac mettono in mezzo un programma separato: l'applicazione su cui clicchi parla via rete con un motore scritto da qualcun altro, che a sua volta gira su un ambiente linguistico con le sue versioni e i suoi modi di rompersi. Quando quella catena si inceppa, la cosa che ha smesso di funzionare non è la cosa che hai installato, e il messaggio d'errore appartiene a un programma che non hai mai scelto.

Runlix carica il modello dentro di sé. Chiudi l'applicazione e non resta acceso niente.

Il mio modello gira davvero?

Sei famiglie funzionano nativamente:

  • phi3
  • llama
  • qwen2
  • qwen3
  • gemma3_text
  • deepseek_v2

In pratica coprono la maggior parte di ciò che si scarica — e comprendono modelli il cui nome non lo lascia intuire, perché i modelli Mistral sono costruiti sulla forma di llama e girano nativamente anche loro. Runlix ti dice quale famiglia ha riconosciuto invece di lasciartelo indovinare.

Per un modello fuori da quei sei la risposta è non ancora, col suo motivo. Se mlx-lm conosce la famiglia, è una che il motore può imparare, e l'elenco cresce una famiglia verificata alla volta. Se non la conosce nessuno, Runlix dice anche questo. Non c'è un secondo motore più lento nascosto dietro il primo: quello che esegui è quello che ottieni.

E lo scopri prima del download, non dopo. Scaricare otto gigabyte per accorgersi che il modello non si carica è l'esperienza ordinaria di chi esegue l'intelligenza artificiale in locale, ed è l'unica cosa qui dentro progettata per non succedere: Runlix legge prima la descrizione che il modello dà di sé su Hugging Face e ti dà un verdetto con accanto scritto il perché. Sta tutto nella pagina dei modelli.

In cosa è diverso dall'impianto solito

Se hai già eseguito modelli in locale, quasi certamente hai usato un impianto a due metà: un servizio in secondo piano che tiene il modello, e una finestra che ci parla. Quel disegno ha vantaggi veri, e vale la pena dirli per primi — il servizio resta acceso quando chiudi la finestra, più applicazioni possono condividere lo stesso modello caricato, e un crash del modello non si porta via la tua interfaccia.

Un servizio più una finestra

  • Il servizio resta acceso quando chiudi la finestra.
  • Più applicazioni possono condividere lo stesso modello caricato.
  • Un crash del modello non si porta via la tua interfaccia.
  • Qualcosa di separato da installare e tenere aggiornato.
  • Una porta, che qualcos'altro sul tuo Mac potrebbe già volere.
  • Quando una risposta non arriva, quale metà è bloccata tocca a te scoprirlo.
  • Spesso Python sotto: un secondo ambiente software con le sue versioni e i suoi modi di rompersi di martedì.

Runlix

  • Una cosa da installare, una da chiudere.
  • Un posto solo da cui può arrivare un guasto — mai la domanda su quale metà.
  • Nessuna porta aperta se non la chiedi.
  • Nessun secondo ambiente software da mantenere.
  • Quando chiudi, non resta acceso niente.
  • Non puoi condividere un modello caricato fra applicazioni.
  • Un crash del modello si porta via l'applicazione.

Nessuna delle due risposte è giusta in assoluto. Questa è giusta se vuoi che il modello sia parte di un'applicazione invece che infrastruttura da mantenere.

Quanto va veloce, e rispetto a cosa

La velocità da sola è un numero senza significato. Il modo onesto di dichiararla è come rapporto rispetto a un riferimento che chiunque può eseguire — mlx-lm, la libreria che usano gli esempi di Apple — con accanto il giorno in cui la misura è stata presa, perché un numero in una pagina di marketing non ha nessuno che lo mantenga.

Generazione avida 89% 253 tok/s · riferimento 284 tok/s
Temperatura 0,8 93% 229 tok/s · riferimento 246 tok/s
Penalità di ripetizione 1,1 93% 228 tok/s · riferimento 246 tok/s
Prompt da 4096 token 86% 1865 ms · riferimento 1609 ms

Riferimento: mlx-lm = 100%. Misurato il 7 settembre 2026 su Llama-3.2-1B a 4 bit. Picco di memoria sul prompt da 4096 token: 1115 MB.

Runlix sta dietro al riferimento su ogni riga, ed è dichiarato invece che nascosto. Fra l'86% e il 93% di una libreria che ha anni di attenzione alle spalle, in cambio del fatto che il modello vive dentro l'applicazione invece che dietro una porta di rete. Se l'unica cosa che ti interessa sono i token al secondo, il riferimento è lì e puoi eseguirlo.

Cosa fa al tuo Mac

Puoi tenere più di un modello caricato insieme, e passare dall'uno all'altro senza aspettare ogni volta una ricarica. Quando non c'è più spazio, a farsi da parte è quello che non usi da più tempo — mai quello che ti sta rispondendo in quel momento.

Il limite non è la RAM stampata sulla scatola. È quanta ne dichiara disponibile il sistema grafico, che l'applicazione chiede invece di darla per scontata.

23347 MB Quanto ha offerto davvero un Mac da 24 GB, chiesto invece che dato per scontato.
1,68× Quanto costa una domanda lunga oltre ai pesi del modello. Misurato su un modello da 1B, arrotondato al doppio per prudenza.
1 Modelli tenuti caricati quando la macchina non dichiara il proprio tetto — invece di tirare a indovinare.

Cosa vuol dire tutti i giorni: su un Mac con memoria abbondante puoi lasciare caricati insieme un modello piccolo e veloce e uno grande e accurato, e spostarti dall'uno all'altro dentro una conversazione senza pause. Su una macchina con meno margine, l'applicazione fa spazio in silenzio e ricarica quando torni — più lenta, ma mai un rifiuto e mai un crash per memoria finita.

Cosa si rifiuta di fare, e quanto ti costa

Si rifiuta invece di indovinare

Alcuni modelli si descrivono in modi che questo motore non implementa. Quando succede il modello non si carica, col motivo dichiarato, invece di caricarsi lo stesso.

Quel rifiuto è la funzionalità. Un motore di inferenza quasi giusto non va in crash: produce testo scorrevole, sicuro di sé e sbagliato, e te ne accorgi settimane dopo oppure mai. Potendo scegliere fra un errore oggi e uno sbaglio plausibile che forse non scoprirai mai, questo sbaglia oggi.

Due limiti da sapere prima di cominciare: modelli solo in formato MLX — niente GGUF, che è una decisione e non un angolo incompiuto — e niente modelli di visione. Entrambe le cose sono verificate su Hugging Face prima che tu spenda il download.

E se va in crash, si porta via l'applicazione

Eseguire il modello dentro l'applicazione è uno scambio, ed ecco il lato che paghi: se il codice del modello va in crash, si porta via l'applicazione. Non c'è un server in mezzo ad assorbirlo.

È stato scelto deliberatamente, e la via d'uscita è tenuta pronta: il motore è separato dall'applicazione da un confine disegnato apposta per poterlo rimettere in un processo suo il giorno in cui quello scambio smettesse di convenire.

Dirlo chiaramente fa parte del punto. Stai scegliendo un compromesso, non ricevendo un pasto gratis.

Se vuoi controllare

Niente di quanto sopra chiede di essere creduto.

La correttezza

Si usa mlx-lm per generare l'esatta sequenza di parole che un modello deve produrre a una certa domanda; il motore deve riprodurla, e la costruzione fallisce se non ci riesce. Dove il riferimento stesso è genuinamente indeciso fra due parole, la prova registra il margine invece di pretendere accordo su un testa o croce.

L'elenco delle sei

Non è un'affermazione in un dépliant. Ogni famiglia è registrata insieme alla versione di mlx-lm da cui è stata tradotta e alla data dell'ultima verifica, e la costruzione fallisce se una famiglia è dichiarata supportata senza entrambe.

I numeri di velocità

Ogni rapporto qui sopra porta il giorno in cui è stato preso e il modello su cui è stato preso. Rifalli quando vuoi: il riferimento è una libreria pubblica.

Il codice di terze parti

L'interfaccia MLX di Apple viaggia dentro il progetto esattamente come pubblicata, con l'impronta verificata prima di ogni costruzione. Le correzioni stanno in file di patch separati, e la costruzione si ferma e nomina la patch se una non si applica più — così una modifica non può sparire in silenzio al prossimo aggiornamento.

L'ingegneria dietro questi controlli — perché il nome sbagliato di una funzione attraverso il confine fra due linguaggi non è un errore di compilazione, e come un nome giusto col tipo sbagliato ha trasformato un tetto di memoria da 23 GB in 2,8 GB senza mai andare in crash — è scritta nelle note, che è il posto dove quella roba va.