سويفت للتعلم الآلي: الإمكانيات والقيود للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا Swift للتعلم الآلي؟



يرتبط عالم التعلم الآلي (ML) تقليديًا بـ Python و Jupyter Notebooks والمكتبات مثل TensorFlow أو PyTorch. ومع ذلك، في السنوات الأخيرة، ظهرت Swift على الساحة — لغة برمجة من Apple، معروفة بأدائها وأمانها. إذا كنت مطور iOS/macOS ترغب في دمج ML في تطبيقاتك، أو مبتدئًا يختار أول لغة له في ML، فهذه المقالة لك.



تقدم Swift نهجًا فريدًا: فهي تجمع بين سرعة اللغات المترجمة (مثل C++) وقابلية قراءة اللغات النصية. بفضل أطر العمل Core ML و Create ML، بالإضافة إلى مشروع Swift for TensorFlow، أصبحت Swift بديلاً قابلاً للتطبيق لمهام التعلم الآلي على أجهزة Apple. ومع ذلك، فإن لهذا النهج قيودًا أيضًا. دعنا نتعمق في التفاصيل.



الإمكانيات الرئيسية لـ Swift في ML



1. Core ML: دمج النماذج على الجهاز



Core ML هو إطار عمل من Apple لتشغيل نماذج التعلم الآلي مباشرة على الأجهزة (iPhone, iPad, Mac). هذه ميزة رئيسية: لا يتم إرسال البيانات إلى الخادم، مما يضمن الخصوصية وسرعة الأداء.



مثال على تحميل واستخدام نموذج مُدرّب مسبقًا (مثل MobileNet لتصنيف الصور):



import CoreMLimport Vision

// تحميل النموذج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] else { return } // عرض أفضل 3 نتائج for result in results.prefix(3) { print("\\(result.identifier): \\(result.confidence * 100)%") }}

// تنفيذ تحليل الصورةguard let image = UIImage(named: "photo.jpg")?.cgImage else { return }let handler = VNImageRequestHandler(cgImage: image)try? handler.perform([request])


يوضح هذا الكود مدى سهولة دمج شبكة عصبية قوية في تطبيق iOS الخاص بك. كل ما تحتاجه هو تحويل النموذج من PyTorch/TensorFlow إلى تنسيق .mlmodel باستخدام أداة coremltools.



2. Create ML: تدريب بدون كود (تقريبًا)



للمهام البسيطة (تصنيف النصوص، الصور، البيانات الجدولية)، تقدم Apple Create ML — أداة بواجهة رسومية داخل Xcode. يمكنك تدريب نموذج بمجرد سحب البيانات وإفلاتها. ولكن إذا كنت تفضل الكود، فإن Create ML متاح أيضًا كإطار عمل:



import CreateMLimport Foundation

// تحميل بيانات التدريبlet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/path/to/train.csv"))

// إنشاء مصنفlet classifier = try MLClassifier(trainingData: data, targetColumn: "label")

// تقييم الدقةlet metrics = classifier.trainingMetricsprint("الدقة: \\(metrics.classificationError * 100)%")

// حفظ النموذجtry classifier.write(to: URL(fileURLWithPath: "/path/to/model.mlmodel"))


هذا خيار مثالي لـ MVP (الحد الأدنى من المنتج القابل للتطبيق) أو النماذج الأولية. ومع ذلك، بالنسبة للهياكل المعقدة (المحولات، GAN)، فإن Create ML غير مناسب.



3. Swift for TensorFlow (S4TF): نجم خافت



كان مشروع Swift for TensorFlow محاولة طموحة من Google لإنشاء بديل لـ Python في ML. لقد قدم التفاضل التلقائي على مستوى اللغة والتكامل مع TensorFlow. لسوء الحظ، في عام 2021، أوقفت Google التطوير النشط لـ S4TF. ومع ذلك، فإن الإرث لا يزال قائمًا: انتقلت العديد من أفكار S4TF إلى مكتبات Swift Numerics و swift-ml.



مثال (لو كان S4TF لا يزال نشطًا):



import TensorFlow

// شبكة عصبية بسيطةstruct Model: Layer { var layer1 = Dense<Float>(i

المدونات

توصيات الكتب