Core ML — چیست، مدل یادگیری ماشین و کار در iOS

نویسنده: IT Sectr منتشر شده: 2026-03-26 زمان مطالعه: 8 دقیقه

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 — چارچوب اپل برای یادگیری ماشین روی دستگاه در تمام پلتفرم‌های اکوسیستم
  • Apple Neural Engine (ANE) شتاب سخت‌افزاری شبکه‌های عصبی را با عملکرد تا ۱۱ TOPS فراهم می‌کند
  • فرمت .mlpackage مدل، فراداده و پیکربندی را در یک محفظه مناسب واحد ترکیب می‌کند
  • تبدیل مدل‌های PyTorch و TensorFlow از طریق ابزار Python coremltools انجام می‌شود
  • ادغام با Vision و Natural Language امکان ایجاد خطوط لوله ML پیچیده را فراهم می‌کند

Core ML چیست؟

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 چگونه کار می‌کند

Core ML یک مدل آموزش‌دیده در قالب .mlpackage دریافت می‌کند، آن را به کد ماشین بهینه‌شده برای دستگاه خاص کامپایل می‌کند و استنتاج را از طریق API واحد اجرا می‌کند. کل خط لوله — از بارگذاری مدل تا دریافت نتیجه — ۳–۵ خط کد در Swift نیاز دارد.

فرمت مدل .mlpackage

.mlpackage — یک قالب محفظه‌ای است که توسط اپل در سال ۲۰۲۰ برای جایگزینی .mlmodel منسوخ معرفی شد. این بافت شامل یک دایرکتوری با مانیفست JSON، فایل مدل در قالب باینری MLProgram، فراداده (نویسنده، نسخه، توضیحات) و منابعی مانند برچسب‌های کلاس است. به گفته اپل، .mlpackage اندازه مدل را ۳۰–۵۰٪ در مقایسه با .mlmodel به دلیل بهینه‌سازی وزن‌ها کاهش می‌دهد.

Apple Neural Engine

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 بهترین فرمت نمایش وزن‌ها را انتخاب می‌کند.

مقایسه عملکرد Core ML

تراشهTOPS (ANE)استنتاج ResNet-۵۰سال
A12 Bionic۵۱۸ ms۲۰۱۸
A14 Bionic۱۱۹ ms۲۰۲۰
M1 Max۲۲۴ ms۲۰۲۱
M4 Ultra۳۵۲ ms۲۰۲۵

تبدیل مدل‌ها به Core ML

اکثر مدل‌های ML در PyTorch یا TensorFlow ایجاد می‌شوند و برای استفاده در Core ML نیاز به تبدیل به قالب .mlpackage دارند. اپل ابزار coremltools — یک بسته Python برای تبدیل، بهینه‌سازی و اعتبارسنجی مدل‌ها را فراهم می‌کند.

ابزار coremltools

coremltools — ابزار رسمی اپل برای تبدیل مدل‌های ML است. از واردات از PyTorch (از طریق torch.onnx یا مستقیم)، TensorFlow (SavedModel, H5, Frozen Graph) و ONNX پشتیبانی می‌کند. پس از تبدیل می‌توان کوانتیزاسیون FP16 یا INT8 را فعال کرد که اندازه مدل را ۲–۴ برابر بدون کاهش قابل توجه دقت کاهش می‌دهد.

مثال تبدیل از PyTorch

بیایید تبدیل یک مدل آموزش‌دیده PyTorch به قالب Core ML با استفاده از coremltools نسخه ۸٫۰ را بررسی کنیم. این فرآیند ۲–۳ مرحله در Python نیاز دارد.

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 استفاده کرد.

ادغام Core ML در برنامه iOS

پس از تبدیل مدل، ادغام آن در برنامه iOS در Swift در چند خط انجام می‌شود. Xcode به طور خودکار کلاس Swift را برای مدل بر اساس فراداده .mlpackage تولید می‌کند.

مثال کد Swift

بیایید مثالی از طبقه‌بندی تصویر با استفاده از Core ML و چارچوب Vision را بررسی کنیم. Vision به طور خودکار تصویر را به اندازه و فرمت پیکسل مورد نیاز تبدیل می‌کند.

swift
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

Core ML و ML Kit وظایف مشابه ML روی دستگاه را حل می‌کنند، اما برای اکوسیستم‌های مختلف طراحی شده‌اند. Core ML عمیقاً با Apple Silicon ادغام شده و فقط از پلتفرم‌های اپل پشتیبانی می‌کند. ML Kit از Google یک راه‌حل چندپلتفرمی برای Android و iOS است.

ویژگیCore MLML Kit
پلتفرم‌هاiOS, macOS, watchOS, tvOSAndroid, iOS
APIهای آمادهاز طریق Vision, Natural Language۱۵+ API داخلی
مدل‌های سفارشی.mlpackage (PyTorch, TF)TFLite (از طریق آداپتور)
شتاب سخت‌افزاریANE, GPU, CPUGPU (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 دارد.

سؤالات متداول

حداقل نیازمندی‌های کار Core ML چیست؟

iOS 11+ برای مدل‌های پایه، iOS 14+ برای قالب .mlpackage. برای کار Apple Neural Engine تراشه A12 Bionic و جدیدتر لازم است. Core ML از تمام iPhone، iPad و Mac از سال ۲۰۱۷ پشتیبانی می‌کند.

آیا می‌توان از Core ML با TensorFlow استفاده کرد؟

بله، از طریق ابزار coremltools. مدل‌های TensorFlow با حفظ دقت به .mlpackage تبدیل می‌شوند. فرمت‌های TensorFlow 2.x، SavedModel، H5 و Frozen Graph پشتیبانی می‌شوند.

.mlpackage چه تفاوتی با .mlmodel دارد؟

.mlpackage — یک قالب محفظه‌ای مدرن است که یک دایرکتوری با فراداده، فایل باینری MLProgram و منابع را نشان می‌دهد. ۲–۳ برابر فشرده‌تر از .mlmodel قدیمی است و از کوانتیزاسیون پشتیبانی می‌کند.

Core ML چگونه حریم خصوصی داده‌ها را مدیریت می‌کند؟

تمام محاسبات کاملاً روی دستگاه انجام می‌شود. Core ML داده‌ای به سرور اپل ارسال نمی‌کند. چارچوب در حالت هواپیما کار می‌کند و برای استنتاج به اتصال اینترنت نیاز ندارد.

Core ML از چه زبان‌های برنامه‌نویسی پشتیبانی می‌کند؟

Swift — زبان اصلی برای ادغام Core ML در برنامه‌های iOS/macOS. Python برای تبدیل مدل‌ها از طریق coremltools استفاده می‌شود. Objective-C نیز برای سازگاری معکوس پشتیبانی می‌شود.

خلاصه

  • Core ML — چارچوب اپل برای ML روی دستگاه در تمام پلتفرم‌های اکوسیستم با پشتیبانی Apple Neural Engine
  • .mlpackage — قالب محفظه‌ای مدرن که مدل، فراداده و منابع را در یک بسته واحد ترکیب می‌کند
  • Apple Neural Engine شتاب سخت‌افزاری شبکه‌های عصبی را با عملکرد تا ۳۵ TOPS روی M4 Ultra فراهم می‌کند
  • coremltools امکان تبدیل مدل‌های PyTorch، TensorFlow و ONNX را در سه مرحله در Python فراهم می‌کند
  • ادغام از طریق چارچوب Vision برای اجرای مدل روی تصویر به ۵–۱۰ خط کد Swift نیاز دارد
  • عملکرد استنتاج بسته به مدل و تراشه ۲–۵۰ میلی‌ثانیه است
  • حریم خصوصی داده‌ها — تمام محاسبات کاملاً محلی، بدون ارسال داده به سرور

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید