ML sul dispositivo (on-device ML) — esecuzione di modelli di machine learning direttamente sul dispositivo mobile senza inviare dati a un server. Secondo un rapporto di Google AI, 2025, oltre il 70% degli utenti preferisce app con on-device ML per la privacy e l'assenza di latenza di rete. Core ML di Apple, TensorFlow Lite di Google e ML Kit permettono di risolvere attività di Vision, NLP, riconoscimento facciale e di oggetti interamente sul dispositivo — senza internet e con un consumo energetico minimo.
Punti chiave
Il ML sul dispositivo (on-device ML) è un approccio in cui i modelli di machine learning vengono eseguiti direttamente sul dispositivo mobile senza inviare dati a un server remoto. Privacy è il vantaggio principale: i dati dell'utente non lasciano mai il dispositivo. Secondo una ricerca di Google (2024), il 63% degli utenti rifiuta funzionalità ML che richiedono l'invio di dati a un server. On-device ML elimina la latenza di rete, funziona offline e riduce il consumo energetico grazie all'accelerazione hardware.
On-device ML elabora i dati in millisecondi invece che in secondi — fondamentale per il riconoscimento facciale e di oggetti in tempo reale. Nessuna connessione Internet richiesta è un altro vantaggio: le funzionalità ML sono disponibili in modalità aereo e in regioni con connettività instabile. Core ML utilizza il Neural Engine nei chip Apple A12+, fornendo 11 trilioni di operazioni al secondo con un consumo inferiore a 1 W. Per le app mobili, on-device ML è diventato lo standard de facto per attività di Vision, NLP e riconoscimento di oggetti.
Il ML nelle app mobili viene utilizzato per autenticazione facciale (Face ID), filtri AR in Snapchat e Instagram, tracker fitness con Pose Detection, scansione OCR in Adobe Scan e input predittivo nelle tastiere. I modelli personalizzati per attività specifiche vengono creati tramite Core ML (iOS) o TensorFlow Lite (Android). ML Kit è adatto per scenari tipici — riconoscimento di testo, volti e codici a barre senza dover addestrare un modello.
Core ML è il framework di Apple per eseguire modelli ML su iPhone, iPad, Mac e Apple Watch. Seleziona automaticamente l'accelerazione hardware ottimale: Neural Engine per reti neurali su dispositivi con A12+ (11 TOPS), GPU per attività di elaborazione immagini e CPU per calcoli sequenziali. Core ML supporta i formati .mlmodel (originale) e .mlmodelc (compilato). La conversione di modelli da PyTorch e TensorFlow avviene tramite coremltools — una libreria Python che preserva topologia e pesi.
Create ML è l'app di Apple per addestrare modelli semplici senza scrivere codice. Per la produzione si utilizza coremltools — uno strumento di conversione da PyTorch, TensorFlow e scikit-learn. Coremltools supporta la quantizzazione float32 → float16 e int8, la palettizzazione dello spazio colore e la rimozione di operazioni ridondanti per ridurre la dimensione del modello.
import coremltools as ct
model = ct.convert(
"resnet50.mlmodel",
source="pytorch",
convert_to="mlprogram"
)
model.save("Resnet50.mlpackage")
Il Neural Engine è un neuroprocessore specializzato nei chip Apple A12 e successivi. 16 core eseguono fino a 11 trilioni di operazioni al secondo con un consumo inferiore a 1 W. Core ML instrada automaticamente i calcoli delle reti neurali al Neural Engine e quelli compatibili con GPU a Metal GPU. Lo sviluppatore non deve scegliere il dispositivo — Core ML lo fa tramite Performance Report, analizzando il modello e l'hardware disponibile.
TensorFlow Lite (TFLite) è la soluzione multipiattaforma di Google per eseguire modelli ML su Android, iOS e Linux. I modelli sono in formato .tflite e vengono creati tramite TFLiteConverter dall'ecosistema TensorFlow. TFLite supporta la quantizzazione float32 → int8, che riduce la dimensione del modello di 4 volte mantenendo il 97–99% di precisione su attività di classificazione. Google Play Services for TFLite aggiorna automaticamente il runtime senza dover ripubblicare l'app.
TFLiteConverter è lo strumento principale per convertire modelli TensorFlow nel formato .tflite. La quantizzazione int8 post-addestramento comprime un modello da 300 MB a 75 MB senza accesso all'intero dataset. L'addestramento consapevole della quantizzazione (QAT) offre una perdita di precisione minima — meno dell'1% su ImageNet. TFLiteConverter supporta anche la potatura del grafo e la rimozione di operazioni non supportate dal runtime TFLite.
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(
"saved_model_dir"
)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()
Senza un delegato, TFLite esegue il modello su CPU 3–5 volte più lentamente che con accelerazione hardware. GPU Delegate utilizza OpenCL e OpenGL ES 3.1 su Android, Core ML Delegate utilizza Neural Engine su iOS. NNAPI Delegate sfrutta NPU e DSP su Android 8.1+. XNNPACK Delegate fornisce accelerazione multipiattaforma su CPU ARM con ottimizzazioni per processori mobili. Per selezionare un delegato, utilizzare TfLiteGpuDelegate.create() con controllo null sul risultato.
ML Kit è l'SDK di Google con API pronte per on-device ML. Nelle app mobili, ML Kit viene utilizzato per riconoscimento testo (50+ lingue, inclusa scrittura a mano), Face Detection (468 punti chiave del viso), Barcode Scanning (QR, EAN-13, Code 128, PDF417, Data Matrix) e Object Detection. Tutte le API funzionano interamente sul dispositivo senza internet. ML Kit è disponibile su iOS e Android con un'API unificata.
Face Detection restituisce le coordinate del contorno del viso, sopracciglia, occhi, naso e labbra, oltre all'angolo di inclinazione della testa e allo stato degli occhi. Maschere AR e filtri fotocamera sono il caso d'uso più popolare. Text Recognition estrae il testo dalle foto con una precisione fino al 99% sui caratteri stampati. L'API supporta il riconoscimento in tempo reale tramite CameraX.
val recognizer = TextRecognition.getClient()
val image = InputImage.fromBitmap(bitmap)
recognizer.process(image)
.addOnSuccessListener { result ->
result.textBlocks.forEach { block ->
println(block.text)
}
}
Barcode Scanning riconosce i codici a barre nel flusso video della fotocamera in tempo reale. Object Detection identifica gli oggetti in un'immagine con bounding box ed etichetta di classe (persona, auto, animale). Pose Detection determina 33 punti chiave del corpo per app fitness e analisi del movimento. Image Labeling restituisce fino a 10 etichette semantiche dell'immagine — "natura", "città", "cibo".
Apple fornisce soluzioni ML integrate tramite Vision e NaturalLanguage senza installare SDK di terze parti. Vision (VNRequest) esegue rilevamento di volti, testo, codici a barre e contorni sul dispositivo. NaturalLanguage (NLTokenizer) fornisce tokenizzazione, lemmatizzazione, identificazione della lingua e analisi del sentiment. Su Android, gli equivalenti sono implementati tramite ML Kit (riconoscimento) e SpeechRecognizer da android.speech (parlato). Gli strumenti integrati non richiedono download di modelli — sono preinstallati nel sistema.
Vision include VNDetectFaceRectanglesRequest (rilevamento volti), VNRecognizeTextRequest (riconoscimento testo), VNDetectBarcodesRequest (codici a barre) e VNDetectHumanBodyPoseRequest (scheletro). VNCoreMLRequest integra un modello Core ML personalizzato nella pipeline Vision — ad esempio, classificazione delle emozioni sui volti rilevati. Tutte le richieste vengono eseguite sul Neural Engine con latenza minima.
let request = VNRecognizeTextRequest { request, error in
guard let observations = request.results
as? [VNRecognizedTextObservation] else { return }
for observation in observations {
let topCandidate = observation
.topCandidates(1).first
print(topCandidate?.string as? String ?? "")
}
}
let handler = VNImageRequestHandler(
cgImage: image, options: [:]
)
try? handler.perform([request])
NaturalLanguage fornisce NLTokenizer per dividere il testo in token, NLLanguageRecognizer per l'identificazione della lingua (72 lingue) e NLSentimentAnalyzer per l'analisi del sentiment del testo. SFSpeechRecognizer è un'API di riconoscimento vocale che supporta oltre 50 lingue sul dispositivo (iOS 13+). Richiede l'autorizzazione SFSpeechRecognizerAuthorizationStatus prima dell'uso. I risultati arrivano in modo asincrono tramite SFSpeechRecognitionResultHandler.
Domande frequenti
ML sul dispositivo (on-device ML) è un approccio in cui i modelli di machine learning vengono eseguiti direttamente su un dispositivo mobile senza inviare dati a un server. Core ML, TensorFlow Lite e ML Kit sono i principali framework per on-device ML.
Core ML è il framework di Apple per iOS e macOS con accelerazione su Neural Engine. TensorFlow Lite è la soluzione multipiattaforma di Google per Android, iOS e Linux. Core ML offre migliori prestazioni su dispositivi Apple, TFLite offre versatilità.
ML Kit risolve attività tipiche di visione artificiale e NLP: riconoscimento di testo, volti, codici a barre, oggetti e pose del corpo. Tutte le API funzionano sul dispositivo senza internet e non richiedono la creazione di un modello personalizzato.
No, on-device ML funziona completamente in locale. I modelli vengono caricati sul dispositivo ed eseguiti senza connessione Internet. ML Kit offre anche versioni API cloud con maggiore precisione, ma la modalità on-device è disponibile offline.
Per solo iOS, scegli Core ML — utilizza il Neural Engine ed è strettamente integrato con l'ecosistema Apple. Per progetti multipiattaforma, scegli TensorFlow Lite. Per attività tipiche senza modello personalizzato, scegli ML Kit con API pronte.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.