Vai al contenuto
di tendenza

Benchmark

basal-omni in locale: test con Ollama, llama.cpp e Mac

Ho eseguito basal-omni-mini Q8_0 su RTX 4090: 42 risposte corrette su 47, mediana di 137 ms. Ecco installazione e risultati.

Testo: 7 min di lettura

👁 115 letture

basal-omni è un modello decisionale di Remek Kinas: non scrive testi, ma sceglie una risposta da un elenco e indica quanto è sicuro. Dal 19 ottobre le versioni più piccole si possono eseguire senza una scheda grafica da server, con Ollama, llama.cpp o su Mac. Ho provato la versione mini in formato GGUF sulla mia RTX 4090 e l’ho valutata con lo stesso insieme di richieste in polacco usato in precedenza per Jev e altri modelli decisionali. Qui trovi i passaggi che hanno funzionato, i requisiti hardware e i risultati. Il test è stato condotto in polacco, non in italiano.

In breve (test del 19.10.2026)

  • basal-omni-1.0-mini Q8_0: file da 7,9 GB, ha occupato 5,1 GB di memoria della scheda con Ollama.
  • Categoria: 42 richieste polacche su 47; urgenza: 47 su 50; scelta dello strumento: 10 su 10.
  • Mediana di 137 ms per decisione; test completo (60 richieste) in 20 secondi.
  • Ollama da sola non basta: per ottenere le risposte con le probabilità serve il motore basal-serve.
  • Su Mac: versione MLX mini (8,6 GB) oppure GGUF Q8_0 su un Mac con 16 GB di memoria.

Quale versione scegliere in base all’hardware

Tutti i file sono disponibili sull’account Hugging Face di Remek, con licenza Apache-2.0. Le versioni GGUF e MLX gestiscono solo testo, senza immagini né audio.

Variante File Dimensione Compatibilità
mini GGUF Q8_0 basal-omni-1.0-mini-GGUF 7,9 GB Ollama, llama.cpp, scheda NVIDIA, Mac, CPU
mini GGUF Q6_K basal-omni-1.0-mini-GGUF 6,2 GB Come sopra, ma leggermente meno fedele all’originale
max GGUF Q8_0 / Q6_K basal-omni-1.0-max-GGUF 12,7 / 9,8 GB Ollama, llama.cpp
mini / max MLX 8-bit -MLX 8,6 / 13,6 GB Mac con Apple Silicon
1.1-max MLX 8-bit basal-omni-1.1-max-MLX 13,6 GB Mac con Apple Silicon
mini / max FP8 -FP8 12 / 14 GB vLLM su server NVIDIA
mini / max / ultra bf16 pesi originali circa 16 / 24 / 62 GB di memoria della scheda PyTorch, versione completa con immagini e audio

L’autore ha pubblicato solo le quantizzazioni Q8_0 e Q6_K, perché sono le uniche ad aver superato il suo controllo di fedeltà all’originale. Su 10 606 decisioni con 2-10 opzioni, Q8_0 sceglie la stessa risposta della versione bf16 nel 98,7% dei casi e Q6_K nel 97,1%. Q5_K_M e Q4_K_M non hanno superato il test. La versione ultra più grande, con 31 miliardi di parametri, non ha un file GGUF dell’autore.

Installazione su Windows con una scheda NVIDIA e Ollama

Questi sono i passaggi che ho seguito il 19 ottobre su Windows 11, con Ollama 0.40.5 (serve almeno la versione 0.35) e Python 3.12 tramite uv.

  1. Ambiente e motore basal 2.2. In modalità Ollama, il modello viene eseguito sulla scheda da Ollama, quindi mi è bastata la versione di PyTorch per CPU:
    uv venv --python 3.12 env
    uv pip install --python env/Scripts/python.exe torch --index-url https://download.pytorch.org/whl/cpu
    uv pip install --python env/Scripts/python.exe "basal @ https://github.com/rkinas/basal/archive/refs/tags/v2.2.0.tar.gz"
  2. Scarica il modello (circa 8 GB). Bastano il file Q8_0 e alcuni file di supporto: Modelfile, tokenizer, calibrazione e basal.json. Li ho scaricati uno per volta, ma è più semplice usare hf, installato insieme al motore:
    hf download Remek/basal-omni-1.0-mini-GGUF --local-dir basal-omni-1.0-mini-GGUF --exclude "*Q6_K*"
  3. Registra il modello in Ollama usando il Modelfile già presente nel repository:
    cd basal-omni-1.0-mini-GGUF
    ollama create basal-omni-1.0-mini:q8_0 -f Modelfile.Q8_0
    cd ..
  4. Avvia il server basal prima di Ollama:
    basal-serve --model ./basal-omni-1.0-mini-GGUF --mode ollama --ollama-model basal-omni-1.0-mini:q8_0 --port 8000
  5. Invia la prima richiesta con Python e la sola libreria standard. Il formato è lo stesso dell’API Jev, endpoint /v1/systemone. Il testo italiano qui sotto è una traduzione del prompt originale testato in polacco: non è stato ritestato in italiano.
    import json, urllib.request
    # Traduzione del prompt polacco usato nel test originale; non ritestata in italiano.
    body = {"state": "Dalle 9:00 il pannello non funziona, errore 500, l'intero team vendite è fermo.",
      "questions": {
        "dzial": {"type": "choice", "instructions": "A quale reparto va assegnata la richiesta?",
          "criteria": {"platnosci": "pagamenti e fatture", "awaria": "problema tecnico, qualcosa non funziona",
                       "sprzedaz": "domande prima dell'acquisto"}},
        "pilne": {"type": "noul", "instructions": "È necessario intervenire ancora oggi?",
          "criteria": {"true": "sì", "false": "no"}}}}
    req = urllib.request.Request("http://127.0.0.1:8000/v1/systemone",
      json.dumps(body, ensure_ascii=False).encode("utf-8"),
      {"Content-Type": "application/json; charset=utf-8"})
    print(json.load(urllib.request.urlopen(req))["answers"])

Ottieni l’opzione scelta, la probabilità di ciascuna opzione e il livello di sicurezza (confidence); per le domande sì/no, anche la probabilità della risposta «sì». Ecco due aspetti da tenere presenti, incontrati durante la prova o segnalati dall’autore:

  • Caratteri polacchi nella console di Windows. Una richiesta inviata con curl da Git Bash ha prodotto un errore di decodifica UTF-8. Con Python e una codifica esplicita ha funzionato senza problemi.
  • Il normale comando ollama run non basta. In quel caso il modello restituisce solo testo libero. Le risposte tipizzate con le probabilità sono calcolate da basal-serve, che legge le probabilità dei codici delle opzioni da un singolo token.
  • Limiti della modalità Ollama: massimo 20 opzioni per domanda e 4096 token per richiesta. Per documenti più lunghi e fino a 255 opzioni, l’autore consiglia la modalità llama.cpp.

Usare llama.cpp o un Mac

  • llama.cpp nello stesso processo: installa l’estensione basal[gguf] (llama-cpp-python 0.3.36 o successivo), poi avvia basal-serve --model ./basal-omni-1.0-mini-GGUF --mode gguf --gguf basal-omni-1.0-mini-GGUF/basal-omni-1.0-mini-Q8_0.gguf --port 8000. Con una scheda NVIDIA, llama-cpp-python va compilato con supporto CUDA. Non ho provato questa configurazione.
  • Mac con Apple Silicon: usa la modalità --mode mlx con l’estensione basal[mlx] e il repository -MLX, oppure GGUF tramite Metal. Secondo l’autore, mini Q8_0 funziona su un Mac con 16 GB di memoria; su M4 Pro, la versione MLX mini raggiunge 0,73 decisioni al secondo con 8 richieste simultanee e 173 ms per una singola domanda. Non ho verificato neanche questa configurazione: non ho un Mac.

Il test: 50 richieste in polacco e 10 decisioni sugli strumenti

Ho usato il set del 13 ottobre impiegato per valutare i modelli della classifica Artificial Analysis: 50 richieste rivolte a un negozio online (7 reparti e urgenza) e 10 conversazioni in cui l’assistente deve decidere se rispondere direttamente, chiamare uno strumento, chiedere chiarimenti o rifiutare. Domande e risposte attese sono le stesse: non ho modificato nulla per basal. Come nella prova precedente, il punteggio dei reparti è calcolato su 47 richieste, perché tre voci della chiave di valutazione erano discutibili (maggiori dettagli nella guida ai modelli decisionali AI). Anche basal le ha sbagliate, come tutti gli 11 modelli del 13.10. Il test è stato svolto in polacco: i risultati non misurano le prestazioni in italiano.

Modello Reparto (su 47) Urgenza (su 50) Strumenti (su 10)
basal-omni-1.0-mini Q8_0 (locale, 19.10) 42 47 10
Jev 1.13 (API, 13.10) 41 46 10
Microsoft-Decision-1 (API, 13.10) 44 42 10
Decider v1.1 27B (API, 13.10) 44 48 10
d1 di Liquid AI (API, 13.10) 42 43 10
Claude Haiku 5.5, LLM generalista (API, 13.10) 45 46 10
  • Il basal più piccolo si colloca a metà classifica tra i grandi modelli decisionali via API. Ha ottenuto una risposta corretta in più rispetto a Jev 1.13 e due in meno rispetto a Microsoft-Decision-1 e Decider. Ha però 4 miliardi di parametri e funziona su una scheda grafica domestica.
  • Ottimo risultato sull’urgenza: 47 su 50; solo Decider e GPT-6 Luna Decisions hanno fatto meglio, con 48. basal non ha considerato urgente il triplo carico sulla scheda (probabilità 0,05) né la macchina del caffè che faceva scintille (0,34), ma ha segnalato per errore come urgente uno spam sulle criptovalute.
  • Errori di classificazione: torta nuziale con stato «in preparazione» (vendite invece di consegna), macchina del caffè che faceva scintille (guasto invece di reclamo), offerta di database di indirizzi e-mail (vendite invece di spam), rimborso per un ordine annullato e codice sconto non funzionante.
  • Verifica la sicurezza sulle tue richieste. Tra le richieste con confidenza almeno pari a 0,9, basal ha risposto correttamente a 35 su 40, Jev a 37 su 39. Tra gli errori considerati sicuri ci sono l’offerta di database di indirizzi e-mail (0,95) e il codice sconto non funzionante (0,97). Per questo è utile il nuovo strumento basal-calibrate, che adatta le soglie ai tuoi esempi.
  • Velocità: mediana di 137 ms per decisione; 12 secondi per la prima richiesta, durante il caricamento del modello sulla scheda. Ho misurato i modelli via API dalla Polonia il 13.10, includendo il tempo di rete (Jev: 361 ms): non è quindi un confronto diretto. In locale, però, non paghi per i token e i dati restano sul computer.

Il test ha richiesto 20 secondi di attività della scheda. Ho eseguito una sola serie, con un solo ordine delle opzioni e la calibrazione inclusa nel file GGUF. Al termine ho scaricato il modello dalla memoria.

Quando conviene eseguire basal in locale

  • Se i dati non possono uscire dall’azienda, come richieste dei clienti, documenti o e-mail.
  • Se hai molte decisioni che consistono nello scegliere da un elenco: reparto, urgenza, argomento, autorizzazione di un testo o strumento da chiamare.
  • Se hai alcune centinaia di esempi etichettati, utili per calibrare le soglie e automatizzare solo le decisioni più sicure.

Ho descritto le origini del modello e i suoi risultati in classifica nell’articolo basal-omni al primo posto tra i modelli aperti in JevBench. Per scoprire altri modelli eseguibili sul tuo computer, consulta la raccolta AI in locale.

Kinetyra

// read next

More on this from NITIDO

Nitido

Nitido

ADMINISTRATOR
leggi ancheMidnight Mimosa: come capire se un telefono Android ha un virusguideMidnight Mimosa: come capire se un telefono Android ha un virusMidnight Mimosa può essere preinstallato su smartphone Android. Ecco come riconoscere i segnali e cosa fare se temi che il tuo telefono sia infetto.

Più letti

  1. 1Seedance di ByteDance: versioni, prezzi e test
  2. 2Claude Sonnet 5.5 prezzo: quanto costa nel 2026
  3. 325 matematici Fields Medal firmano lettera aperta contro OpenAI
// mappa del sito

Questa pagina in altre lingue9

nitido in numeri 0testi in archivio0notizie degli ultimi 7 giorni0modelli video nell'osservatorio
× ‹ ingrandimento ›