التعلم الآلي في Swift: مكتبات لنظامي iOS/macOS
Swift هي لغة قوية وحديثة من Apple، والتي تُستخدم بشكل متزايد ليس فقط في تطوير التطبيقات التقليدية، ولكن أيضًا في مهام التعلم الآلي. بفضل التكامل الوثيق مع نظام Apple البيئي، يتيح Swift تشغيل نماذج ML مباشرة على الجهاز (iOS، macOS، watchOS، tvOS) دون إرسال البيانات إلى الخادم. في هذه المقالة، سنستعرض أربع أدوات رئيسية: Core ML، Create ML، Swift for TensorFlow وTuri Create. ستتعرف على كيفية عملها، وما هي نقاط قوتها وكيفية البدء في استخدامها.
1. Core ML — أساس دمج النماذج
Core ML هو إطار عمل من Apple يسمح بدمج نماذج التعلم الآلي المدربة في تطبيقات Swift. وهو يدعم النماذج من TensorFlow، PyTorch، Keras، scikit-learn ومكتبات شائعة أخرى (من خلال التحويل إلى تنسيق .mlmodel).
الميزة الرئيسية لـ Core ML هي الأداء: يتم تنفيذ النماذج على الجهاز باستخدام CPU أو GPU أو Neural Engine (على الأجهزة المزودة بشريحة A12+). وهذا يضمن زمن استجابة منخفض وخصوصية البيانات.
مثال على استخدام Core ML في Swift:
import CoreMLimport Vision
// تحميل النموذج (مثل MobileNetV2)guard let model = try? VNCoreMLModel(for: MobileNetV2().model) else { fatalError("فشل تحميل النموذج")}
// إنشاء طلبlet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { return } print("تم التعرف على: \\(topResult.identifier) باحتمالية \\(topResult.confidence)")}
// تنفيذ الطلب على الصورةlet image = UIImage(named: "cat.jpg")!let handler = VNImageRequestHandler(cgImage: image.cgImage!, options: [:])try? handler.perform([request])2. Create ML — تدريب النماذج بدون كود (تقريبًا)
Create ML هي أداة من Apple لتدريب نماذج التعلم الآلي بأقل قدر من كتابة الكود. تعمل على macOS (عبر Swift Playgrounds أو Xcode) وتدعم المهام: تصنيف الصور، النصوص، البيانات الجدولية، أنظمة التوصية وغيرها الكثير.
يمكنك تدريب نموذج بمجرد تمرير مجلد يحتوي على بيانات مصنفة إليه. بعد التدريب، يتم تحويل النموذج تلقائيًا إلى تنسيق Core ML ويكون جاهزًا للاستخدام.
مثال على تدريب مصنف صور في Swift:
import CreateMLimport Foundation
// المسار إلى مجلد بيانات التدريب (الهيكل: /train/class1/، /train/class2/)let trainingData = try MLImageClassifier.DataSource.labeledDirectories(at: URL(fileURLWithPath: "/path/to/train"))
// إنشاء وتدريب النموذجlet classifier = try MLImageClassifier(trainingData: trainingData)
// تقييم الدقة على بيانات الاختبارlet evaluationMetrics = classifier.evaluation(on: trainingData)print("الدقة: \\(evaluationMetrics.classificationError)")
// حفظ النموذج بتنسيق .mlmodeltry classifier.write(to: URL(fileURLWithPath: "/path/to/MyImageClassifier.mlmodel"))3. Swift for TensorFlow (S4TF) — التجارب العلمية
Swift for TensorFlow هو مشروع تجريبي من Google يجلب إمكانيات TensorFlow إلى عالم Swift. يتيح كتابة عمليات حسابية قابلة للتفاضل وتدريب الشبكات العصبية في Swift باستخدام قوة التفاضل التلقائي.
على الرغم من أن المشروع متوقف رسميًا، إلا أن أفكاره لا تزال حية في المجتمع، ويمكن استخدام الكود للأبحاث والنماذج الأولية. S4TF مفيد بشكل خاص إذا كنت ترغب في إنشاء طبقات مخصصة، دوال خسارة أو تجربة معماريات جديدة.
مثال على شبكة عصبية بسيطة في Swift for TensorFlow:
import TensorFlow
// تعريف النموذج: شبكة متصلة بالكامل مع طبقة واحدة