Create ML — е инструмент на Apple за обучение на модели за машинно обучение без писане на код, вграден в Xcode и достъпен като отделно приложение за macOS. Инструментът позволява създаване, обучение и тестване на Core ML модели чрез графичен интерфейс: достатъчно е да заредите набор от данни, да изберете тип задача и да стартирате обучението. Според Apple Create ML Documentation (2025), инструментът поддържа transfer learning на базата на вградени невронни мрежи, автоматично избира хиперпараметри и експортира готовия модел във формат .mlpackage.
Основни точки
Create ML — е компонент на екосистемата за машинно обучение на Apple, представен на WWDC 2018 като инструмент за обучение на Core ML модели без необходимост от писане на код. Преди Create ML разработчиците използваха Python библиотеки (TensorFlow, PyTorch, scikit-learn) и след това конвертираха моделите в Core ML чрез coremltools. Create ML абстрахира целия този процес, предоставяйки визуален интерфейс, вградени невронни мрежи за transfer learning и автоматичен експорт във формат Core ML.
Първата версия на Create ML (iOS 11/macOS 10.14) поддържаше само основни задачи: класификация на изображения и анализ на текст. Версията за macOS 10.15 добави откриване на обекти, звуков анализ и регресия. Create ML 3 (macOS 13, 2022) донесе поддръжка за препоръчващи системи, таблични данни с автоматичен избор на алгоритми и подобрена визуализация на процеса на обучение. Create ML 4 (macOS 14, 2024) добави поддръжка за динамични модели, обучение върху поточни данни и интеграция с облачните услуги на Apple за разпределено обучение.
Create ML е предназначен за три категории потребители: iOS разработчици без опит в ML, които искат да добавят интелигентни функции в приложението; продуктови мениджъри и дизайнери, които искат бързо да прототипират ML функции; изследователи на данни, които се нуждаят от бърза валидация на хипотези, преди да прехвърлят модела в производствена инфраструктура. За сложни модели с нестандартна архитектура Create ML не е подходящ — в такива случаи се използват Python рамки с последваща конвертация в Core ML.
Create ML предлага седем типа задачи, за всеки от които е наличен предварително конфигуриран шаблон: класификация на изображения (Image Classification), откриване на обекти (Object Detection), анализ на текст (Text Classification и Word Tagger), регресия на таблични данни (Tabular Regression), класификация на таблични данни (Tabular Classification), звуков анализ (Sound Classification), препоръчващи системи (Recommendation). Всеки шаблон включва предварително избрана архитектура на невронна мрежа, оптимална за дадения тип задача.
| Тип задача | Входни данни | Пример за използване |
|---|---|---|
| Image Classification | Изображения с етикети | Определяне на порода куче от снимка |
| Object Detection | Изображения с анотации | Търсене на лица в снимка |
| Text Classification | Текстове с етикети | Спам филтър за съобщения |
| Tabular Regression | Таблични данни (CSV) | Прогноза за цена на имот |
| Sound Classification | Аудио файлове с етикети | Разпознаване на природни звуци |
Image Classification — е най-популярният шаблон на Create ML. За обучение на модела е достатъчно да предоставите набор от изображения, разделени в папки (име на папка = етикет на клас). Create ML автоматично прилага уголемяване на данните (завъртане, мащабиране, изместване на цвят) за увеличаване на ефективния размер на набора от данни и използва предварително обучената мрежа Vision FeaturePrint (модифициран ResNet-50) за извличане на характеристики. Обучението с transfer learning отнема от 2 до 15 минути в зависимост от размера на набора от данни и производителността на Mac.
Шаблонът Object Detection изисква анотирани изображения с ограничителни рамки (bounding boxes) за всеки обект. Create ML използва архитектурата YOLOv5 (You Only Look Once), адаптирана за Core ML, с предварително обучени тегла върху набора COCO. Минималното количество е 30 анотирани изображения на клас, препоръчителното — 200+. Create ML поддържа импорт на анотации във формати PASCAL VOC, COCO JSON и Create ML JSON.
Работният процес на Create ML в Xcode се състои от три етапа: подготовка на данни, обучение и валидация, експорт. На етапа на подготовка на данни се импортират тренировъчни и тестови набори. Create ML автоматично разделя данните (по подразбиране 80/20) и показва разпределението на класовете. На етапа на обучение инструментът показва графики на точност и загуба в реално време, както и метрики: accuracy, precision, recall, F1-score. На етапа на валидация можете да тествате модела върху нови данни директно в прозореца на 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")
)
Графичният интерфейс на Create ML в Xcode се показва в страничния редактор след избор на файл на шаблон за категория. Интерфейсът съдържа раздели: Data (зареждане и преглед на данни), Features (избор на характеристики и параметри), Model (архитектура на невронна мрежа), Training (графики на обучение и метрики), Evaluation (тестване върху заделени данни), Preview (интерактивно тестване на модела). Разработчикът може да превключва между разделите по време на обучение без спиране на тренировката.
Transfer Learning (трансферно обучение) — е ключовата технология, на която се основават шаблоните на Create ML. Вместо да обучавате невронна мрежа от нулата (което изисква милиони маркирани примери), Create ML използва предварително обучена мрежа (FeaturePrint) като екстрактор на характеристики и обучава само последните слоеве на класификатора. Това позволява постигане на висока точност (90-95%) върху набори от 10 до 50 изображения на клас с време за обучение 2-5 минути.
Create ML използва няколко предварително обучени екстрактора FeaturePrint: .scenePrint (базиран на ResNet-50, обучен върху Places365), .objectPrint (базиран на YOLOv5, обучен върху COCO), .textPrint (базиран на BERT, обучен върху Wikipedia). Изборът на екстрактор зависи от типа задача и домейна на данните. Например .scenePrint е по-подходящ за класификация на изображения на интериори и пейзажи, докато .objectPrint е по-подходящ за откриване на конкретни обекти (коли, хора, животни).
Create ML автоматично прилага уголемяване на данни по време на обучение: хоризонтално отражение, завъртане до 20 градуса, изместване на цвят, промяна на яркост и контраст. Уголемяването се прилага случайно към всяко изображение във всяка епоха, което увеличава ефективния размер на набора от данни 10-20 пъти. Това е особено важно за малки набори от данни, където пренастройването (overfitting) е основният проблем. Параметрите на уголемяване могат да се настроят в раздела Features.
Освен визуалния интерфейс, Create ML предоставя Swift API за програмно обучение на модели, което позволява автоматизиране на тренировъчни пайплайни и интегрирането им в CI/CD процеси. Swift API включва класовете MLImageClassifier, MLObjectDetector, MLTextClassifier, MLWordTagger, MLTabularRegressor, MLSoundClassifier и MLRecommender. Всеки клас имплементира протокола MLModelTrainer с методи train(), evaluate() и 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 може да се изпълнява в скриптове build phases на Xcode или в GitLab/GitHub Actions на macOS рънъри. Това позволява автоматично преобучение на модела всеки път, когато тренировъчният набор в хранилището се актуализира. Например можете да конфигурирате пайплайн: push на данни в хранилището → GitLab Runner изпълнява Swift скрипта на Create ML → експортираният .mlpackage модел се комитва обратно в хранилището → приложението се изгражда с актуализирания модел.
Въпреки удобството, Create ML има редица ограничения, които са важни при избора на инструмент за ML задачи. Основните от тях: работи само на macOS, ограничен контрол върху архитектурата на невронната мрежа, невъзможност за използване на персонализирани слоеве (custom layers), обвързаност с вградените FeaturePrint екстрактори и липса на поддръжка за обучение на множество GPU или в клъстер.
Create ML не е предназначен за производствено обучение върху големи набори от данни (повече от 100 000 примера). Максималният размер на набора от данни е ограничен от обема RAM на Mac. За мащабни задачи Apple препоръчва използването на Python рамки (TensorFlow, PyTorch) върху сървърна инфраструктура с последваща конвертация в Core ML чрез coremltools. Create ML е инструмент за прототипиране и малки проекти, а не за enterprise ML.
За таблични данни Create ML поддържа само три алгоритъма: Random Forest, Gradient Boosting (XGBoost) и Linear Regression. Липсва поддръжка за невронни мрежи за таблични данни (TabNet, FT-Transformer), SVM, kNN и ансамблови методи, налични в scikit-learn. За задачи с таблични данни, изискващи висока точност, Create ML често отстъпва на класическите ML библиотеки.
Обучението на модели е възможно само на macOS, тъй като Create ML използва Metal Performance Shaders и macOS-ексклузивни рамки. Това ограничение прави невъзможно обучението на Linux сървъри или в облачни GPU клъстери. За екипи, използващи облачна инфраструктура, coremltools + Python остават единствената опция.
Нека разгледаме три реални сценария за използване на Create ML в търговски приложения: модериране на потребителско съдържание, персонални препоръки и автоматично сортиране на документи. Тези сценарии показват типични задачи, които могат да бъдат решени с Create ML без задълбочени познания за машинно обучение.
Приложение за споделяне на снимки може да използва Image Classification за автоматично модериране: обучението на модела върху 100-200 изображения с етикети „разрешено“ и „нарушение“ позволява филтриране на 85-95% от нежеланото съдържание без участие на модератор. Create ML позволява актуализиране на модела с постъпването на нови примери на нарушения чрез преобучение за 3-5 минути.
С помощта на Text Classification на Create ML можете да научите приложението автоматично да класифицира потребителските запитвания по категории: проблем с плащането, техническа повреда, заявка за функция, оплакване. За обучение са достатъчни 50-100 текстови примера на категория. Точността на класификация достига 90% при използване на вградения Word Tagger, базиран на BERT.
MLRecommender в Create ML позволява изграждане на препоръчваща система на базата на действията на потребителите без ръчно писане на колаборативно филтриране. Моделът се обучава върху данни от тип User → Item → Rating (например потребител хареса статия). Create ML автоматично избира между колаборативно филтриране и подход, базиран на съдържание, в зависимост от обема на данните и показва топ-N препоръки.
Често задавани въпроси
Create ML — е инструмент на Apple за обучение на модели за машинно обучение без код, вграден в Xcode и достъпен като отделно приложение за macOS. Позволява създаване на Core ML модели чрез графичен интерфейс, поддържайки класификация на изображения, анализ на текст, откриване на обекти и други задачи.
Create ML се използва за обучение на модели (създаване на .mlpackage), а Core ML — за изпълнение на обучени модели на устройството (инференс). Create ML работи само на macOS и генерира модели във формат Core ML. Това са различни етапи на един и същ процес: първо обучение в Create ML, след това интеграция чрез Core ML в приложението.
Минималното количество данни зависи от типа задача. За класификация на изображения с transfer learning са достатъчни 10-15 изображения на клас. За откриване на обекти са необходими 30 анотирани изображения на клас. За текстова класификация — 50-100 примера на категория. Препоръчителното количество е 100-200 примера на клас за постигане на точност 90%+.
Не, Create ML работи изключително на macOS. Той използва Metal Performance Shaders за ускоряване на обучението на GPU и интеграция с Xcode, които не са налични на други платформи. Ако нямате Mac, използвайте Python (TensorFlow/PyTorch) за обучение и coremltools за конвертиране на модела в .mlpackage.
Да, Create ML е част от Xcode и е напълно безплатен за разработчиците на Apple. За да го използвате, е достатъчно да инсталирате Xcode на Mac (безплатно от Mac App Store). Не са необходими допълнителни лицензи или абонаменти — всички възможности за обучение са достъпни без ограничения.
Резюме
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също