Core ML — چارچوب یادگیری ماشین از اپل، بهینهسازی شده برای اجرای مدلهای ML مستقیماً روی دستگاههای iOS، macOS، watchOS و tvOS. برخلاف سرویسهای ابری ML، Core ML از شتابدهندههای سختافزاری اپل استفاده میکند: Neural Engine، GPU و CPU، با حداقل تأخیر در پردازش دادهها. طبق Apple Core ML Documentation (2026)، این چارچوب از مدلهای PyTorch، TensorFlow و Create ML در قالب یکپارچه .mlpackage با میانگین زمان استنتاج ۵–۵۰ میلیثانیه پشتیبانی میکند.
نکات کلیدی
Core ML — چارچوب یادگیری ماشین است که توسط اپل در WWDC ۲۰۱۷ به عنوان بخشی از اکوسیستم توسعه برای iPhone، iPad، Mac، Apple Watch و Apple TV معرفی شد. Core ML محیط زمان اجرا برای اجرای مدلهای ML روی دستگاه فراهم میکند و توسعهدهنده را از جزئیات بهینهسازی سختافزاری انتزاع میکند. این چارچوب به طور خودکار بهترین موتور محاسباتی — Neural Engine روی تراشههای A12+، GPU یا CPU — را برای هر عملیات مدل انتخاب میکند.
مزیت کلیدی Core ML — ادغام عمیق با Apple Silicon است. عملیات شبکه عصبی روی Neural Engine اختصاصی اجرا میشود که هستههای اصلی پردازنده را بارگیری نمیکند. به گفته اپل (WWDC ۲۰۲۵)، مدلهای Core ML در مقایسه با TensorFlow Lite روی دستگاههای مشابه Android ۶ برابر سریعتر کار میکنند.
Core ML از طیف گستردهای از وظایف یادگیری ماشین پشتیبانی میکند: طبقهبندی تصاویر، تشخیص اشیاء، بخشبندی معنایی، پردازش زبان طبیعی، تحلیل صدا و دادههای جدولی. این چارچوب با مدلهای انواع مختلف کار میکند: شبکههای عصبی (کانولوشنی، بازگشتی، ترانسفورمرها)، مجموعههای درختی، رگرسیون خطی و فرآیندهای گاوسی.
Core ML یک مدل آموزشدیده در قالب .mlpackage دریافت میکند، آن را به کد ماشین بهینهشده برای دستگاه خاص کامپایل میکند و استنتاج را از طریق API واحد اجرا میکند. کل خط لوله — از بارگذاری مدل تا دریافت نتیجه — ۳–۵ خط کد در Swift نیاز دارد.
.mlpackage — یک قالب محفظهای است که توسط اپل در سال ۲۰۲۰ برای جایگزینی .mlmodel منسوخ معرفی شد. این بافت شامل یک دایرکتوری با مانیفست JSON، فایل مدل در قالب باینری MLProgram، فراداده (نویسنده، نسخه، توضیحات) و منابعی مانند برچسبهای کلاس است. به گفته اپل، .mlpackage اندازه مدل را ۳۰–۵۰٪ در مقایسه با .mlmodel به دلیل بهینهسازی وزنها کاهش میدهد.
Apple Neural Engine (ANE) — یک پردازنده عصبی اختصاصی است که در تراشههای اپل از A12 Bionic (۲۰۱۸) تعبیه شده است. ANE عملیات ماتریسی را دهها برابر کارآمدتر از CPU با همان مصرف انرژی پردازش میکند. عملکرد ANE از ۵ TOPS در A12 به ۳۵ TOPS در M4 Ultra (۲۰۲۵) افزایش یافته است که امکان اجرای مدلهایی با میلیاردها پارامتر را فراهم میکند. ANE به طور خودکار برای تمام مدلهای Core ML با معماری شبکه عصبی استفاده میشود.
یکی از ویژگیهای مهم Core ML — پشتیبانی از کوانتیزاسیون مدلها به FP16 و INT8 بدون کاهش دقت است. کوانتیزاسیون اندازه مدل را ۲–۴ برابر کاهش میدهد و استنتاج را ۴۰–۶۰٪ روی ANE تسریع میکند. اپل ابزار Xcode Model Quantization را برای انتخاب خودکار دقت بهینه فراهم میکند: توسعهدهنده مدل را بارگذاری میکند، افت کیفیت مجاز (معمولاً ۰٫۱–۰٫۵٪) را مشخص میکند و Xcode بهترین فرمت نمایش وزنها را انتخاب میکند.
| تراشه | TOPS (ANE) | استنتاج ResNet-۵۰ | سال |
|---|---|---|---|
| A12 Bionic | ۵ | ۱۸ ms | ۲۰۱۸ |
| A14 Bionic | ۱۱ | ۹ ms | ۲۰۲۰ |
| M1 Max | ۲۲ | ۴ ms | ۲۰۲۱ |
| M4 Ultra | ۳۵ | ۲ ms | ۲۰۲۵ |
اکثر مدلهای ML در PyTorch یا TensorFlow ایجاد میشوند و برای استفاده در Core ML نیاز به تبدیل به قالب .mlpackage دارند. اپل ابزار coremltools — یک بسته Python برای تبدیل، بهینهسازی و اعتبارسنجی مدلها را فراهم میکند.
coremltools — ابزار رسمی اپل برای تبدیل مدلهای ML است. از واردات از PyTorch (از طریق torch.onnx یا مستقیم)، TensorFlow (SavedModel, H5, Frozen Graph) و ONNX پشتیبانی میکند. پس از تبدیل میتوان کوانتیزاسیون FP16 یا INT8 را فعال کرد که اندازه مدل را ۲–۴ برابر بدون کاهش قابل توجه دقت کاهش میدهد.
بیایید تبدیل یک مدل آموزشدیده PyTorch به قالب Core ML با استفاده از coremltools نسخه ۸٫۰ را بررسی کنیم. این فرآیند ۲–۳ مرحله در Python نیاز دارد.
import torch
import coremltools as ct
# بارگذاری مدل آموزشدیده PyTorch
model = torch.load('model.pth')
model.eval()
# ردیابی مدل با ورودی نمونه
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)
# تبدیل به Core ML .mlpackage
mlmodel = ct.convert(
traced_model,
convert_to='mlprogram',
inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')
کد مدل آموزشدیده PyTorch را بارگذاری میکند، JIT-traicing را با ورودی نمونه انجام میدهد و آن را به قالب mlprogram (قالب باینری Core ML) تبدیل میکند. .mlpackage حاصل را میتوان به Xcode کشید و بلافاصله در کد Swift استفاده کرد.
پس از تبدیل مدل، ادغام آن در برنامه iOS در Swift در چند خط انجام میشود. Xcode به طور خودکار کلاس Swift را برای مدل بر اساس فراداده .mlpackage تولید میکند.
بیایید مثالی از طبقهبندی تصویر با استفاده از Core ML و چارچوب Vision را بررسی کنیم. Vision به طور خودکار تصویر را به اندازه و فرمت پیکسل مورد نیاز تبدیل میکند.
import CoreML
import Vision
// بارگذاری مدل Core ML
guard let model = try? VNCoreMLModel(
for: MobileNetV2.configuration.model
) else { return }
// ایجاد VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
guard let results = request.results
as? [VNClassificationObservation]
else { return }
// خروجی ۳ پیشبینی برتر
for result in results.prefix(3) {
print("\(result.identifier):
\(result.confidence)")
}
}
// شروع پردازش تصویر
let handler = VNImageRequestHandler(
url: imageURL
)
try? handler.perform([request])
کد Swift مدل MobileNetV2 را از طریق چارچوب Vision بارگذاری میکند، یک درخواست طبقهبندی ایجاد میکند و نتیجه — آرایهای از اشیاء VNClassificationObservation با برچسبهای کلاس و اطمینان به درصد را پردازش میکند. کل خط لوله از بارگذاری تا دریافت نتیجه بسته به مدل ۵–۵۰ میلیثانیه طول میکشد.
برای بهینهسازی زمان راهاندازی، Core ML مدل را در اولین استفاده کامپایل میکند. کامپایل از پیش (precompiled model) شروع سرد را از ۲–۳ ثانیه به ۱۰۰–۲۰۰ میلیثانیه کاهش میدهد. توصیه میشود کامپایل مدل را در مرحله ساخت در Xcode انجام دهید، نه در اولین اجرای برنامه. این به ویژه برای برنامههایی با چندین مدل ML مهم است — مثلاً تشخیص اشیاء + طبقهبندی + NLP.
Core ML و ML Kit وظایف مشابه ML روی دستگاه را حل میکنند، اما برای اکوسیستمهای مختلف طراحی شدهاند. Core ML عمیقاً با Apple Silicon ادغام شده و فقط از پلتفرمهای اپل پشتیبانی میکند. ML Kit از Google یک راهحل چندپلتفرمی برای Android و iOS است.
| ویژگی | Core ML | ML Kit |
|---|---|---|
| پلتفرمها | iOS, macOS, watchOS, tvOS | Android, iOS |
| APIهای آماده | از طریق Vision, Natural Language | ۱۵+ API داخلی |
| مدلهای سفارشی | .mlpackage (PyTorch, TF) | TFLite (از طریق آداپتور) |
| شتاب سختافزاری | ANE, GPU, CPU | GPU (Android), CPU |
| سهولت شروع | نیاز به تبدیل مدل دارد | APIهای آماده بدون Data Science |
| عملکرد | ۲–۵۰ ms (ANE) | ۸۰–۲۰۰ ms (CPU/GPU) |
اگر اکوسیستم شما منحصراً اپل است و به حداکثر عملکرد از طریق ANE نیاز دارید Core ML را انتخاب کنید. اگر چندپلتفرمی یا APIهای آماده بدون تبدیل نیاز است — ML Kit کاربردیتر خواهد بود.
در عمل، بسیاری از پروژهها از هر دو چارچوب استفاده میکنند: Core ML در iOS برای عملکرد بالا، و در Android از ML Kit یا TensorFlow Lite. یک مدل واحد PyTorch برای Apple به .mlpackage و برای Android به .tflite تبدیل میشود که امکان حفظ کیفیت یکسان ML در هر دو پلتفرم را فراهم میکند. این رویکرد کمی تلاش بیشتر در DevOps نیاز دارد، اما حداکثر پوشش مخاطب را فراهم میکند.
هنگام انتخاب بین Core ML و جایگزینها هزینه توسعه را در نظر بگیرید: Core ML برای ادغام به کد کمتری نیاز دارد (۳–۵ خط Swift در مقابل ۱۵–۲۰ خط با TFLite)، اما برای ساخت به Mac و Xcode نیاز دارد. ML Kit برعکس، روی هر پلتفرمی کار میکند، اما به دلیل عدم دسترسی به Apple Neural Engine عملکرد کمتری در iOS دارد.
سؤالات متداول
iOS 11+ برای مدلهای پایه، iOS 14+ برای قالب .mlpackage. برای کار Apple Neural Engine تراشه A12 Bionic و جدیدتر لازم است. Core ML از تمام iPhone، iPad و Mac از سال ۲۰۱۷ پشتیبانی میکند.
بله، از طریق ابزار coremltools. مدلهای TensorFlow با حفظ دقت به .mlpackage تبدیل میشوند. فرمتهای TensorFlow 2.x، SavedModel، H5 و Frozen Graph پشتیبانی میشوند.
.mlpackage — یک قالب محفظهای مدرن است که یک دایرکتوری با فراداده، فایل باینری MLProgram و منابع را نشان میدهد. ۲–۳ برابر فشردهتر از .mlmodel قدیمی است و از کوانتیزاسیون پشتیبانی میکند.
تمام محاسبات کاملاً روی دستگاه انجام میشود. Core ML دادهای به سرور اپل ارسال نمیکند. چارچوب در حالت هواپیما کار میکند و برای استنتاج به اتصال اینترنت نیاز ندارد.
Swift — زبان اصلی برای ادغام Core ML در برنامههای iOS/macOS. Python برای تبدیل مدلها از طریق coremltools استفاده میشود. Objective-C نیز برای سازگاری معکوس پشتیبانی میشود.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید