Core ML: nima, freymvork arxitekturasi va modellarni integratsiyalash

Muallif: IT Sectr Nashr etilgan: 2026-07-17 O'qish vaqti: 10 daq

Core ML — bu Apple tomonidan oldindan o'qitilgan ML modellarini to'g'ridan-to'g'ri iOS, iPadOS, macOS, watchOS va tvOS ilovalariga integratsiyalash imkonini beruvchi mashinani o'rganish freymvorkidir. Freymvork neyron tarmoqlar, qaror daraxtlari, chiziqli regressiyalar va ansambl usullarini, shuningdek TensorFlow, PyTorch, Keras va ONNX dan modellarni Apple-ning o'z formatiga konvertatsiya qilishni qo'llab-quvvatlaydi. Apple Machine Learning Research (2025) ma'lumotlariga ko'ra, Core ML inferensni to'liq qurilmada amalga oshiradi, ma'lumotlarning maxfiyligini va ko'pchilik modellar uchun 10 millisekunddan kam kechikishni ta'minlaydi.

Asosiy

  • Core ML — ML modellarini serverda ishlovsiz qurilmada bajarish uchun Apple-ning xususiy freymvorki.
  • TensorFlow, PyTorch, Keras, ONNX va boshqa mashhur formatlardan modellarni konvertatsiya qilishni qo'llab-quvvatlaydi.
  • Inferens Neural Engine, GPU yoki CPU da avtomatik optimal hisoblash moslamasini tanlash bilan amalga oshiriladi.
  • Freymvork optimallashtirishlarni o'z ichiga oladi: kvantizatsiya (Float16, Int8), pruning, qatlamlarni birlashtirish.
  • Core ML 5 (2024) .mlpackage paketlari, dinamik neyron tarmoqlar va qurilmada nazoratli o'rganishni qo'llab-quvvatladi.

Core ML nima?

Core ML — bu Apple mashinani o'rganish ekosistemasining asosiy komponenti bo'lib, WWDC 2017 da taqdim etilgan. Core ML dan oldin iOS dasturchilari ML modellarini qurilmada ishga tushirish uchun uchinchi tomon kutubxonalaridan (TensorFlow Mobile, Caffe2) yoki o'z yechimlaridan foydalanardilar. Core ML klassik regressiyalardan tortib chuqur neyron tarmoqlargacha bo'lgan barcha model turlari uchun yagona interfeysni taqdim etdi va ma'lum qurilma uchun past darajadagi optimallashtirishni o'z zimmasiga oldi.

Rivojlanish tarixi

Core ML ning birinchi versiyasi (2017) faqat belgilangan kirish hajmiga ega statik modellarni qo'llab-quvvatlardi. Core ML 2 (2018) batch prediction va modellarni “o'z joyida” yangilashni qo'llab-quvvatladi. Core ML 3 (2019) qurilmada o'rganish va o'nlab yangi neyron tarmoq qatlamlarini qo'llab-quvvatladi. Core ML 4 (2021) bir nechta chiqishlarga ega modellarni va yaxshilangan tasvirni qayta ishlashni qo'llab-quvvatladi. Core ML 5 (2024) yangi ML qatlamlaridan foydalangan holda dinamik neyron tarmoqlar va qurilmada nazoratli o'rganishni qo'llab-quvvatladi.

Qurilmada ML: afzalliklari

Mashinani o'rganishni qurilmada bajarish uchta asosiy afzallikni beradi: maxfiylik — ma'lumotlar qurilmadan chiqmaydi (GDPR va HIPAA talablariga javob beradi), tezlik — inferens tarmoq orqali ma'lumot uzatish kechikishisiz millisekundlarda amalga oshiriladi, ofline mavjudlik — model internetga ulanmasdan ishlaydi. Apple Privacy Report (2025) ma'lumotlariga ko'ra, Apple platformalarida ML inferenslarining 90% dan ortig'i Core ML tufayli qurilmada bajariladi.

Core ML arxitekturasi va hisoblash mexanizmlari

Core ML arxitekturasi ko'p darajali printsip asosida qurilgan: yuqori darajada — dasturchi uchun API (MLModel, MLFeatureProvider, MLPredictionOptions), o'rta darajada — .mlpackage formatidagi model, pastki darajada — hisoblash mexanizmlari: Apple Neural Engine (ANE), GPU (Metal Shaders) va CPU (BNNS, Accelerate framework). Core ML model va qurilma jihozlariga qarab avtomatik ravishda eng yaxshi mexanizmni tanlaydi.

MexanizmQurilmalarIshlash
Neural EngineiPhone Xs+, iPad A12+, Mac M1+Maksimal (TOPS)
GPU (Metal)Barcha Apple qurilmalariYuqori (parallel hisoblash)
CPU (BNNS)Barcha Apple qurilmalariAsosiy (moslik)

Apple Neural Engine

Neural Engine (ANE) — bu Apple A12+ va M1+ chiplariga o'rnatilgan ixtisoslashtirilgan neyroprotsessordir. ANE konvolyutsion neyron tarmoqlar (CNN) va matritsalarni ko'paytirish operatsiyalarini A17 Pro da 15.8 TOPS va M4 da 38 TOPS gacha unumdorlik bilan bajarish uchun optimallashtirilgan. Core ML avtomatik ravishda modelni ANE da bajarish mumkinligini aniqlaydi va agar mumkin bo'lsa, uni o'sha yerga yuklaydi. Agar model ANE tomonidan qo'llab-quvvatlanmaydigan operatsiyalarni o'z ichiga olsa, Core ML hisob-kitoblarni GPU va CPU o'rtasida taqsimlaydi.

Metal Performance Shaders

GPU da hisob-kitoblar uchun Core ML Metal Performance Shaders Graph (MPSGraph) — GPU da hisoblash graflarini qurish va bajarish uchun freymvorkdan foydalanadi. MPSGraph Core ML dan neyron tarmoq grafigini oladi va uni ma'lum GPU arxitekturasi (7 yadroli A17 GPU yoki 40 yadroli M4 Ultra GPU) uchun optimallashtirilgan Metal Shaders ga kompilyatsiya qiladi. MPSGraph avtomatik optimallashtirishlari qatlamlarni birlashtirish, ortiqcha operatsiyalarni yo'q qilish va optimal ma'lumot formatini tanlashni o'z ichiga oladi.

Qo'llab-quvvatlanadigan model turlari va formatlari

Core ML uch toifaga bo'lingan barcha asosiy mashinani o'rganish model turlarini qo'llab-quvvatlaydi: neyron tarmoqlar (konvolyutsion CNN, rekurrent RNN/LSTM, transformerlar), ansambl modellar (Random Forest, Gradient Boosting, XGBoost, Decision Trees) va regressiya modellari (chiziqli regressiya, SVM, CRF). Har bir model turi o'z MLModelType pastki protokoliga ega va Core ML avtomatik ravishda tegishli mexanizm va bajarish formatini tanlaydi.

Qo'llab-quvvatlanadigan neyron tarmoq qatlamlari

Core ML 150 dan ortiq neyron tarmoq qatlami turlarini qo'llab-quvvatlaydi: Convolution (1D/2D/3D), BatchNormalization, Pooling (Max/Average), Activation (ReLU, Sigmoid, Tanh, LeakyReLU, PReLU), Recurrent (LSTM/GRU/SimpleRNN), Transformers (MultiHeadAttention, LayerNorm), Metal-ga xos qatlamlar. Qo'llab-quvvatlanmaydigan qatlamlar uchun Core ML custom layer mexanizmini taqdim etadi — qatlamni Metal Shading Language yoki Swift da amalga oshirish imkoniyati.

swift
let model = try MLModel(contentsOf: modelURL)
let input = try MLMultiArray(shape: [1, 224, 224, 3], dataType: .float32)
let prediction = try model.prediction(from: input)

Model fayl formatlari

2021 yilgacha Core ML .mlmodel formatidan — modelning barcha og'irliklari va metama'lumotlarini o'z ichiga olgan ikkilik fayldan foydalanardi. Xcode 13 va Core ML 4 dan boshlab, Apple yangi .mlpackage formatini taqdim etdi — modelni, metama'lumotlarni, kirish/chiqish tavsifini va JSON formatidagi oldingi va keyingi ishlov berish fayllarini o'z ichiga olgan katalogga asoslangan paket tuzilmasi. mlpackage git versiyalashni qo'llab-quvvatlaydi, bu jamoa ishini osonlashtiradi. .mlmodel ni .mlpackage ga konvertatsiya qilish Xcode Model Compiler yoki Python dagi coremltools skripti bilan amalga oshiriladi.

Modellarni Core ML ga konvertatsiya qilish

Modellarni uchinchi tomon freymvorklaridan Core ML ga konvertatsiya qilish Python dagi coremltools kutubxonasi yordamida amalga oshiriladi. coremltools TensorFlow 1.x/2.x (SavedModel, PB, HDF5), PyTorch (TorchScript, traced/scripted modellar), Keras (H5), ONNX va Create ML yordamida yaratilgan modellarni import qilishni qo'llab-quvvatlaydi. Standart konvertatsiya quvur liniyasi uch bosqichni o'z ichiga oladi: modelni asl formatda yuklash, MIL (Model Intermediate Language) — Core ML ichki ko'rinishiga konvertatsiya qilish va .mlpackage ga eksport qilish.

python
import coremltools as ct

model = ct.converters.pytorch.convert(
    source = "model.pt",
    inputs = [ct.TensorType(shape=(1, 3, 224, 224))]
)
model.author = "IT Sectr"
model.short_description = "Image classifier"
model.save("MyModel.mlpackage")

Konvertatsiyadan keyin modelni tekshirish

Konvertatsiyadan so'ng bir xil ma'lumotlarda asl model va konvertatsiya qilingan Core ML modelining bashoratlarini solishtirib model aniqligini tekshirish kerak. Ruxsat etilgan farq — Float32 uchun 1e-3 (0.1%) va Float16/Int8 uchun 1e-2 (1%) dan ko'p emas. coremltools avtomatik taqqoslash uchun ct.utils.compare_models() yordamchi dasturini taqdim etadi. Agar farq me'yordan oshsa, muammo qo'llab-quvvatlanmaydigan operatsiyalarda bo'lishi mumkin — ular custom layers bilan almashtirilishi yoki model soddalashtirilishi kerak.

Core ML ishlashini optimallashtirish

Core ML modelini optimallashtirish — bu sezilarli aniqlik yo'qotmasdan model hajmini kamaytirish va inferens tezligini oshirish jarayonidir. Apple coremltools va Xcode ga o'rnatilgan bir nechta optimallashtirish vositalarini taqdim etadi: kvantizatsiya (og'irliklar aniqligini kamaytirish), pruning (ahamiyatsiz neyronlarni olib tashlash), ortiqcha qatlamlarni olib tashlash va hisoblash grafigini kamaytirish uchun qatlamlarni birlashtirish (fusion).

Float16 va Int8 ga kvantizatsiya

Kvantizatsiya model hajmini Float32 bilan solishtirganda taxminan 2 barobar (Float16) yoki 4 barobar (Int8) kamaytiradi. Core ML uch xil kvantizatsiya rejimini qo'llab-quvvatlaydi: kalibrlash ma'lumotlar to'plami bilan o'qitishdan keyingi kvantizatsiya (PTQ), coremltools orqali konvertatsiya paytida va kvantizatsiyani hisobga olgan holda o'qitish (QAT). Kompyuter ko'rish modellarining aksariyati uchun Float16 ga PTQ inferens tezligini ikki baravar oshirish bilan 0.5% dan kam aniqlik yo'qotilishini beradi.

Xcode da modelni profillash

Xcode Core ML Model Profiler vositasini taqdim etadi, bu modelning ishlashini turli qurilmalarda simulyatorda yoki haqiqiy qurilmada o'lchash imkonini beradi. Profiler har bir qatlamning bajarilish vaqti, mexanizm yuklamasi (ANE/GPU/CPU), eng yuqori xotira sarfi va modelning tor bo'g'inlarini ko'rsatadi. Apple Performance Optimization Guide ma'lumotlariga ko'ra, modellarning 80% dan ortig'i boshqalarga qaraganda sezilarli darajada sekin ishlaydigan kamida bitta qatlamga (qatlam anomaliyasi) ega bo'lib, uni almashtirish yoki birlashtirish orqali optimallashtirish mumkin.

Core ML integratsiyasining amaliy namunasi

Swift da iOS ilovasiga o'qitilgan Core ML modelining integratsiyasini ko'rib chiqaylik. .mlpackage faylini Xcode loyihasiga qo'shgandan so'ng (sudrab tashlash yoki Swift Package Manager orqali), Xcode avtomatik ravishda Swift da model sinfini yaratadi, jumladan tiplangan kirish va chiqishlarni. Dasturchi kirish ma'lumotlarini qo'lda tahlil qilishi shart emas — yaratilgan sinf modelning metama'lumotlariga qarab UIImage, MLMultiArray, String yoki boshqa turlarni qabul qiladi.

swift
import CoreML
import Vision

guard let model = try? VNCoreMLModel(
    for: MyImageClassifier().model
) else { return }

let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results
        as? [VNClassificationObservation]
    else { return }

    if let topResult = results.first {
        print("Class: \(topResult.identifier)")
        print("Confidence: \(topResult.confidence)")
    }
}

let handler = VNImageRequestHandler(
    cgImage: image.cgImage!,
    options: [:]
)
try handler.perform([request])

Xatolarni boshqarish va fallback

Core ML integratsiyasi paytida xatolarni boshqarishni oldindan ko'rish kerak: model qurilmaga mos kelmasligi (juda eski iOS versiyasi), xotira yetishmasligi yoki model faylining shikastlanishi sababli yuklanmasligi mumkin. Fallback mantiqini amalga oshirish tavsiya etiladi: agar model kvantlangan Int8 formatida yuklanmasa, Float16 versiyasini yuklang, agar u ham yuklanmasa — Float32. Apple Crash Analytics ma'lumotlariga ko'ra, ML ilovalarining 5% dan ortiq qulashlari modelning noto'g'ri yuklanishidan kelib chiqadi.

Core ML vs Create ML: farqi nimada

Core ML va Create ML — bu Apple ML ekosistemasining bir-birini to'ldiruvchi ikkita vositasidir. Core ML modellarni qurilmada bajarish (inferens) uchun javobgar, Create ML esa modellarni o'qitish (trening) uchun javobgar. Create ML da yaratilgan modellar ilovalarga keyingi integratsiya uchun aynan Core ML formatiga (.mlpackage) eksport qilinadi. Veb-ishlab chiqish bilan o'xshatish adigan bo'lsak, Core ML brauzer (ijro), Create ML esa kod yozish uchun IDE (o'rganish) dir.

ParametrCore MLCreate ML
MaqsadModellarni bajarish (inferens)Modellarni o'qitish (trening)
PlatformaiOS, iPadOS, macOS, watchOS, tvOSmacOS (faqat)
Format.mlpackage (iste'mol qiladi).mlpackage (yaratadi)
KodSwift / Objective-C APIUI (Xcode) yoki Swift API
FoydalanuvchiIlova dasturchisiDasturchi / Data scientist

Ko'p beriladigan savollar

Core ML nima?

Core ML — bu Apple tomonidan oldindan o'qitilgan ML modellarini iOS, iPadOS, macOS, watchOS va tvOS qurilmalarida bajarish uchun mashinani o'rganish freymvorkidir. Neyron tarmoqlar, qaror daraxtlari va regressiyalarni qo'llab-quvvatlaydi, avtomatik ravishda optimal hisoblash mexanizmini (Neural Engine, GPU yoki CPU) tanlaydi.

Core ML TensorFlow dan qanday farq qiladi?

TensorFlow — bu serverlar va mobil qurilmalarda modellarni o'qitish va bajarish uchun universal freymvorkdir. Core ML — bu modellarni faqat Apple qurilmalarida maksimal unumdorlik bilan bajarish (o'qitish emas) uchun ixtisoslashtirilgan mexanizm bo'lib, ma'lum jihozlar (ANE, GPU, Metal) uchun optimallashtirish tufayli. TensorFlow Mobile endi iOS da qo'llab-quvvatlanmaydi — Apple o'z platformalarida barcha ML vazifalari uchun Core ML ni tavsiya qiladi.

PyTorch modelini Core ML ga qanday konvertatsiya qilish mumkin?

Konvertatsiya Python da coremltools kutubxonasi yordamida amalga oshiriladi: PyTorch modelini TorchScript (torch.jit.trace) ga eksport qiling, so'ngra .mlpackage yaratish uchun ct.converters.pytorch.convert() dan foydalaning. coremltools avtomatik ravishda PyTorch qatlamlarini qo'llab-quvvatlanadigan Core ML qatlamlariga xaritalaydi va grafikni ANE uchun optimallashtiradi.

Core ML barcha iPhone larda ishlaydimi?

Core ML iOS 11 va undan yangi barcha iPhone larda ishlaydi. Biroq, ishlash apparat jihozlariga bog'liq: iPhone 5s/6 — faqat CPU (sekin inferens), iPhone 8/X — GPU (Metal), iPhone Xs va undan yangilari — Neural Engine (A17 Pro da 15.8 TOPS gacha maksimal unumdorlik). Eng yaxshi ishlashga erishish uchun minimal iOS 12+ versiyasini ko'rsatish tavsiya etiladi.

Core ML modellari qanday formatda?

Zamonaviy format — .mlpackage (model, metama'lumotlar va kirish/chiqish tavsifini o'z ichiga olgan katalog). Eskirgan format — .mlmodel (yagona ikkilik fayl). Xcode kompilyatsiya paytida .mlmodel ni avtomatik ravishda .mlpackage ga konvertatsiya qiladi, ammo yangi loyihalar uchun to'g'ridan-to'g'ri .mlpackage dan foydalanish tavsiya etiladi.

Xulosa

  • Core ML — ekosistemaning barcha platformalarida ishlaydigan standart Apple qurilmada mashinani o'rganish freymvorki.
  • Python da coremltools kutubxonasi orqali TensorFlow, PyTorch, Keras va ONNX dan konvertatsiyani qo'llab-quvvatlaydi.
  • Inferens Neural Engine (iPhone Xs+), GPU (Metal) yoki CPU da avtomatik mexanizm tanlash bilan amalga oshiriladi.
  • Float16 va Int8 ga kvantizatsiya model hajmini minimal aniqlik yo'qotilishi bilan 2-4 barobar kamaytiradi.
  • Create ML Core ML uchun modellar yaratadi, Core ML esa ularni faqat bajaradi — bu turli vositalar.
  • .mlpackage formati eskirgan .mlmodel ni almashtirib, versiyalash va JSON metama'lumotlarni ta'minlaydi.
  • Xcode dagi Core ML Profiler modelning tor bo'g'inlarini aniqlash va qatlamlarni almashtirish orqali ularni optimallashtirish imkonini beradi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing