Needle 2 porta gli agenti AI su Raspberry Pi, robot e dispositivi IoT

Needle 2 porta l'AI locale su Raspberry Pi, robot, dispositivi IoT e microcontrollori: pesa solo 14 MB, usa circa 28 MB di RAM e lavora offline.

I modelli generativi locali sono spesso associati a notebook potenti, GPU dedicate, decine di gigabyte di memoria e miliardi di parametri. Needle 2 offre un approccio completamente differente: si basa su soli 45 milioni di parametri, un singolo binario da 14 MB e circa 28 MB di RAM per una sessione completa.

Il progetto è sviluppato da Cactus Compute ed è pensato soprattutto per tre compiti precisi: tool calling, controllo dei dispositivi ed estrazione strutturata dei dati. Non vuole quindi competere con ChatGPT, Claude o Gemini nella generazione di testi aperti e nella conoscenza generale. L’obiettivo di Needle 2 è molto più circoscritto: interpretare una richiesta in linguaggio naturale e capire quale funzione invocare, con quali parametri, direttamente su dispositivi che normalmente sarebbero considerati troppo piccoli per ospitare un modello generativo.

Per accendere una lampada, impostare un termostato o ordinare a un piccolo robot di spostarsi non serve un modello capace di discutere di storia, scrivere codice complesso o rispondere a domande enciclopediche. Serve soprattutto tradurre una frase potenzialmente ambigua in una chiamata strutturata e affidabile.

Needle 2: 14 MB per un modello da 45 milioni di parametri

Cactus distribuisce Needle 2 come modello aperto con licenza Apache 2.0; i pesi sono disponibili anche su Hugging Face, mentre codice, motore di inferenza e strumenti per il fine-tuning si trovano nel repository GitHub.

Il modello completo occupa appena 14 MB e utilizza una quantizzazione denominata CQ2-bit, sviluppata dalla stessa società. Una sessione completa richiede indicativamente 28 MB di RAM. Cactus afferma di aver effettuato l’addestramento tenendo conto fin dall’inizio della quantizzazione: l’idea è evitare il forte degrado che modelli molto piccoli possono subire quando vengono quantizzati soltanto alla fine del processo.

All’avvio, il runtime identifica la CPU e seleziona le primitive più appropriate: Cactus dichiara supporto per ARM64, x86-64, ARMv7, RISC-V e WebAssembly, con esecuzione su Windows, Linux, Android, piattaforme Apple e Raspberry Pi. Il modello può quindi lavorare offline: una volta disponibile il binario, l’inferenza non richiede connessioni ai server Cactus o ad altri servizi cloud.

I numeri sulle prestazioni

Cactus dichiara per Raspberry Pi 5 prestazioni nell’ordine dei 500-800 token/s; su dispositivi VR come Meta Quest 3S e Apple Vision Pro la velocità dichiarata varia tra circa 400 e 1.500 token/s, mentre su smartphone economici della famiglia Samsung Galaxy A è indicato un intervallo approssimativo di 300-700 token/s.

Needle 2 genera prevalentemente strutture molto brevi. Un modello che deve restituire qualcosa come ciò che segue ha esigenze profondamente diverse da un LLM che deve produrre centinaia di parole di risposta:

{
"tool": "set_temperature",
"temperature": 22
}

Il risultato interessante è piuttosto un altro: la latenza necessaria per interpretare un comando e trasformarlo in un’azione può diventare estremamente bassa anche su CPU poco potenti.

Il modello è adatto anche i microcontrollori

L’obiettivo dichiarato da Cactus non sono soltanto smartphone e Raspberry Pi. La scheda pubblicata su Hugging Face indica che il modello può raggiungere anche microcontrollori come ESP32-P4; gli sviluppatori riportano inoltre esperimenti della comunità su ESP32-S3 con un footprint nell’ordine degli 11 MB in configurazioni specifiche.

Anche in questo caso, il modello è progettato principalmente per selezionare strumenti e compilare parametri: Needle 2 non deve “conoscere il mondo”. Deve bensì limitarsi ad accertare quale funzione corrisponde all’intenzione dell’utente e quali valori inserire nei relativi campi.

Per domotica, indossabili, piccoli robot, sistemi automotive o dispositivi embedded, Needle 2 può diventare un partner preziosissimo capace di massimizzare le abilità di ciascun dispositivo.

Anche l’estrazione dei dati diventa una tool call

La stessa architettura è utilizzata per un altro caso interessante: trasformare testo libero in dati strutturati.

Supponiamo di avere un testo contenente i dettagli su una fattura, l’importo e la scadenza: partendo dalla definizione di uno schema composto da cliente, importo e data_scadenza, Needle 2 può restituire i valori strutturati.

Cactus sottolinea che internamente non esiste una modalità separata dedicata all’estrazione: viene semplicemente dichiarato un unico strumento il cui lo schema rappresenta il record da ottenere. Poiché la grammatica consente soltanto quella chiamata, la struttura dell’output diventa vincolata per costruzione.

Ti consigliamo anche

Link copiato negli appunti