mlmodel — τι είναι, δομή αρχείου και μετατροπή σε mlpackage

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-17 Χρόνος ανάγνωσης: 10 λεπ

mlmodel — είναι η μορφή αρχείου μοντέλου μηχανικής μάθησης για το πλαίσιο Core ML της Apple, που χρησιμοποιείται για την αποθήκευση εκπαιδευμένων μοντέλων πριν την εμφάνιση της μορφής .mlpackage. Το αρχείο .mlmodel ήταν ένα δυαδικό πακέτο σε protobuf μορφή, που περιείχε περιγραφή μοντέλου, βάρη νευρωνικού δικτύου, μεταδεδομένα και πληροφορίες εισόδου/εξόδου. Σύμφωνα με τα Apple Core ML Release Notes (2025), από Xcode 13 και Core ML 4 η παλιά .mlmodel μορφή κηρύχθηκε απαρχαιωμένη υπέρ της .mlpackage.

Βασικά σημεία

  • mlmodel — απαρχαιωμένη μορφή αρχείου Core ML για ML μοντέλα σε δυαδική protobuf μορφή.
  • Περιείχε βάρη μοντέλου, μεταδεδομένα, περιγραφή εισόδου/εξόδου και ρύθμιση προ/μεταεπεξεργασίας.
  • Το .mlmodel μετατρεπόταν αυτόματα από Xcode σε .mlpackage κατά τη συμμεταγλοποίηση.
  • Από Xcode 13 (2021) η Apple συνιστά τη μορφή .mlpackage ως πιο σύγχρονη.
  • Μετατροπή μέσω Xcode Model Compiler ή coremltools σε Python.

Τι είναι το mlmodel;

mlmodel — είναι μια δυαδική μορφή αρχείου που παρουσιάστηκε από την Apple το 2017 μαζί με το πλαίσιο Core ML στο WWDC 2017. Η μορφή βασίζεται στην τεχνολογία protobuf (Protocol Buffers) της Google.

Ιστορία μορφής

Η .mlmodel ήταν η μοναδική μορφή Core ML από το 2017 έως το 2021. Εκατομμύρια μοντέλα από TensorFlow, Keras, PyTorch, Caffe, scikit-learn και άλλες βιβλιοθήκες μετατράπηκαν μέσω coremltools.

Βασικά χαρακτηριστικά

Το αρχείο mlmodel αποθηκεύει το μοντέλο σε συμπαγή δυαδική αναπαράσταση. Το μέγεθος ποικίλει από δεκάδες KB έως GB. Υποστηρίζει όλα τα είδη μοντέλων Core ML.

Χαρακτηριστικόmlmodel
ΜορφήΔυαδική (protobuf)
ΑναγνωσιμότηταΜη αναγνώσιμη
ΕκδοσιολόγησηΌχι
ΜεταδεδομέναΣτο protobuf σχήμα
Git-friendlyΌχι

Δομή αρχείου mlmodel

Η εσωτερική δομή .mlmodel καθορίζεται από το protobuf σχήμα στο CoreML.framework. Κύριες ενότητες: modelDescription, modelParameters, preprocessing, postprocessing.

Ενότητα modelDescription

Η modelDescription (MLModelDescription) περιέχει όνομα μοντέλου, συγγραφέα, έκδοση, περιγραφή, άδεια και περιγραφή όλων των παραμέτρων εισόδου/εξόδου.

Ενότητα modelParameters

Η modelParameters περιέχει βάρη και παραμέτρους του εκπαιδευμένου μοντέλου. Για νευρωνικά δίκτυα είναι ένας πίνακας NeuralNetworkLayer.

Ενότητα preprocessing

Η preprocessing περιγράφει τα βήματα προεπεξεργασίας: Scaler, ImagePreprocessing, OneHotEncoder, FeatureVectorizer.

mlmodel vs mlpackage: συγκριτική ανάλυση

mlpackage — είναι η νέας γενιάς μορφή για μοντέλα Core ML, που παρουσιάστηκε στο WWDC 2021. Το .mlpackage είναι ένας κατάλογος (πακέτο) με δομή αρχείων.

Παράμετροςmlmodelmlpackage
ΤύποςΕνιαίο δυαδικό αρχείοΚατάλογος
ΜεταδεδομέναΔυαδικό protobufJSON
Git diffΆχρηστοΛειτουργεί
ΕκδοσιολόγησηΧειροκίνητηΑυτόματη
Custom layersΌχιΥποστηρίζει
ΚατάστασηΑπαρχαιωμένηΕνεργή

Δομή αρχείων mlpackage

Το .mlpackage περιέχει: ModelCI/, Data/, Metadata.json, Model.json, Manifests/.

Πώς να μετατρέψετε mlmodel σε mlpackage

Η μετατροπή γίνεται με δύο τρόπους: αυτόματα στο Xcode ή χειροκίνητα μέσω coremltools σε Python.

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")

Αυτόματη μετατροπή στο Xcode

Κατά την προσθήκη .mlmodel σε Xcode έργο, το σύστημα εκτελεί αυτόματα το Model Compiler.

Επαλήθευση μετά τη μετατροπή

Το coremltools παρέχει τη ct.utils.compare_models() για σύγκριση προβλέψεων. Επιτρεπόμενη διαφορά για Float32 είναι 1e-5.

Προς τα πίσω συμβατότητα και υποστήριξη

Η προς τα πίσω συμβατότητα .mlmodel είναι εγγυημένη σε όλες τις τρέχουσες εκδόσεις iOS και macOS.

Υποστήριξη σε iOS 18+ και macOS 15+

Από iOS 18, το Core ML δεν υποστηρίζει πλέον την απευθείας φόρτωση .mlmodel.

Τέλος υποστήριξης

Η πλήρης υποστήριξη .mlmodel αναμένεται να τελειώσει σε iOS 20-21 (2026-2027).

Πότε είναι ακόμη σημαντικό το mlmodel

Το .mlmodel εξακολουθεί να υπάρχει σε υπάρχοντα έργα και σενάρια.

Παλιά έργα

Έργα που ξεκίνησαν πριν το 2021 μπορεί να περιέχουν δεκάδες .mlmodel μοντέλων.

CI/CD pipelines με coremltools

CI/CD pipelines που χρησιμοποιούν coremltools 4.x εξάγουν σε .mlmodel.

Βιβλιοθήκες και Pods

Βιβλιοθήκες που δημοσιεύτηκαν πριν το 2021 μπορεί να περιέχουν .mlmodel μοντέλα.

Συνηθισμένα προβλήματα με mlmodel

Η εργασία με .mlmodel παρουσιάζει αρκετά συνηθισμένα προβλήματα.

Προειδοποίηση Xcode περί απαρχαίωσης

Κατά την προσθήκη .mlmodel σε Xcode 13+ εμφανίζεται προειδοποίηση: 'mlmodel' format is deprecated. Use 'mlpackage' instead.

Σφάλμα Model file is not valid

.mlmodel από παλιά coremltools μπορεί να μην ανοίγει σε iOS 16+.

Προβλήματα με custom layers

.mlmodel με custom layers δεν μπορεί να μετατραπεί απευθείας.

Συχνές ερωτήσεις

Τι είναι το mlmodel;

mlmodel — απαρχαιωμένη δυαδική μορφή αρχείου για μοντέλα Core ML.

Ποια είναι η διαφορά μεταξύ mlmodel και mlpackage;

mlmodel — ενιαίο δυαδικό αρχείο. mlpackage — κατάλογος με JSON metadata.

Πώς να ανοίξω ένα .mlmodel αρχείο;

Xcode, coremltools ή Netron.

Πρέπει να μετατρέψω mlmodel σε mlpackage;

Συνιστάται. Νέες δυνατότητες Core ML δεν είναι διαθέσιμες για .mlmodel.

Υποστηρίζεται το .mlmodel σε iOS 18;

iOS 18+ υποστηρίζει .mlmodel μόνο σε λειτουργία συμβατότητας.

Σύνοψη

  • mlmodel — απαρχαιωμένη δυαδική μορφή (protobuf).
  • Τρεις ενότητες: modelDescription, modelParameters, preprocessing.
  • .mlpackage — νέα μορφή με JSON metadata.
  • Μετατροπή: Xcode ή coremltools.
  • iOS 18+ υποστηρίζει .mlmodel μόνο μέσω Xcode.
  • Προβλήματα: προειδοποίηση, protobuf σφάλματα, custom layers.
  • Η Apple συνιστά μετανάστευση σε .mlpackage.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης