mlmodel — bu Apple-ın Core ML framework-ü üçün maşın öyrənmə model fayl formatıdır, .mlpackage formatı meydana çıxana qədər öyrədilmiş modelləri saxlamaq üçün istifadə edilirdi. .mlmodel faylı protobuf formatında ikili paket olub, model təsviri, neyron şəbəkə çəkiləri, metadata və giriş/çıxış məlumatlarını ehtiva edirdi. Apple Core ML Release Notes (2025) məlumatlarına görə, Xcode 13 və Core ML 4-dən başlayaraq köhnə .mlmodel formatı .mlpackage lehinə köhnəlmiş elan edilib, .mlpackage daha yaxşı versiyalaşdırma və metadatanın oxunaqlılığını təmin edir.
Əsas məqamlarlar
mlmodel — bu Apple tərəfindən 2017-ci ildə WWDC 2017-də Core ML framework-ü ilə birlikdə təqdim edilmiş ikili fayl formatıdır. Format Google-ın protobuf (Protocol Buffers) seriyalaşdırma texnologiyasına əsaslanır, bu da kompakt ölçü (Float32-də model çəkiləri) və yaddaşa səmərəli yüklənmə təmin edirdi.
.mlmodel formatı 2017-ci ildən 2021-ci ilə qədər yeganə Core ML formatı idi. Bu müddət ərzində coremltools vasitəsilə TensorFlow, Keras, PyTorch, Caffe, scikit-learn və digər kitabxanalardan milyonlarla model çevrilmişdir.
mlmodel faylı modeli kompakt ikili təsvirdə saxlayır. Ölçü onlarla kilobaytdan (xətti reqressiya) giqabaytlara qədər dəyişir (milyonlarla parametrli neyron şəbəkələr). Format Core ML-nin bütün model növlərini dəstəkləyir: NeuralNetwork, NeuralNetworkClassifier, NeuralNetworkRegressor, TreeEnsemble, GradientBoosting, LinearRegression, SVM, OneHotEncoder, FeatureVectorizer.
| Xüsusiyyət | mlmodel |
|---|---|
| Format | Ikili (protobuf) |
| Oxunaqlılıq | Oxunmaz (yalnız coremltools vasitəsilə) |
| Versiyalaşdırma | Yox (tək ikili fayl) |
| Metadata | Protobuf sxemində |
| Git-ə uyğun | Yox (binary diff səmərəsizdir) |
.mlmodel faylının daxili strukturu CoreML.framework framework-ündə təsvir edilmiş protobuf sxemi ilə müəyyən edilir. Əsas bölmələr: modelDescription, modelParameters, preprocessing, postprocessing.
modelDescription (MLModelDescription) bölməsi modelin adını, müəllifini, versiyasını, təsvirini, lisenziyasını, həmçinin bütün giriş və çıxış parametrlərinin ətraflı təsvirini ehtiva edir: ad, məlumat növü (Float32, Int32, String, Image), ölçü, təsvir formatı (BGR, RGB). Bu bölmə Xcode tərəfindən Swift model sinifini yaratmaq üçün istifadə edilirdi.
modelParameters bölməsi öyrədilmiş modelin faktiki çəkiləri və parametrlərini ehtiva edir. Neyron şəbəkələr üçün bu, hər biri növ (convolution, pooling, activation, innerProduct), çəkilər (weights), yerdəyişmə (bias), parametrlər (kernelSize, stride, padding) ehtiva edən NeuralNetworkLayer massividir.
preprocessing bölməsi giriş məlumatlarının ön emal addımlarını təsvir edir. Core ML dəstəkləyir: Scaler (orta və standart kənar sapma ilə normallaşdırma), ImagePreprocessing (ölçünün dəyişdirilməsi, kəsmə, rəng kanallarının normallaşdırılması, BGR→RGB), OneHotEncoder, FeatureVectorizer.
mlpackage — WWDC 2021-də təqdim edilmiş yeni nəsil Core ML model formatıdır. .mlpackage fayl strukturu olan bir kataloqu (paketi) təmsil edir: JSON faylları (metadata, konfiqurasiya) və çəkilər üçün ayrı ikili fayllar.
| Parametr | mlmodel | mlpackage |
|---|---|---|
| Növ | Tək ikili fayl | Kataloq (paket) |
| Metadata | Ikili protobuf | JSON (oxunaqlı) |
| Git diff | Faydasız | İşləyir |
| Versiyalaşdırma | Əl ilə | Avtomatik |
| Custom layers | Yox | Dəstəkləyir |
| Status | Köhnəlmiş | Aktual |
.mlpackage paketi ehtiva edir: ModelCI/, Data/ (SharedWeights.bin), Metadata.json, Model.json, Manifests/. Metadata və konfiqurasiya git-də izlənir, ikili çəkilər Git LFS-dən istifadə edə bilər.
Çevirmə iki üsulla həyata keçirilir: avtomatik Xcode-da qurma zamanı və ya əl ilə Python-da coremltools vasitəsilə.
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")
.mlmodel faylını Xcode layihəsinə əlavə edərkən qurma zamanı Model Compiler işə salınır. Kompilyasiya edilmiş .mlpackage DerivedData kataloquna yerləşdirilir. Xcode .mlpackage istifadə etmək tövsiyəsi ilə xəbərdarlıq göstərir.
coremltools ct.utils.compare_models() ilə orijinal və çevrilmiş modelin proqnozlarını müqayisə edin. Float32 üçün yol verilən fərq 1e-5-dən çox olmamalıdır.
.mlmodel üçün geriye uyğunluq bütün aktual iOS və macOS versiyalarında təmin edilir. Xcode 15-dən (2023) başlayaraq yeni model növləri yalnız .mlpackage formatında olacaq.
iOS 18-dən başlayaraq Core ML .mlmodel birbaşa yükləməyi dəstəkləmir. Bütün modellər əvvəlcədən .mlpackage-yə çevrilməlidir.
Tam dəstəyin iOS 20-21-də (2026-2027) dayandırılacağı gözlənilir.
.mlmodel hələ də mövcud layihələrdə və bəzi ssenarilərdə rast gəlinir.
2021-ci ildən əvvəl başladılmış layihələrdə Swift Package Manager vasitəsilə onlarla .mlmodel modeli ola bilər. Apple tədrici miqrasiyanı tövsiyə edir.
CI/CD boru kəmərləri coremltools 4.x ilə .mlmodel-ə ixrac edə bilər. 5+ versiyasına yenilənmə ixrac formatını .mlpackage-yə dəyişir.
2021-ci ildən əvvəl nəşr edilmiş kitabxanalar .mlmodel formatında modellər ehtiva edə bilər. Xcode onları qurma zamanı avtomatik çevirir.
Köhnəlmiş .mlmodel formatı ilə işlərkən bir neçə tipik problemlə qarşılaşılır.
Xcode 13+-da xəbərdarlıq görünür: “‘mlmodel’ format is deprecated. Use ‘mlpackage’ instead.”
Köhnə coremltools ilə yaradılmış .mlmodel iOS 16+-da protobuf dəyişiklikləri səbəbindən açılmaya bilər.
Custom layers ehtiva edən .mlmodel modelləri əlavə addımlar olmadan birbaşa çevrilə bilməz.
Tez-tez verilən suallar
mlmodel — 2017-2021-ci illərdə istifadə edilmiş Core ML modelləri üçün köhnəlmiş ikili fayl formatı, protobuf əsaslı.
mlmodel — tək ikili fayl, git-də oxunmaz. mlpackage — JSON metadatası olan kataloq, git-də oxuna bilən və versiyalaşdırmanı dəstəkləyir.
Xcode, coremltools (Python) və ya Netron vizuallaşdırıcısı ilə.
Tövsiyə olunur. Xcode avtomatik çevirir, lakin yeni Core ML imkanları .mlmodel üçün mövcud olmayacaq.
iOS 18+ .mlmodel-i yalnız geriye uyğunluq rejimində dəstəkləyir, Xcode qurma zamanı çevirir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun