Alpha 0.1.0

Runlix

Inferenza locale su Apple Silicon, senza Python.

Anno
2026
Area
AI, Desktop
Stack
Rust · MLX · mlx-c · Avalonia · .NET

Il problema

Su Apple Silicon i modelli MLX si usano con Python: ambienti, dipendenze, cache sparse e un terminale. Il punto non è la qualità del modello, è tutto il contorno che serve per farlo partire.

Vincoli

  • Niente Python nel bundle: un'app sola da trascinare in Applicazioni.
  • Memoria e determinismo misurati, non stimati: soglie nei test, non nei propositi.
  • Una generazione per volta: meglio un limite dichiarato che una coda che finge.
  • I dati dell'utente non si toccano: le prove non leggono né scrivono la cartella vera.

Architettura

  • Core in Rust (runlix-core) sopra mlx-c vendorizzato: le correzioni vivono in patch, mai in modifiche in loco.
  • App desktop Avalonia/.NET che pilota il core; bundle .app da 228 MB, DMG da 81 MB.
  • Sito di prodotto separato: download, area riservata, licenze e piani, con font auto-ospitati.
  • 691 prove per lingua e oracoli di generazione fissati da seme: la stessa sequenza, sempre.

Decisioni che contano

L'ordinamento del vocabolario era il costo

Su 128.000 logit si ordinava tutto a ogni token: 1,77 ms su circa 2 ms totali. I candidati ora si materializzano a scaglioni — 64, poi ×8 — e la velocità passa dal 64% al 93% di quella avida.

Vendorizzato, tradotto, mai modificato in loco

mlx-c resta intatto e ogni correzione vive in una patch: se non si applica più, la build fallisce e dice quale. Le architetture sono riscritte in Rust idiomatico, e ognuna ha il suo oracolo. Senza oracolo non si dichiara finita.

La soglia di memoria si misura, non si stima

Picco deterministico a 1115 MB valutando per strato, contro 1558 senza. Le soglie precedenti sono state rimisurate quando è cambiato ciò che misuravano.

Dove è arrivato

Alpha 0.1.0: 688 prove su 691 verdi, DMG firmato ma non ancora notarizzato, una generazione per volta e solo safetensors MLX. Il sito di prodotto è online su runlix.it.