Core ML মডেল রূপান্তর: এটি কী, ধাপ এবং রূপান্তরের পদ্ধতি

লেখক: 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 ফরম্যাটে রূপান্তর।
  • প্রধান সরঞ্জাম হল coremltools, Apple-এর একটি ওপেন-সোর্স Python লাইব্রেরি।
  • 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-বিট, 16-বিট প্যালেট এবং বিভিন্ন বিট গভীরতার সাথে LUT কোয়ান্টাইজেশন সমর্থন করে।

রূপান্তরের পরে কি কম্পাইলেশন প্রয়োজন?

হ্যাঁ, ডিভাইসে নির্বাহের আগে .mlmodel-কে mlmodelc-এ কম্পাইল করতে হবে। বিল্ডের সময় Xcode-এ বা MLModel.compile(at:) এর মাধ্যমে ডিভাইসে কম্পাইলেশন স্বয়ংক্রিয়ভাবে সম্পাদিত হয়।

আমি কীভাবে রূপান্তরিত মডেলের নির্ভুলতা যাচাই করব?

উৎস এবং রূপান্তরিত মডেলের আউটপুট তুলনা করতে ct.models.CompiledModel ব্যবহার করুন। একই ইনপুট ডেটা প্রদান করুন এবং MSE বা cosine similarity মেট্রিক ব্যবহার করে ফলাফল তুলনা করুন।

সারসংক্ষেপ

  • 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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন