Create ML è lo strumento di Apple per addestrare modelli di machine learning senza scrivere codice, integrato in Xcode e disponibile anche come applicazione standalone per macOS. Lo strumento consente di creare, addestrare e testare modelli Core ML utilizzando un’interfaccia grafica: basta caricare un dataset, selezionare il tipo di attività e avviare l’addestramento. Secondo Apple Create ML Documentation (2025), lo strumento supporta il transfer learning con reti neurali integrate, ottimizza automaticamente gli iperparametri ed esporta il modello finale in formato .mlpackage.
Punti chiave
Create ML è un componente dell’ecosistema di machine learning di Apple, presentato al WWDC 2018 come strumento per addestrare modelli Core ML senza scrivere codice. Prima di Create ML, gli sviluppatori utilizzavano librerie Python (TensorFlow, PyTorch, scikit-learn) e poi convertivano i modelli in Core ML tramite coremltools. Create ML ha astratto l’intero processo fornendo un’interfaccia visiva, reti neurali integrate per il transfer learning e l’esportazione automatica in formato Core ML.
La prima versione di Create ML (iOS 11/macOS 10.14) supportava solo attività di base: classificazione immagini e analisi del testo. La versione per macOS 10.15 ha aggiunto rilevamento oggetti, analisi audio e regressione. Create ML 3 (macOS 13, 2022) ha introdotto il supporto per sistemi di raccomandazione, dati tabellari con selezione automatica degli algoritmi e visualizzazione migliorata dell’addestramento. Create ML 4 (macOS 14, 2024) ha aggiunto il supporto per modelli dinamici, addestramento su dati in streaming e integrazione con i servizi cloud di Apple per l’addestramento distribuito.
Create ML è progettato per tre categorie di utenti: sviluppatori iOS senza esperienza ML che vogliono aggiungere funzionalità intelligenti alla loro app; product manager e designer che desiderano prototipare rapidamente funzionalità ML; e ricercatori di dati che necessitano di una rapida validazione di ipotesi prima di trasferire un modello nell’infrastruttura di produzione. Per modelli complessi con architettura non standard, Create ML non è adatto — in questi casi vengono utilizzati framework Python con successiva conversione in Core ML.
Create ML offre sette tipi di attività, ciascuno con un template preconfigurato: Classificazione Immagini, Rilevamento Oggetti, Classificazione Testo e Word Tagger, Regressione Tabellare, Classificazione Tabellare, Classificazione Audio e Raccomandazione. Ogni template include un’architettura di rete neurale preselezionata ottimizzata per quel tipo di attività.
| Tipo di attività | Dati di input | Esempio di utilizzo |
|---|---|---|
| Classificazione Immagini | Immagini etichettate | Identificare razza canina da foto |
| Rilevamento Oggetti | Immagini annotate | Trovare volti in una foto |
| Classificazione Testo | Testi etichettati | Filtro antispam per messaggi |
| Regressione Tabellare | Dati tabellari (CSV) | Previsione prezzo immobiliare |
| Classificazione Audio | File audio etichettati | Riconoscere suoni della natura |
Classificazione Immagini è il template più popolare di Create ML. Per addestrare un modello, basta fornire un insieme di immagini organizzate in cartelle (nome cartella = etichetta di classe). Create ML applica automaticamente l’aumento dei dati (rotazione, ridimensionamento, spostamento colore) per aumentare la dimensione effettiva del dataset e utilizza la rete Vision FeaturePrint pre-addestrata (ResNet-50 modificata) per l’estrazione delle caratteristiche. L’addestramento con transfer learning richiede da 2 a 15 minuti a seconda della dimensione del dataset e delle prestazioni del Mac.
Il template Rilevamento Oggetti richiede immagini annotate con riquadri di delimitazione (bounding boxes) per ogni oggetto. Create ML utilizza l’architettura YOLOv5 (You Only Look Once) adattata per Core ML, con pesi pre-addestrati sul dataset COCO. Requisito minimo — 30 immagini annotate per classe, raccomandato — 200+. Create ML supporta l’importazione di annotazioni nei formati PASCAL VOC, COCO JSON e Create ML JSON.
Il flusso di lavoro in Create ML all’interno di Xcode si compone di tre fasi: preparazione dei dati, addestramento e validazione, ed esportazione. Durante la preparazione dei dati, vengono importati i set di addestramento e test. Create ML divide automaticamente i dati (default 80/20) e mostra la distribuzione delle classi. Durante l’addestramento, lo strumento mostra grafici di accuratezza e perdita in tempo reale, oltre a metriche: accuratezza, precisione, richiamo, punteggio F1. Durante la validazione, è possibile testare il modello su nuovi dati direttamente nella finestra di Create ML.
import CreateML
let data = try MLImageClassifierData.labeledDirectories(
at: URL(fileURLWithPath: "/path/to/training-data")
)
let model = try MLImageClassifier(
trainingData: data,
parameters: MLImageClassifier.Parameters(
featureExtractor: .scenePrint(revision: 1)
)
)
try model.write(
to: URL(fileURLWithPath: "/path/to/MyModel.mlpackage")
)
L’interfaccia grafica di Create ML in Xcode appare nell’editor laterale dopo aver selezionato una categoria di file template. L’interfaccia contiene le schede: Data (caricamento e anteprima dati), Features (selezione caratteristiche e parametri), Model (architettura della rete neurale), Training (grafici di addestramento e metriche), Evaluation (test su dati trattenuti), Preview (test interattivo del modello). Lo sviluppatore può passare da una scheda all’altra durante l’addestramento senza fermare il processo.
Transfer Learning (apprendimento per trasferimento) è la tecnologia chiave alla base dei template di Create ML. Invece di addestrare una rete neurale da zero (che richiede milioni di esempi etichettati), Create ML utilizza una rete pre-addestrata (FeaturePrint) come estrattore di caratteristiche e addestra solo gli ultimi strati del classificatore. Ciò consente di raggiungere un’elevata precisione (90-95%) su dataset di 10 a 50 immagini per classe con un tempo di addestramento di 2-5 minuti.
Create ML utilizza diversi estrattori FeaturePrint pre-addestrati: .scenePrint (basato su ResNet-50, addestrato su Places365), .objectPrint (basato su YOLOv5, addestrato su COCO), .textPrint (basato su BERT, addestrato su Wikipedia). La scelta dell’estrattore dipende dal tipo di attività e dal dominio dei dati. Ad esempio, .scenePrint è più adatto per classificare immagini di interni e paesaggi, mentre .objectPrint è migliore per rilevare oggetti specifici (auto, persone, animali).
Create ML applica automaticamente l’aumento dei dati durante l’addestramento: capovolgimento orizzontale, rotazione fino a 20 gradi, spostamento colore, regolazione di luminosità e contrasto. L’aumento viene applicato casualmente a ogni immagine a ogni epoca, aumentando la dimensione effettiva del dataset di 10-20 volte. Ciò è particolarmente importante per i piccoli dataset dove l’overfitting è il problema principale. I parametri di aumento possono essere regolati nella scheda Features.
Oltre all’interfaccia visiva, Create ML fornisce un’API Swift per l’addestramento programmatico dei modelli, consentendo l’automazione delle pipeline di addestramento e l’integrazione nei processi CI/CD. L’API Swift include le classi MLImageClassifier, MLObjectDetector, MLTextClassifier, MLWordTagger, MLTabularRegressor, MLSoundClassifier e MLRecommender. Ogni classe implementa il protocollo MLModelTrainer con i metodi train(), evaluate() e write().
import CreateML
let csvFile = try MLDataTable(
contentsOf: URL(fileURLWithPath: "data.csv")
)
let (trainingData, testData) = csvFile.randomSplit(by: 0.8)
let regressor = try MLTabularRegressor(
trainingData: trainingData,
targetColumn: "price",
parameters: MLTabularRegressor.Parameters(
algorithm: .randomForest
)
)
let evaluation = regressor.evaluation(on: testData)
print("RMSE: \(evaluation.rootMeanSquaredError)")
L’API Swift di Create ML può essere eseguita in script di build phases di Xcode o in GitLab/GitHub Actions su runner macOS. Ciò consente di riaddestrare automaticamente il modello ogni volta che il dataset di addestramento nel repository viene aggiornato. Ad esempio, è possibile configurare una pipeline: push dei dati nel repository → GitLab Runner esegue lo script Swift Create ML → il modello .mlpackage esportato viene ricommitato nel repository → l’app viene compilata con il modello aggiornato.
Nonostante la sua comodità, Create ML presenta diverse limitazioni importanti da considerare nella scelta di uno strumento per attività ML. Le principali: funziona solo su macOS, controllo limitato sull’architettura della rete neurale, impossibilità di utilizzare layer personalizzati, dipendenza dagli estrattori FeaturePrint integrati e nessun supporto per addestramento multi-GPU o in cluster.
Create ML non è progettato per l’addestramento in produzione su grandi dataset (oltre 100.000 esempi). La dimensione massima del dataset è limitata dalla RAM del Mac. Per attività su larga scala, Apple raccomanda di utilizzare framework Python (TensorFlow, PyTorch) su infrastruttura server con successiva conversione in Core ML tramite coremltools. Create ML è uno strumento per prototipazione e progetti piccoli, non per ML aziendale.
Per i dati tabellari, Create ML supporta solo tre algoritmi: Random Forest, Gradient Boosting (XGBoost) e Regressione Lineare. Non c’è supporto per reti neurali per dati tabellari (TabNet, FT-Transformer), SVM, kNN o metodi ensemble disponibili in scikit-learn. Per attività con dati tabellari che richiedono alta precisione, Create ML è spesso insufficiente rispetto alle librerie ML classiche.
L’addestramento dei modelli è possibile solo su macOS, poiché Create ML utilizza Metal Performance Shaders e framework esclusivi di macOS. Questa limitazione rende impossibile l’addestramento su server Linux o cluster GPU cloud. Per i team che utilizzano infrastruttura cloud, coremltools + Python rimangono l’unica opzione.
Esaminiamo tre scenari reali di utilizzo di Create ML in applicazioni commerciali: moderazione dei contenuti utente, raccomandazioni personalizzate e smistamento automatico dei documenti. Questi scenari mostrano attività tipiche che possono essere risolte con Create ML senza conoscenze approfondite di machine learning.
Un’app di condivisione foto può utilizzare la Classificazione Immagini per la moderazione automatica: addestrare un modello su 100-200 immagini etichettate come “accettabile” e “violazione” consente di filtrare l’85-95% dei contenuti indesiderati senza un moderatore. Create ML consente di aggiornare il modello man mano che arrivano nuovi esempi di violazione, riaddestrandolo in 3-5 minuti.
Utilizzando la Classificazione Testo, Create ML può insegnare a un’app a classificare automaticamente le richieste degli utenti in categorie: problema di pagamento, guasto tecnico, richiesta funzionalità, reclamo. L’addestramento richiede 50-100 esempi di testo per categoria. La precisione di classificazione raggiunge il 90% utilizzando il Word Tagger integrato basato su BERT.
MLRecommender in Create ML consente di costruire un sistema di raccomandazione basato sulle azioni degli utenti senza scrivere manualmente il filtraggio collaborativo. Il modello si addestra su dati Utente → Elemento → Valutazione (ad esempio, un utente ha messo mi piace a un articolo). Create ML sceglie automaticamente tra filtraggio collaborativo e approccio basato sui contenuti in base al volume dei dati e genera le prime N raccomandazioni.
Domande frequenti
Create ML è lo strumento di Apple per addestrare modelli di machine learning senza codice, integrato in Xcode e disponibile come applicazione standalone per macOS. Consente di creare modelli Core ML tramite un’interfaccia grafica, supportando classificazione immagini, analisi del testo, rilevamento oggetti e altre attività.
Create ML viene utilizzato per addestrare modelli (creare file .mlpackage), mentre Core ML viene utilizzato per eseguire modelli addestrati sul dispositivo (inferenza). Create ML funziona solo su macOS e genera modelli in formato Core ML. Sono fasi diverse dello stesso processo: prima l’addestramento in Create ML, poi l’integrazione tramite Core ML nell’app.
La quantità minima di dati dipende dal tipo di attività. Per la classificazione immagini con transfer learning, 10-15 immagini per classe sono sufficienti. Per il rilevamento oggetti, sono necessarie 30 immagini annotate per classe. Per la classificazione testo — 50-100 esempi per categoria. La quantità raccomandata è di 100-200 esempi per classe per raggiungere una precisione del 90%+.
No, Create ML funziona esclusivamente su macOS. Utilizza Metal Performance Shaders per l’accelerazione GPU e l’integrazione con Xcode, che non sono disponibili su altre piattaforme. Se non hai un Mac, usa Python (TensorFlow/PyTorch) per l’addestramento e coremltools per convertire il modello in .mlpackage.
Sì, Create ML è incluso in Xcode ed è completamente gratuito per gli sviluppatori Apple. Per usarlo, basta installare Xcode su un Mac (gratuito dal Mac App Store). Non sono richieste licenze o abbonamenti aggiuntivi — tutte le capacità di addestramento sono disponibili senza restrizioni.
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.
Leggi anche