التعلم الآلي بلغة Swift: مكتبات لنظامي iOS/macOS
Swift هي لغة قوية وبديهية من Apple، تُستخدم بنشاط ليس فقط لتطوير التطبيقات لنظامي iOS وmacOS، ولكن أيضًا لمهام التعلم الآلي. بفضل الأداء العالي، وسلامة الأنواع، والتكامل المباشر مع أطر عمل Apple، تصبح Swift خيارًا ممتازًا لتضمين نماذج ML على الأجهزة. في هذه المقالة، سنستعرض المكتبات والأدوات الرئيسية للتعلم الآلي بلغة Swift التي ستساعدك في إنشاء تطبيقات ذكية لنظام Apple البيئي.
1. Core ML — الإطار الرائد من Apple
Core ML هو الإطار الرئيسي من Apple لدمج نماذج التعلم الآلي في التطبيقات. يدعم عددًا كبيرًا من تنسيقات النماذج (MLModel، ONNX، TensorFlow، PyTorch) وهو مُحسَّن للعمل على الأجهزة (iPhone، iPad، Mac). يستخدم Core ML تلقائيًا Neural Engine وGPU وCPU لتحقيق أقصى أداء.
مثال: تصنيف الصور باستخدام Core ML
import CoreMLimport Vision
// تحميل النموذج المدرب مسبقًا MobileNetV2guard let model = try? VNCoreMLModel(for: MobileNetV2(configuration: MLModelConfiguration()).model) else { fatalError("فشل تحميل النموذج")}
// إنشاء طلبlet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { print("فشل التصنيف") return } print("الكائن: \\(topResult.identifier) بثقة \\(topResult.confidence)")}
// تحميل الصورةguard let image = UIImage(named: "cat.jpg"), let ciImage = CIImage(image: image) else { return }
let handler = VNImageRequestHandler(ciImage: ciImage, options: [:])try? handler.perform([request])2. Create ML — التعلم بدون كود (ومع الكود)
Create ML هي أداة من Apple لتدريب نماذج التعلم الآلي مباشرة في Xcode. تدعم مهام تصنيف الصور، النصوص، البيانات الجدولية، أنظمة التوصية، وحتى مصنفات الصوت. يتم تصدير النماذج المدربة في Create ML تلقائيًا إلى تنسيق .mlmodel وتكون جاهزة للاستخدام مع Core ML.
مثال: تدريب نموذج تصنيف النصوص
import CreateML
// تحميل البيانات من CSVlet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/path/to/data.csv"))
// تقسيم البيانات إلى مجموعات تدريب واختبارlet (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 42)
// إنشاء مصنف النصوصlet classifier = try MLTextClassifier(trainingData: trainingData, textColumn: "text", labelColumn: "label")
// تقييم الدقةlet evaluationMetrics = classifier.evaluation(on: testingData)print("الدقة: \\(evaluationMetrics.classificationError)")
// حفظ النموذجlet metadata = MLModelMetadata(author: "PythonLib", shortDescription: "مصنف المراجعات", version: "1.0")try classifier.write(to: URL(fileURLWithPath: "/path/to/SentimentClassifier.mlmodel"), metadata: metadata)3. TensorFlow Lite (TFLite Swift) — TensorFlow المحمول
TensorFlow Lite هو إصدار خفيف الوزن من TensorFlow للأجهزة المحمولة والمضمنة. تتيح واجهة Swift تحميل وتنفيذ نماذج TFLite على iOS وmacOS. يدعم TFLite التسريع عبر الأجهزة باستخدام Metal Performance Shaders (MPS) ومفوضي Core ML.
مثال: تشغيل نموذج TFLite
import TensorFlowLite
// تحميل النموذجguard let modelPath = Bundle.main.path(forResource: "mobilenet_v1_1.0_224", ofType: "tflite") else { fatalError("النموذج غير موجود")}
let interpreter = try Interpreter(modelPath: modelPath)try interpreter.allocateTensors()
// تحضير بيانات الإدخال (مثل صورة بحجم 224x224)let inputData: Data = preprocessImag