mlmodel — az Apple Core ML keretrendszerének gépi tanulási modell fájlformátuma, amelyet a betanított modellek tárolására használtak a .mlpackage formátum megjelenése előtt. A .mlmodel fájl egy bináris csomag volt protobuf formátumban, amely tartalmazta a modell leírását, a neurális háló súlyait, metaadatokat és a be-/kimenetekkel kapcsolatos információkat. Az Apple Core ML Release Notes (2025) szerint az Xcode 13 és Core ML 4 verziótól kezdve a régi .mlmodel formátum elavulttá vált a .mlpackage javára.
Főbb pontok
mlmodel — egy bináris fájlformátum, amelyet az Apple 2017-ben mutatott be a Core ML keretrendszerrel együtt a WWDC 2017 rendezvényen. A formátum a Google protobuf (Protocol Buffers) szerializációs technológiáján alapul.
A .mlmodel volt az egyetlen Core ML formátum 2017-től 2021-ig. Ez alatt az idő alatt millióká modellt konvertáltak a TensorFlow, Keras, PyTorch, Caffe, scikit-learn és más könyvtárakból a coremltools segítségével.
A mlmodel fájl tárolja a modellt kompakt bináris reprezentációban. Mérete tízes kilobajttól gigabájtig terjed. Támogatja az összes Core ML modelltípust.
| Jellemző | mlmodel |
|---|---|
| Formátum | Bináris (protobuf) |
| Olvashatóság | Nem olvasható |
| Verziókezelés | Nincs |
| Metaadatok | Protobuf sémában |
| Git-barát | Nem |
A .mlmodel fájl belső struktúráját a CoreML.framework protobuf sémája határozza meg. Fő szekciók: modelDescription, modelParameters, preprocessing, postprocessing.
A modelDescription (MLModelDescription) tartalmazza a modell nevét, szerzőjét, verzióját, leírását, licencét és az összes be-/kimeneti paraméter leírását.
A modelParameters tartalmazza a betanított modell tényleges súlyait és paramétereit. Neurális hálók esetén ez NeuralNetworkLayer tömb.
A preprocessing a bemeneti adatok előfeldolgozási lépéseit írja le: Scaler, ImagePreprocessing, OneHotEncoder, FeatureVectorizer.
mlpackage — az új generációs formátum Core ML modellekhez, amelyet a WWDC 2021-en mutattak be. A .mlpackage egy könyvtár (csomag) fájlstruktúrával.
| Paraméter | mlmodel | mlpackage |
|---|---|---|
| Típus | Egyetlen bináris fájl | Könyvtár (csomag) |
| Metaadatok | Bináris protobuf | JSON |
| Git diff | Használhatatlan | Működik |
| Verziókezelés | Kézi | Automatikus |
| Custom layers | Nincs | Támogatja |
| Státusz | Elavult | Aktuális |
A .mlpackage tartalmazza: ModelCI/, Data/, Metadata.json, Model.json, Manifests/.
Konvertálás két módon: automatikusan az Xcode-ban vagy kézzel a coremltools segítségével Pythonban.
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")
A .mlmodel fájl Xcode projekthez adásakor a rendszer automatikusan elindítja a Model Compiler-t fordításkor.
A coremltools ct.utils.compare_models() függvényt kínál az előrejelzések összehasonlítására. Megengedett eltérés Float32 esetén maximum 1e-5.
A .mlmodel visszafelé kompatibilitása biztosított az összes jelenlegi iOS és macOS verzión.
Az iOS 18-tól kezdve a Core ML már nem támogatja a .mlmodel közvetlen betöltését.
A .mlmodel teljes támogatásának vége iOS 20-21 (2026-2027) körül várható.
A .mlmodel még megtalálható meglévő projektekben és bizonyos forgatókönyvekben.
A 2021 előtt indított projektek több tucat .mlmodel modellt tartalmazhatnak.
A coremltools 4.x-et használó CI/CD pipeline-ok alapértelmezésben .mlmodel formátumba exportálnak.
A 2021 előtt kiadott könyvtárak .mlmodel modelleket tartalmazhatnak.
Az elavult .mlmodel formátummal való munka néhány gyakori problémával jár.
A .mlmodel Xcode 13+-hoz való hozzáadásakor figyelmeztetés jelenik meg: 'mlmodel' format is deprecated. Use 'mlpackage' instead.
A régi coremltools-szal készített .mlmodel nem nyílik meg iOS 16+ rendszeren.
A custom layers-t tartalmazó .mlmodel nem konvertálható közvetlenül.
Gyakran ismételt kérdések
mlmodel — elavult bináris fájlformátum Core ML modellekhez.
mlmodel — egyetlen bináris fájl. mlpackage — könyvtár JSON metaadatokkal.
Xcode, coremltools vagy Netron segítségével.
Ajánlott. Az új Core ML funkciók nem érhetőek el a .mlmodel számára.
Az iOS 18+ csak visszafelé kompatibilitási módban támogatja a .mlmodel-t.
Összefoglaló
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is