Create ML — este un instrument de la Apple pentru învățarea modelelor de machine learning fără a scrie cod, încorporat în Xcode și disponibil ca aplicație separată pentru macOS. Instrumentul permite crearea, antrenarea și testarea modelelor Core ML folosind o interfață grafică: este suficient să încărcați un set de date, să selectați tipul de sarcină și să porniți antrenamentul. Conform Apple Create ML Documentation (2025), instrumentul suportă transfer learning pe baza rețelelor neuronale încorporate, selectează automat hiperparametrii și exportă modelul final în formatul .mlpackage.
Principalele puncte
Create ML — este o componentă a ecosistemului de machine learning Apple, prezentată la WWDC 2018 ca instrument pentru antrenarea modelelor Core ML fără a fi nevoie să scrieți cod. Înainte de Create ML, dezvoltatorii foloseau biblioteci Python (TensorFlow, PyTorch, scikit-learn) și apoi convertau modelele în Core ML prin coremltools. Create ML a abstractizat întregul proces, oferind o interfață vizuală, rețele neuronale încorporate pentru transfer learning și export automat în format Core ML.
Prima versiune Create ML (iOS 11/macOS 10.14) suporta doar sarcini de bază: clasificarea imaginilor și analiza textului. Versiunea pentru macOS 10.15 a adăugat detectarea obiectelor, analiza audio și regresia. Create ML 3 (macOS 13, 2022) a adus suport pentru sisteme de recomandare, date tabelare cu selectare automată a algoritmilor și vizualizare îmbunătățită a procesului de antrenament. Create ML 4 (macOS 14, 2024) a adăugat suport pentru modele dinamice, antrenament pe date în flux și integrare cu serviciile cloud Apple pentru antrenament distribuit.
Create ML este destinat a trei categorii de utilizatori: dezvoltatori iOS fără experiență în ML care doresc să adauge funcții inteligente în aplicație; manageri de produs și designeri care doresc să prototipeze rapid funcții ML; cercetători de date care au nevoie de validare rapidă a ipotezelor înainte de a transfera modelul pe infrastructura de producție. Pentru modele complexe cu arhitectură non-standard, Create ML nu este potrivit — în astfel de cazuri se folosesc framework-uri Python cu conversie ulterioară în Core ML.
Create ML oferă șapte tipuri de sarcini, pentru fiecare fiind disponibil un șablon preconfigurat: clasificare imagini (Image Classification), detectare obiecte (Object Detection), analiză text (Text Classification și Word Tagger), regresie date tabelare (Tabular Regression), clasificare date tabelare (Tabular Classification), analiză audio (Sound Classification), sisteme de recomandare (Recommendation). Fiecare șablon include o arhitectură de rețea neuronală preselectată, optimă pentru acel tip de sarcină.
| Tip sarcină | Date de intrare | Exemplu de utilizare |
|---|---|---|
| Image Classification | Imagini cu etichete | Determinarea rasei de câine după fotografie |
| Object Detection | Imagini cu adnotări | Căutarea fețelor într-o fotografie |
| Text Classification | Texte cu etichete | Filtru de spam pentru mesaje |
| Tabular Regression | Date tabelare (CSV) | Prognoză preț imobiliar |
| Sound Classification | Fișiere audio cu etichete | Recunoașterea sunetelor naturii |
Image Classification — este cel mai popular șablon Create ML. Pentru antrenarea modelului este suficient să furnizați un set de imagini împărțite pe foldere (numele folderului = eticheta clasei). Create ML aplică automat augmentarea datelor (rotire, scalare, deplasare culoare) pentru a mări dimensiunea efectivă a setului de date și folosește rețeaua pre-antrenată Vision FeaturePrint (ResNet-50 modificată) pentru extragerea caracteristicilor. Antrenamentul cu transfer learning durează între 2 și 15 minute, în funcție de dimensiunea setului de date și performanța Mac-ului.
Șablonul Object Detection necesită imagini adnotate cu cadre delimitative (bounding boxes) pentru fiecare obiect. Create ML folosește arhitectura YOLOv5 (You Only Look Once), adaptată pentru Core ML, cu greutăți pre-antrenate pe setul COCO. Cantitatea minimă este de 30 de imagini adnotate per clasă, cea recomandată — 200+. Create ML suportă importul adnotărilor în formatele PASCAL VOC, COCO JSON și Create ML JSON.
Fluxul de lucru Create ML în Xcode constă din trei etape: pregătirea datelor, antrenament și validare, export. În etapa de pregătire a datelor, se importă seturile de antrenament și de testare. Create ML împarte automat datele (implicit 80/20) și afișează distribuția claselor. În etapa de antrenament, instrumentul afișează graficele de acuratețe și pierdere în timp real, precum și metrici: accuracy, precision, recall, F1-score. În etapa de validare, puteți testa modelul pe date noi direct în fereastra 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")
)
Interfața grafică Create ML în Xcode se afișează în editorul lateral după selectarea fișierului șablon al categoriei. Interfața conține filele: Data (încărcarea și vizualizarea datelor), Features (selectarea caracteristicilor și parametrilor), Model (arhitectura rețelei neuronale), Training (grafice de antrenament și metrici), Evaluation (testare pe date reținute), Preview (testare interactivă a modelului). Dezvoltatorul poate comuta între file în timpul antrenamentului fără a opri antrenarea.
Transfer Learning (învățare prin transfer) — este tehnologia cheie pe care se bazează șabloanele Create ML. În loc să antreneze o rețea neuronală de la zero (ceea ce necesită milioane de exemple adnotate), Create ML folosește o rețea pre-antrenată (FeaturePrint) ca extractor de caracteristici și antrenează doar ultimele straturi ale clasificatorului. Acest lucru permite atingerea unei acurateți ridicate (90-95%) pe seturi de 10 până la 50 de imagini per clasă, cu un timp de antrenament de 2-5 minute.
Create ML folosește mai mulți extractori FeaturePrint pre-antrenați: .scenePrint (bazat pe ResNet-50, antrenat pe Places365), .objectPrint (bazat pe YOLOv5, antrenat pe COCO), .textPrint (bazat pe BERT, antrenat pe Wikipedia). Alegerea extractorului depinde de tipul sarcinii și domeniul datelor. De exemplu, .scenePrint este mai potrivit pentru clasificarea imaginilor cu interioare și peisaje, iar .objectPrint — pentru detectarea obiectelor specifice (mașini, persoane, animale).
Create ML aplică automat augmentarea datelor în timpul antrenamentului: oglindire orizontală, rotire de până la 20 de grade, deplasare culoare, modificare luminozitate și contrast. Augmentarea se aplică aleatoriu fiecărei imagini la fiecare epocă, ceea ce mărește dimensiunea efectivă a setului de date de 10-20 de ori. Acest lucru este deosebit de important pentru seturi mici de date, unde supraînvățarea (overfitting) este principala problemă. Parametrii de augmentare pot fi ajustați în fila Features.
Pe lângă interfața vizuală, Create ML oferă Swift API pentru antrenamentul programatic al modelelor, permițând automatizarea pipeline-urilor de antrenament și integrarea acestora în procesele CI/CD. Swift API include clasele MLImageClassifier, MLObjectDetector, MLTextClassifier, MLWordTagger, MLTabularRegressor, MLSoundClassifier și MLRecommender. Fiecare clasă implementează protocolul MLModelTrainer cu metodele train(), evaluate() și 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)")
Swift API Create ML poate fi rulat în scripturi build phases Xcode sau în GitLab/GitHub Actions pe rulanți macOS. Acest lucru permite reantrenarea automată a modelului de fiecare dată când setul de antrenament din repository este actualizat. De exemplu, puteți configura un pipeline: push date în repository → GitLab Runner rulează scriptul Swift Create ML → modelul .mlpackage exportat este comis în repository → aplicația este construită cu modelul actualizat.
În ciuda confortului, Create ML are o serie de limitări care trebuie luate în considerare la alegerea instrumentului pentru sarcini ML. Principalele sunt: funcționează doar pe macOS, control limitat asupra arhitecturii rețelei neuronale, imposibilitatea utilizării straturilor personalizate (custom layers), dependența de extractorii încorporați FeaturePrint și lipsa suportului pentru antrenament pe mai multe GPU-uri sau în cluster.
Create ML nu este destinat antrenamentului de producție pe seturi mari de date (peste 100 000 de exemple). Dimensiunea maximă a setului de date este limitată de memoria RAM a Mac-ului. Pentru sarcini la scară largă, Apple recomandă utilizarea framework-urilor Python (TensorFlow, PyTorch) pe infrastructură server, cu conversie ulterioară în Core ML prin coremltools. Create ML este un instrument de prototipare și proiecte mici, nu pentru enterprise ML.
Pentru date tabelare, Create ML suportă doar trei algoritmi: Random Forest, Gradient Boosting (XGBoost) și Linear Regression. Nu există suport pentru rețele neuronale pentru date tabelare (TabNet, FT-Transformer), SVM, kNN și metode de ansamblu disponibile în scikit-learn. Pentru sarcini cu date tabelare care necesită acuratețe ridicată, Create ML este adesea inferior bibliotecilor clasice ML.
Antrenarea modelelor este posibilă doar pe macOS, deoarece Create ML utilizează Metal Performance Shaders și framework-uri exclusive macOS. Această limitare face imposibil antrenamentul pe servere Linux sau în clustere GPU în cloud. Pentru echipele care utilizează infrastructură cloud, coremltools + Python rămân singura opțiune.
Să examinăm trei scenarii reale de utilizare Create ML în aplicații comerciale: moderarea conținutului utilizatorilor, recomandări personalizate și sortarea automată a documentelor. Aceste scenarii demonstrează sarcini tipice care pot fi rezolvate cu Create ML fără cunoștințe profunde de machine learning.
O aplicație de partajare a fotografiilor poate utiliza Image Classification pentru moderare automată: antrenarea modelului pe 100-200 de imagini cu etichetele „permis” și „încălcare” permite filtrarea a 85-95% din conținutul nedorit fără participarea unui moderator. Create ML permite actualizarea modelului pe măsură ce sosesc noi exemple de încălcări, reantrenându-l în 3-5 minute.
Cu ajutorul Text Classification Create ML puteți învăța aplicația să clasifice automat sesizările utilizatorilor pe categorii: problemă de plată, defecțiune tehnică, cerere de funcție, reclamație. Pentru antrenare sunt suficiente 50-100 de exemple textuale per categorie. Acuratețea clasificării atinge 90% folosind Word Tagger încorporat bazat pe BERT.
MLRecommender în Create ML permite construirea unui sistem de recomandare pe baza acțiunilor utilizatorilor fără a scrie manual filtrare colaborativă. Modelul se antrenează pe date de tip User → Item → Rating (de exemplu, utilizatorul a apreciat un articol). Create ML selectează automat între filtrarea colaborativă și abordarea bazată pe conținut, în funcție de volumul de date, și afișează top-N recomandări.
Întrebări frecvente
Create ML — este un instrument Apple pentru antrenarea modelelor de machine learning fără cod, încorporat în Xcode și disponibil ca aplicație separată pentru macOS. Permite crearea modelelor Core ML printr-o interfață grafică, suportând clasificarea imaginilor, analiza textului, detectarea obiectelor și alte sarcini.
Create ML este folosit pentru antrenarea modelelor (crearea .mlpackage), iar Core ML — pentru executarea modelelor antrenate pe dispozitiv (inferență). Create ML funcționează doar pe macOS și generează modele în format Core ML. Sunt etape diferite ale aceluiași proces: mai întâi antrenament în Create ML, apoi integrare prin Core ML în aplicație.
Cantitatea minimă de date depinde de tipul sarcinii. Pentru clasificarea imaginilor cu transfer learning sunt suficiente 10-15 imagini per clasă. Pentru detectarea obiectelor sunt necesare cel puțin 30 de imagini adnotate per clasă. Pentru clasificarea textului — 50-100 de exemple per categorie. Cantitatea recomandată este de 100-200 de exemple per clasă pentru o acuratețe de 90%+.
Nu, Create ML funcționează exclusiv pe macOS. Utilizează Metal Performance Shaders pentru accelerarea antrenamentului pe GPU și integrare cu Xcode, care nu sunt disponibile pe alte platforme. Dacă nu aveți un Mac, folosiți Python (TensorFlow/PyTorch) pentru antrenare și coremltools pentru conversia modelului în .mlpackage.
Da, Create ML face parte din Xcode și este complet gratuit pentru dezvoltatorii Apple. Pentru utilizare este suficient să instalați Xcode pe Mac (gratuit din Mac App Store). Nu sunt necesare licențe sau abonamente suplimentare — toate capacitățile de antrenare sunt disponibile fără restricții.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și