mlmodel — este formatul de fișier al modelului de învățare automată pentru framework-ul Core ML de la Apple, folosit pentru stocarea modelelor antrenate înainte de apariția formatului .mlpackage. Fișierul .mlmodel era un pachet binar în format protobuf, care conținea descrierea modelului, greutățile rețelei neuronale, metadate și informații despre intrări/ieșiri. Conform Apple Core ML Release Notes (2025), începând cu Xcode 13 și Core ML 4, vechiul format .mlmodel a fost declarat depreciat în favoarea .mlpackage.
Principalele puncte
mlmodel — este un format de fișier binar prezentat de Apple în 2017 împreună cu framework-ul Core ML la WWDC 2017. Formatul se bazează pe tehnologia de serializare protobuf (Protocol Buffers) de la Google.
Formatul .mlmodel a fost singurul format Core ML din 2017 până în 2021. În acest timp, milioane de modele din TensorFlow, Keras, PyTorch, Caffe, scikit-learn și alte biblioteci au fost convertite prin coremltools.
Fișierul mlmodel stochează modelul într-o reprezentare binară compactă. Dimensiunea variază de la zeci de kiloocteți la gigaocteți. Formatul suportă toate tipurile de modele Core ML: NeuralNetwork, NeuralNetworkClassifier, NeuralNetworkRegressor, TreeEnsemble, GradientBoosting, LinearRegression, SVM și pipeline-uri de pre/postprocesare.
| Caracteristică | mlmodel |
|---|---|
| Format | Binar (protobuf) |
| Lizibilitate | Ilizibil |
| Versionare | Nu |
| Metadate | În schema protobuf |
| Git-friendly | Nu |
Structura internă a fișierului .mlmodel este definită de schema protobuf din CoreML.framework. Secțiuni principale: modelDescription, modelParameters, preprocessing, postprocessing.
Secțiunea modelDescription (MLModelDescription) conține numele modelului, autorul, versiunea, descrierea, licența și descrierea detaliată a tuturor parametrilor de intrare/ieșire.
Secțiunea modelParameters conține greutățile și parametrii efectivi ai modelului antrenat. Pentru rețele neuronale, acesta este un array de NeuralNetworkLayer.
Secțiunea preprocessing descrie pașii de preprocesare a datelor de intrare: Scaler, ImagePreprocessing, OneHotEncoder, FeatureVectorizer.
mlpackage — este formatul de nouă generație pentru modelele Core ML, prezentat la WWDC 2021. .mlpackage este un director (pachet) cu structură de fișiere: conținutul modelului este stocat ca fișiere JSON lizibile și fișiere binare separate pentru greutăți.
| Parametru | mlmodel | mlpackage |
|---|---|---|
| Tip | Fișier binar unic | Director (pachet) |
| Metadate | protobuf binar | JSON |
| Git diff | Inutil | Funcționează |
| Versionare | Manuală | Automată |
| Custom layers | Nu | Suportă |
| Stare | Depreciat | Actual |
Pachetul .mlpackage conține: ModelCI/, Data/ (SharedWeights.bin), Metadata.json, Model.json, Manifests/.
Conversia .mlmodel în .mlpackage se realizează în două moduri: automat la compilare în Xcode sau manual prin coremltools în Python.
import coremltools as ct
model = ct.models.MLModel(
"OldModel.mlmodel"
)
model.author = "IT Sectr"
model.short_description = "Converted from mlmodel"
model.version = "2.0"
model.save("NewModel.mlpackage")
La adăugarea fișierului .mlmodel în proiectul Xcode, sistemul rulează automat Model Compiler la compilare.
coremltools oferă utilitarul ct.utils.compare_models() pentru compararea predicțiilor. Diferența admisibilă pentru Float32 este de maximum 1e-5.
Compatibilitatea inversă .mlmodel este asigurată pe toate versiunile actuale de iOS și macOS.
Începând cu iOS 18, Core ML nu mai suportă încărcarea directă a .mlmodel.
Suportul complet pentru .mlmodel se așteaptă să se încheie în iOS 20-21 (2026-2027).
.mlmodel încă apare în proiectele existente și unele scenarii.
Proiectele începute înainte de 2021 pot conține zeci de modele .mlmodel.
Pipeline-urile CI/CD care folosesc coremltools 4.x exportă implicit în .mlmodel.
Bibliotecile terțe publicate înainte de 2021 pot conține modele în format .mlmodel.
Lucrul cu formatul depreciat .mlmodel prezintă câteva probleme tipice.
La adăugarea .mlmodel în Xcode 13+ apare avertismentul: „'mlmodel' format is deprecated. Use 'mlpackage' instead.”
Fișierele .mlmodel create cu versiuni vechi de coremltools pot să nu se deschidă pe iOS 16+.
Modelele .mlmodel care conțin custom layers nu pot fi convertite direct.
Întrebări frecvente
mlmodel — format de fișier binar depreciat pentru modelele Core ML, bazat pe protobuf.
mlmodel — fișier binar unic. mlpackage — pachet cu metadate JSON.
Prin Xcode, coremltools (Python) sau Netron.
Recomandat. Xcode convertește automat, dar noile funcții Core ML nu sunt disponibile pentru .mlmodel.
iOS 18+ suportă .mlmodel doar în mod de compatibilitate inversă.
Concluzii
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