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 ML স্বয়ংক্রিয়ভাবে উপযুক্ত ব্যাকএন্ড এবং কার্যকরন ফরম্যাট নির্বাচন করে।
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 (টর্চ.জিট.ট্রেস) এ রাপত করুন, তারপর .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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন