کور ای ‌ای ل موڈیل کنورشن: یہ کیا ہے، مراحل اور تبدیل کے طریقے

مصنف: IT Sectr اشاعت: 2026-07-17 مطالعے کا وقت: 6 منٹ

Core ML Model Conversion تربیت یافتہ مشین لرننگ موڈیلوں کو مقبول فریم ورکوں سے Core ML (.mlmodel) فارمیٹ میں تبدیل کرنے کا عملیہ ہے، جو Apple آلات پر عمل کرنے کے لئے بہترین بنایا گیا ہے۔ تبدیل ضروری ہے کیونکہ PyTorch، TensorFlow اور دیگر فریم ورک Core ML Runtime کے ساتھ مطابق نہ ہونے والے اپنے فارمیٹ استعمال کرتے ہیں۔ coremltools دستاویز، 2025 کے مطابق، لائبریری PyTorch، TensorFlow 1.x اور 2.x، Keras، ONNX، scikit-learn اور libsvm سے تبدیل کی حمایت کرتی ہے۔ coremltools خود بخود غیر تعاون یافتہ کاروائیوں کو مساوی کاروائیوں سے بدل دیتا ہے، موڈیل کی عددی درستی کو برقرار رکھتا ہوئے۔

اهم نکات

  • Core ML Model Conversion — Apple آلات پر عمل کے لئے ML موڈیلوں کا .mlmodel فارمیٹ میں تبدیل۔
  • بنیادی آلا Apple کی ایک آئی سورس Python لائبریری coremltools ہے۔
  • PyTorch، TensorFlow، Keras، ONNX اور scikit-learn کی حمایت کرتا ہے۔
  • عملیہ میں گراف ٹریسنگ، کاروائی کی جاں پیمائی اور درستی کی تصدیق شامل ہے۔
  • تبدیل کے بعد، موڈیل کو تیزی کے لئے FP16 یا INT8 میں کمیاب کیا جا سکتا ہے۔

Core ML Model Conversion کیا ہے

Core ML Model Conversion ایک تربیت یافتہ مشین لرننگ موڈیل کو مبادی فریم ورک فارمیٹ سے .mlmodel فارمیٹ میں تبدیل کرنے کا عملیہ ہے جسے Apple آلات پر Core ML Runtime سمجھتا ہے۔ تبدیل کے بغیر، PyTorch یا TensorFlow میں تربیت یافتہ موڈیل براہ راست iOS یا macOS پر لوڈ اور عمل نہیں کیا جا سکتا۔

تبدیل کے عملیہ میں حساب گراف کا ترجمہ شامل ہے: مبادی فریم ورک کا ہر آپریٹر (Conv2D، BatchNorm، ReLU) متبادل Core ML آپریٹر سے منسوب کیا جاتا ہے۔ اگر کوئی براہ راست متبادل موجود نہیں ہے، coremltools مرکب کاروائیوں یا کسٹم پرتیں استعمال کرتا ہے۔ Apple ML Research کے مطابق، لائبریری مختلف فریم ورکوں کے 200 سے زائد آپریٹرز کو کیر کرتی ہے۔

تبدیل کے بعد، موڈیل .mlmodel بنڈل فارمیٹ میں محفوظ ہوتا ہے، جس میں protobuf گراف تفصیل، بائینری شکل میں وزن اور میٹا ڈیٹا شامل ہے۔ یہ فائل پھر ہدف آلہ پر عمل کے لئے mlmodelc میں مرتب کی جاتی ہے۔

تعاون یافتہ فریم ورک اور فارمیٹ

coremltools ورشن 7.x چہ مذابع سے تبدیل کی حمایت کرتا ہے۔ PyTorch — torch.jit.trace یا torch.export کے ذریعے، TensorFlow 2.x — SavedModel اور Keras H5 کے ذریعے، TensorFlow 1.x — منجمد گراف .pb کے ذریعے۔ ONNX کے لئے، ایک درمیانی نمائندگی استعمال کی جاتی ہے، جو پھر Core ML میں ترجمہ کی جاتی ہے۔

فریم ورک مطابقت میٹرکس

فریم ورکداخلی فارمیٹcoremltools API
PyTorchTorchScript، torch.exportCTConverter / convert()
TensorFlow 2.xSavedModel، Keras H5convert()
TensorFlow 1.xFrozen .pbconvert()
ONNX.onnxonnx_to_coreml()
scikit-learn.pkl / Pipelineconverters.sklearn.convert()
Keras.h5 / .kerasconvert()

تبدیل کے آلات: coremltools

coremltools Apple کی سرکاری آئی سورس Python لائبریری ہے، جو pip install coremltools کے ذریعے دستیاب ہے۔ لائبریری تمام تعاون یافتہ فریم ورکوں سے تبدیل کے لئے ایک متحد API اور بعد از پروسیسنگ کے آلات فراہم کرتی ہے: کمیابی، درستی کی جانچ اور گراف ویزوآلائزیشن۔

PyTorch سے تنصیب اور بنیادی موڈیل تبدیل:

python
import coremltools as ct
import torch
import torchvision

model = torchvision.models.resnet18(pretrained=True)
model.eval()

example_input = torch.rand(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)

mlmodel = ct.convert(
    traced_model,
    source="pytorch",
    inputs=[ct.ImageType(shape=example_input.shape)]
)
mlmodel.save("ResNet18.mlmodel")

TensorFlow سے تبدیل کے لئے، SavedModel کو مخاذ کے طور پر استعمال کریں۔ coremltools signature_def کی بنیاد پر خود بخود داخلی اور خارجی ٹینسرز کا تعین کرتا ہے:

python
import coremltools as ct

mlmodel = ct.convert(
    "saved_model_dir",
    source="tensorflow",
    @minimum_deployment_target=ct.target.iOS16
)
mlmodel.save("MyTFModel.mlmodel")

موڈیل تبدیل کے مراحل

تبدیل کا عملیہ چار مراحل پر مشتمل ہے۔ پہلے مرحلے میں، coremltools مبادی موڈیل کو لوڈ کرتا ہے اور ٹریسنگ یا گراف سکیننگ کرتا ہے۔ PyTorch کے لئے، torch.jit.trace استعمال کیا جاتا ہے، جو موڈیل کے ذریعے ایک نمونہ داخل چلاتا ہے اور کاروائیوں کی ترتیب ریکارڈ کرتا ہے۔

دوسرے مرحلے میں، آپریٹر میپنگ کی جاتی ہے۔ مبادی گراف کا ہر آپریٹر ایک Core ML آپریٹر سے منسوب کیا جاتا ہے۔ اگر کوئی براہ راست متبادل موجود نہیں ہے، coremltools آپریٹر کو تعاون یافتہ آپریٹرز کے ایک سیکونس میں تقسیم کرتا ہے۔ coremltools دستاویز کے مطابق، معمولی آرکیٹکچرز کے لئے PyTorch آپریٹر کیریج 95% سے تجاوز کر جاتی ہے۔

تیسرا مرحلہ گراف بہترینکری ہے۔ coremltools کاروائی فیوژن (مثلاں، conv + batch norm)، غیر ضروری تبدیلوں کو ہٹانا اور کارکردگی بہتر کرنے کے لئے آپریٹرز کی دوبارہ ترتیب دےنے کا کام کرتا ہے۔ چوتھا مرحلہ وزن اور میٹا ڈیٹا کے تحفظ کے ساتھ .mlmodel فارمیٹ میں سیریالائزیشن ہے۔

عام مسائل اور ان کے حل

تبدیل میں سب سے عام مسئلہ غیر تعاون یافتہ کاروائیوں ہے۔ اگر موڈیل میں ایک ایسا آپریٹر ہے جو Core ML میں موجود نہیں ہے، coremltools آپریشن کے نام کے ساتھ ایک غلطی کی رپورٹ کرتا ہے۔ حل آپریٹر کو تعاون یافتہ آپریٹرز کے ایک مساوی مرکب سے بدلنا یا کسٹم لیئر API کے ذریعے ایک کسٹم پرت لاگو کرنا ہے۔

دوسرا مسئلہ جہت کا بے میل ہے۔ PyTorch NCHW فارمیٹ استعمال کرتا ہے، جبکہ Core ML بحکم دفتری NHWC استعمال کرتا ہے۔ coremltools خود بخود ترانسپوزیشن داخل کرتا ہے، لیکن کبھی کبھار محوروں کا ترتیب غلط طور پر متعین ہوتا ہے۔ تبدیل لاگز میں داخلی اور خارجی جہات کی جانچ کریں اور اگر ضرورت ہو تو صحیح ناموں کے ساتھ input_features متعین کریں۔

تیسرا مسئلہ کمیابی کے بعد درستی کا نقصان ہے۔ FP16 یا INT8 پالیٹ کے ساتھ تبدیل کرتے وقت موڈیل کی درستی کم ہو سکتی ہے۔ coremltools ایک ہی داخلی ڈیٹا پر مبادی اور تبدیل شدہ موڈیل کے آؤٹ پوٹ کا موازنہ کرنے کے لئے ct.models.CompiledModel یوٹیلٹی فراہم کرتا ہے۔ اگر اختلاف 1% سے تجاوز کرتا ہے، تو کیلیبریشن کے بغیر FP16 پالیٹ کے ساتھ کمیابی استعمال کریں یا کمیابی کو مکمل طور پر چھوڑ دیں۔

PyTorch اور TensorFlow سے تبدیل کے مثال

داخلی قسم کی وضاحت اور کم سے کم iOS ورشن کے ساتھ PyTorch سے MobileNetV3 موڈیل کو تبدیل کرنے کی مثال۔ خود بخود تصویر کی نارمالائزیشن کے لئے ct.ImageType استعمال کریں:

python
import coremltools as ct
import torchvision

model = torchvision.models.mobilenet_v3_small(
    pretrained=True
)
model.eval()
example = torch.rand(1, 3, 224, 224)
traced = torch.jit.trace(model, example)

mlmodel = ct.convert(
    traced,
    source="pytorch",
    inputs=[ct.ImageType(
        shape=example.shape,
        scale=1.0/255.0,
        bias=[0, 0, 0]
    )],
    @minimum_deployment_target=ct.target.iOS16
)

# مربندہ Xcode میں ترتیب کے لئے .mlmodel میں محفوظ کریں
mlmodel.save("MobileNetV3.mlmodel")

FP16 کمیابی کے ساتھ TensorFlow Keras سے تبدیل کی مثال۔ Apple A13 اور نئے آلات پر FP16 حمایت کو چالو کرنے کے لئے minimum_deployment_target متعین کریں:

python
import coremltools as ct
from tensorflow import keras

keras_model = keras.applications.EfficientNetB0(
    weights="imagenet"
)

mlmodel = ct.convert(
    keras_model,
    source="tensorflow",
    @minimum_deployment_target=ct.target.iOS17
)

# حجم میں 2 گنا کمی کے لئے وزن کو FP16 میں کم کریں
mlmodel_fp16 = ct.models.neural_network.quantization_utils.quantize_weights(
    mlmodel, 16
)
mlmodel_fp16.save("EfficientNetB0_fp16.mlmodel")

اکثر پوچے جانے والے سوالات

کیا میں سورس کوڈ تک رسائی کے بغیر موڈیل تبدیل کر سکتا ہوں؟

جی ہاں، اگر موڈیل TorchScript، SavedModel یا ONNX فارمیٹ میں محفوظ ہے۔ coremltools ان فارمیٹوں کو سورس کوڈ کی ضرورت کے بغیر لوڈ کرتا ہے اور حساب گراف کی بنیاد پر تبدیل کرتا ہے۔

میں کیسے جان سکتا ہوں کہ کون سی کاروائیاں Core ML میں تعاون یافتہ نہیں ہیں؟

coremltools تبدیل کے دوران لاگ میں غیر تعاون یافتہ کاروائیوں کی فہرست دیڤتا ہے۔ دستیاب Core ML آپریٹرز کی مکمل فہرست حاصل کرنے کے لئے ct.utils.get_coreml_operations() استعمال کریں۔

coremltools میں کمیابی پالیٹ کیا ہے؟

کمیابی پالیٹ موڈیل کے وزن کو سکڑانے کے لئے پیرامیٹرز کا ایک سیٹ ہے: fp16، int8 یا پالیٹائزیشن۔ coremltools 8-bit، 16-bit پالیٹ اور مختلف بٹ گھرائی کے ساتھ LUT کمیابی کی حمایت کرتا ہے۔

کیا تبدیل کے بعد ترتیب ضروری ہے؟

جی ہاں، آلہ پر عمل کرنے سے پہلے .mlmodel کو mlmodelc میں مرتب کیا جانا چاہی۔ ترتیب بائلڈ کے دوران Xcode میں یا MLModel.compile(at:) کے ذریعے آلہ پر خود بخود کی جاتی ہے۔

میں تبدیل شدہ موڈیل کی درستی کیسے تصدیق کروں؟

مبادی اور تبدیل شدہ موڈیل کے آؤٹ پوٹ کا موازنہ کرنے کے لئے ct.models.CompiledModel استعمال کریں۔ ایک ہی داخلی ڈیٹا فراہم کریں اور MSE یا کوسائن سمانت میٹرکس کا استعمال کرکے نتائج کا موازنہ کریں۔

خلاصہ

  • Core ML Model Conversion Apple آلات پر عمل کے لئے ML موڈیلوں کو .mlmodel فارمیٹ میں تبدیل کرنے کا عملیہ ہے۔
  • بنیادی آلا coremltools ہے، جو PyTorch، TensorFlow، Keras، ONNX اور scikit-learn کی حمایت کرتا ہے۔
  • تبدیل میں گراف ٹریسنگ، آپریٹر میپنگ، بہترینکری اور سیریالائزیشن شامل ہے۔
  • غیر تعاون یافتہ کاروائیاں مساوی مرکبوں سے بدل دی جاتی ہیں یا کسٹم لیئر API کے ذریعے لاگو کی جاتی ہیں۔
  • تبدیل کے بعد، حجم کم کرنے اور انفرنس تیز کرنے کے لئے FP16 اور INT8 کمیابی دستیاب ہے۔
  • تعینات سے پہلے، ct.models.CompiledModel کے ذریعے موڈیل کی درستی کی تصدیق کریں۔
  • ایپلیکیشن میں خود بخود موڈیل اپڈیٹ کے لئے CI/CD کے حصے کے طور پر تبدیل پائپ لائن کی منصوبہ بنائیں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں