Core ML Apple کا مشین لرننگ فریم ورک ہے جو آپکو پھلے سے ٹریند ML ماڈلز کو براہ راست iOS, iPadOS, macOS, watchOS اور tvOS ایپ لیکیشنز میں ضم کرنے کی اجازت دیتا ہے۔ یہ فریم ورک نیورل نیٹورکس، فیصلہ ساز درخت، لینیئر ریگریشن اور انسیمبل طریقوں کو سپورٹ کرتا ہے، ساتھ ہی TensorFlow، PyTorch، Keras اور ONNX سے Apple کے اپنے فارمیٹ میں موڈل تبدیل کا بھی سپورٹ کرتا ہے۔ Apple Machine Learning Research (2025) کے مطابق، Core ML مکمل طور پر آن ڈیوائس انفرنس کرتا ہے، ڈیٹا رازداری کو یقینی بناتا ہے اور زیادہ تر موڈلز کے لیے 10 ملی سیکنڈ سے کم تاخیر یقینی بناتا ہے۔
اہم نکات
Core ML Apple کے مشین لرننگ ایکو سیسٹم کا ایک اہم جزو ہے، جسے WWDC 2017 میں متعارف کرایا گیا تھا۔ Core ML سے پہلے، iOS ڈیولپرز آن ڈیوائس ML موڈل چلانے کے لیے تیسرے فریقوں کی لائبریریز (TensorFlow Mobile, Caffe2) یا کسٹم حل استعمال کرتے تھے۔ Core ML نے تمام موڈل اقسام کے لیے — کلاسیکل ریگریشنز سے لیڧكر گہرے نیورل نیٹورکس تک — ایک واحد متحد انٹرفیس فراہم کیا اور مخصوص آلہ کے لیے نشیبی سطح کی بہترین سنبھالی۔
Core ML (2017) کا پہلا ورژن صرف مقررہ انپٹ سائز کے ساتھ ستاٹک موڈلز کو سپورٹ کرتا تھا۔ Core ML 2 (2018) نے بیچ پریڈکشن اور حقیقی وقت میں موڈل اپ ڈیٹ کا سپورٹ شامل کیا۔ Core ML 3 (2019) آن ڈیوائس ٹریننگ اور درجنوں نئے نیورل نیٹورک لیئرز کا سپورٹ لایا۔ Core ML 4 (2021) نے ملٹی آؤٹ پٹ موڈلز اور بہتر امیج پروسیسنگ کا سپورٹ متعارف کرایا۔ Core ML 5 (2024) نے ڈائنامک نیورل نیٹورکس اور نئے ML لیئرز کا استعمال کرتے ہوئے آن ڈیوائس نگران شدہ سیکننگ کا سپورٹ شامل کیا۔
آن ڈیوائس مشین لرننگ چلانے سے تین اہم فوائد حاصل ہوتے ہیں: رازداری — ڈیٹا کبھی آلہ نہیں چھوڑتا (GDPR اور HIPAA کی ضروریات کو پورا کرتا ہے)، بہاور — انفرنس بغیر نیٹورک تاخیر کے ملی سیکنڈ میں مکمل ہوتا ہے، آف لائن دستیابی — موڈل انٹرنیٹ کنیکشن کے بغیر کام کرتا ہے۔ Apple Privacy Report (2025) کے مطابق، Apple پلیٹ فارمز پر 90% سے زائد ML انفرنسز Core ML کی وجہ سے آن ڈیوائس کی جاتی ہیں۔
Core ML آرکیٹیکچر کئی تہوں کے اصول پر بنا ہے: سب سے اوپر سطح پر — ڈیولپر API (MLModel, MLFeatureProvider, MLPredictionOptions)، درمیانی سطح پر — .mlpackage فارمٹ میں موڈل، نیچلے سطح پر — کمپیوٹنگ بیک اینڈز: Apple Neural Engine (ANE)، GPU (Metal Shaders) اور CPU (BNNS، Accelerate framework)۔ Core ML موڈل اور آلہ کے ہارڈویئر کے مطابق بہترین بیک اینڈ کا خودکار انتخاب کرتا ہے۔
| بیک اینڈ | آلہ جات | کارکردگی |
|---|---|---|
| Neural Engine | iPhone Xs+, iPad A12+, Mac M1+ | زیادہ سے زیادہ (TOPS) |
| GPU (Metal) | تمام Apple آلہ جات | زیادہ (متوازی کمپیوٹنگ) |
| CPU (BNNS) | تمام Apple آلہ جات | بنیادی (مطابقت) |
Neural Engine (ANE) Apple A12+ اور M1+ چپس میں ضم شدہ ایک ماہر نیورل پروسیسر ہے۔ ANE A17 Pro پر 15.8 TOPS اور M4 پر 38 TOPS تک کی کارکردگی کے ساتھ کنوولیوشنل نیورل نیٹورک (CNN) آپریشنز اور میٹرکس ضرب کے لیے بہترین کردہ ہے۔ Core ML خودکار طور پر تعین کرتا ہے کہ موڈل ANE پر چل سکتا ہے یا نہیں، اور اگر چل سکتا ہے تو اسے وہاں لوڈ کرتا ہے۔ اگر موڈل میں ANE کے ذریع غیر معاون آپریشنز ہیں، تو Core ML گرداوری کو GPU اور CPU کے درمیان تقسیم کرتا ہے۔
GPU گرداوریوں کے لیے، Core ML Metal Performance Shaders Graph (MPSGraph) استعمال کرتا ہے، جو GPU پر گرداوری گراف بنانے اور چلانے کے لیے ایک فریم ورک ہے۔ MPSGraph Core ML سے نیورل نیٹورک گراف لے کر اسے مخصوص GPU آرکیٹیکچر (7 کور A17 GPU یا 40 کور M4 Ultra GPU) کے لیے بہترین کردہ Metal Shaders میں کمپائل کرتا ہے۔ MPSGraph کی خودکار بہترین میں لیئر فیوژن، ضروری آپریشنز کا خاتمہ اور بہترین ڈیٹا فارمیٹ کا انتخاب شامل ہے۔
Core ML تین زمرہ میں تقسیم شدہ تمام اهم مشین لرننگ موڈل اقسام کو سپورٹ کرتا ہے: نیورل نیٹورکس (کنوولیوشنل CNN، ریکریو RNN/LSTM، ٹرانسفارمرز)، انسیمبل موڈلز (Random Forest، Gradient Boosting، XGBoost، فیصلہ ساز درخت) اور ریگریشن موڈلز (لینیئر ریگریشن، SVM، CRF)۔ ہر موڈل قسم کا اپنا MLModelType ذیلی پروٹیکل ہے، اور Core Lily مناسب بیک اینڈ اور تعمیل فارمیٹ کا خودکار انتخاب کرتا ہے۔
Core ML نیورل نیٹورک لیئرز کی 150 سے زائد اقسام کو سپورٹ کرتا ہے: Convolution (1D/2D/3D)، BatchNormalization، Pooling (Max/Average)، Activation (ReLU، Sigmoid، Tanh، LeakyReLU، PReLU)، Recurrent (LSTM/GRU/SimpleRNN)، Transformers (MultiHeadAttention، LayerNorm)، Metal مخصوص لیئرز۔ غیر معاون لیئرز کے لیے، Core ML کسٹم لیئر میکانزم فراہم کرتا ہے — Metal Shading Language یا 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)
2021 سے پہلے، Core ML .mlmodel فارمیٹ استعمال کرتا تھا — ایک بائنری فائل جس میں تمام موڈل وزن اور میٹا ڈیٹا ہوتا تھا۔ Xcode 13 اور Core ML 4 سے شروع کرتے ہوئے، Apple نے نئا .mlpackage فارمیٹ متعارف کرایا — ایک ڈائریکٹری پر مبنی پیکیج ساخت جس میں موڈل، میٹا ڈیٹا، انپٹ/آؤٹ پٹ تفصیل اور JSON میں پیش اور بعد از پروسیسنگ فائلیں شامل ہیں۔ mlpackage git ورژننگ کو سپورٹ کرتا ہے، جو ٹیم ڈیولپمنٹ کو آسان بناتا ہے۔ .mlmodel سے .mlpackage میں تبدیل Xcode Model Compiler یوٹیلٹی یا coremltools Python سکرپٹ سے کی جاتی ہے۔
تبدیل تیسرے فریقوں کے فریم ورکس سے Core ML میں Python میں coremltools لائبریری کا استعمال کرکے کی جاتی ہے۔ coremltools TensorFlow 1.x/2.x (SavedModel، PB، HDF5)، PyTorch (TorchScript، traced/scripted موڈلز)، Keras (H5)، ONNX اور Create ML سے بنائے گئے موڈلز کی درآمد کو سپورٹ کرتا ہے۔ معیاری تبدیل پائپ لائن میں تین مراحل ہیں: موڈل کو اس کے اصل فارمیٹ میں لوڈ کرنا، MIL (Model Intermediate Language) — Core ML کی اندرونی نمائندگی — میں تبدیل کرنا، اور .mlpackage میں برآمد کرنا۔
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")
تبدیل کے بعد، آپ کو ایک ہی ڈیٹا پر اصل موڈل اور تبدیل شدہ Core ML موڈل کی پیش گوئیاں کا موازنہ کرکے موڈل درستی کی تصدیق کرنی چاہئے۔ قابل قبول انحراف Float32 کے لیے 1e-3 (0.1%) اور Float16/Int8 کے لیے 1e-2 (1%) سے زیادہ نہیں ہے۔ coremltools خودکار موازنے کے لیے ct.utils.compare_models() یوٹیلٹی فراہم کرتا ہے۔ اگر انحراف معیار سے تجاوز کرتا ہے، تو غیر معاون آپریشنز میں مسائلہ ہو سکتا ہے — انہیں کسٹم لیئرز سے بدلنے یا موڈل کو آسان کرنے کی ضرورت ہے۔
بہترین Core ML موڈل کے سائز کو کم کرنے اور اہم درستی کے نقصان کے بغیر انفرنس کی بہاور بڑھانے کا عمل ہے۔ Apple کئی بہترین آلات فراہم کرتا ہے جو coremltools اور Xcode میں ضم ہیں: کوانٹائزیشن (وزن درستی کو کم کرنا)، پروننگ (غیر اہم نیورنز کو ہٹانا)، ضروری لیئرز کو ہٹانا اور گرداوری گراف کو کم کرنے کے لیے لیئر فیوژن۔
کوانٹائزیشن Float32 کے مقابلے میں موڈل کا حجم تقریبنا 2 گونا (Float16) یا 4 گونا (Int8) کم کرتا ہے۔ Core ML تین کوانٹائزیشن موڈ کو سپورٹ کرتا ہے: کیلیبریشن ڈیٹا سیٹ کے ساتھ پسٹ ٹریننگ کوانٹائزیشن (PTQ)، coremltools کے ذریع تبدیل کے دوران، اور کوانٹائزیشن آگاہ ٹریننگ (QAT)۔ زیادہ تر کمپیوٹر ویژن موڈلز کے لیے، PTQ سے Float16 میں انفرنس کی بہاور دوگونی ہونے پر 0.5% سے کم درستی کا نقصان ہوتا ہے۔
Xcode Core ML Model Profiler آلا فراہم کرتا ہے، جو آپکو سمیولیٹر میں یا حقیقی آلہ پر مختلف آلوں پر موڈل کی کارکردگی ناپنے کی اجازت دیتا ہے۔ پروفائلر ہر لیئر کے لیے تعمیل کا وقت، بیک اینڈ لوڈ (ANE/GPU/CPU)، چوٹی میمری کا استعمال اور موڈل کی رکاوٹیں دیڤائی کرتا ہے۔ Apple Performance Optimization Guide کے مطابق، 80% سے زائد موڈلز میں کم سے کم ایک لیئر ہوتا ہے جو باقی کۀ بہ نسبت شدید آہستہ چالتا ہے (لیئر غیر معمولیت)، جسے بدلنے یا فیوژن سے بہتر کیا جا سکتا ہے۔
آئیے Swift استعمال کرتے ہوئے ایک iOS ایپ میں ایک ٹریند Core ML موڈل کے انضمام پر نظر ڈالیں۔ Xcode پروجیکٹ میں .mlpackage فائل شامل کرنے کے بعد (گھسیٹ کرکے یا Swift Package Manager کے ذریع)، Xcode خودکار طور پر ٹائپ شدہ انپٹ اور آؤٹ پٹ کے ساتھ ایک Swift موڈل کلاس تیار کرتا ہے۔ ڈیولپر کو دستی انپٹ ڈیٹا پارس کرنے کی ضرورت نہیں ہے — تیار کردہ کلاس موڈل میٹا ڈیٹا کے مطابق UIImage، MLMultiArray، String یا دیگر اقسام کو قبول کرتا ہے۔
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])
Core ML کو ضم کرتے وقت، آپ کو غلطی کا انتظام لاگو کرنا چاہئے: آلہ کی ادھر داری (بہت پرانا iOS ورژن)، ناکافی میمری یا موڈل فائل کے نقصان کی وجہ سے موڈل لوڈ نہیں ہو سکتا۔ فال بیک لاجک لاگو کرنے کی سفارش کی جاتی ہے: اگر موڈل کوانٹائزد Int8 فارمیٹ میں لوڈ نہیں ہوتا، تو Float16 ورژن لوڈ کریں، اور اگر وہ بھی ناکام ہوتا ہے — Float32۔ Apple Crash Analytics کے مطابق، 5% سے زائد ML ایپ کریشز غلط موڈل لوڈنگ کی وجہ سے ہوتے ہیں۔
Core ML اور Create ML Apple ML ایکو سیسٹم کے دو تکمیلی اوزار ہیں۔ Core ML آن ڈیوائس موڈل پرعمل (انفرنس) کا انتظام کرتا ہے، جبکہ Create ML موڈل ٹریننگ کا انتظام کرتا ہے۔ Create ML میں بنائے گئے موڈل بعد میں ایپ میں ضم کرنے کے لیے خاص طور پر Core ML فارمیٹ (.mlpackage) میں برآمد کیے جاتے ہیں۔ ویب ڈیولپمنٹ کی اصطلاح میں، Core ML براؤزر (تعمیل) ہے اور Create ML کوڈ لکھنے کے لیے IDE (ٹریننگ) ہے۔
| پیرامیٹر | Core ML | Create ML |
|---|---|---|
| مقصد | موڈل تعمیل (انفرنس) | موڈل ٹریننگ |
| پلیٹ فارم | iOS, iPadOS, macOS, watchOS, tvOS | macOS (صرف) |
| فارمیٹ | .mlpackage (استعمال کرتا ہے) | .mlpackage (بناتا ہے) |
| کوڈ | Swift / Objective-C API | Xcode UI یا Swift API |
| صارف | ایپ ڈیولپر | ڈیولپر / ڈیٹا سائنس ڈسٹ |
اکثر پوچے جانے والے سوالات
Core ML iOS, iPadOS, macOS, watchOS اور tvOS آلوں پر پھلے سے ٹریند ML موڈل چلانے کے لیے Apple کا مشین لرننگ فریم ورک ہے۔ یہ نیورل نیٹورکس، فیصلہ ساز درخت اور ریگریشن کو سپورٹ کرتا ہے، خودکار طور پر بہترین کمپیوٹنگ بیک اینڈ (Neural Engine, GPU یا CPU) کا انتخاب کرتا ہے۔
TensorFlow سروروں اور موبائل آلوں پر موڈلز کو ٹرین اور چلانے کے لیے ایک آلمگیر فریم ورک ہے۔ Core ML ہارڈویئر مخصوص بہترین (ANE، GPU، Metal) کے ذریع صرف Apple آلوں پر موڈلز کو چلانے (ٹریننگ نہیں) کے لیے ایک ماہر انجن ہے۔ TensorFlow Mobile iOS پر مزید تعاون یافت نہیں ہے — Apple اپنے پلیٹ فارمز پر تمام ML کاموں کے لیے Core ML کی سفارش کرتا ہے۔
تبدیل Python میں coremltools لائبریری کا استعمال کرکے کی جاتی ہے: PyTorch موڈل کو TorchScript (torch.jit.trace) میں برآمد کریں، پھر .mlpackage بنانے کے لیے ct.converters.pytorch.convert() کا استعمال کریں۔ coremltools خودکار طور پر PyTorch لیئرز کو معاون Core ML لیئرز سے میپ کرتا ہے اور ANE کے لیے گراف کو بہتر کرتا ہے۔
Core ML iOS 11 اور اس کے بعد کے تمام iPhone پر کام کرتا ہے۔ تاہم، کارکردگی ہارڈویئر پر منحصر ہے: iPhone 5s/6 — صرف CPU (سست انفرنس)، iPhone 8/X — GPU (Metal)، iPhone Xs اور اس کے بعد — Neural Engine (A17 Pro پر 15.8 TOPS تک زیادہ سے زیادہ کارکردگی)۔ بہترین کارکردگی کے لیے، کم سے کم iOS ورژن 12+ مقرر کرنے کی سفارش کی جاتی ہے۔
جدید فارمیٹ .mlpackage ہے (ایک ڈائریکٹری جس میں موڈل، میٹا ڈیٹا اور انپٹ/آؤٹ پٹ تفصیلات ہوتی ہیں)۔ پرانا فارمیٹ .mlmodel (ایک واحد بائنری فائل) ہے۔ Xcode بائلڈ کے دوران .mlmodel کو خودکار طور پر .mlpackage میں تبدیل کرتا ہے، لیکن نئے پروجیکٹز کے لیے سیدھے .mlpackage استعمال کرنے کی سفارش کی جاتی ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں