Swift للتعلم الآلي: الإمكانيات والقيود في الممارسة العملية

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

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

ابدأ الدورة

Swift للتعلم الآلي: الإمكانيات والقيود في الممارسة العملية



لطالما ارتبط عالم التعلم الآلي (ML) حصريًا بلغة Python — وهي لغة ذات نظام بيئي غني بالمكتبات مثل TensorFlow و PyTorch و scikit-learn. ومع ذلك، مع تزايد شعبية iOS و macOS، وظهور أطر عمل قوية من Apple، بدأت لغة Swift في احتلال مكانتها في مجال ML. في هذه المقالة، سنحلل مدى ملاءمة Swift لمهام التعلم الآلي، وأين تكمن نقاط قوتها، وأين توجد القيود الحرجة، وسنقدم أمثلة عملية على الكود.



لماذا Swift؟ المزايا الرئيسية لـ ML



Swift هي لغة مُجمَّعة، ذات كتابة ثابتة، طورتها Apple. أوراقها الرابحة الرئيسية لـ ML هي الأداء وسلامة الأنواع. على عكس Python، التي يتم تفسيرها ويمكن أن تكون بطيئة في العمليات الحسابية الثقيلة، يتم تجميع Swift إلى كود أصلي، مما يعطي زيادة في السرعة تتراوح بين 2 إلى 5 مرات على نفس الخوارزميات. بالإضافة إلى ذلك، فإن Swift متكاملة بشكل مثالي مع النظام البيئي لـ Apple: حيث تسمح Core ML و Create ML بنشر النماذج مباشرة على أجهزة المستخدمين.



أطر العمل الرئيسية

  • Core ML — الإطار الرئيسي لدمج النماذج المُدرَّبة في تطبيقات iOS/macOS. يدعم النماذج من TensorFlow و PyTorch و ONNX.
  • Create ML — أداة لتدريب نماذج بسيطة (تصنيف الصور، النصوص، الانحدار) دون كتابة كود أو بحد أدنى من الكود بلغة Swift.
  • Swift for TensorFlow (S4TF) — مشروع تجريبي من Google، سمح بكتابة الشبكات العصبية بلغة Swift مع تكامل كامل مع TensorFlow. لسوء الحظ، تم تجميد المشروع، لكن أفكاره لا تزال حية في مبادرات أخرى.
  • MLX — إطار عمل جديد من Apple للتعلم الآلي على الأجهزة، محسّن لشرائح Apple Silicon.


مثال عملي: تصنيف الصور باستخدام Core ML



لننظر في مثال بسيط — تحميل نموذج MobileNetV2 المُدرَّب مسبقًا وتصنيف صورة. يعمل هذا الكود على iOS و macOS.



import CoreMLimport Visionimport UIKit

// تحميل النموذج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 { print("لا توجد نتائج") return } print("الفئة الأكثر احتمالاً: \\(topResult.identifier) باحتمالية \\(topResult.confidence)")}

// تحميل الصورةguard let image = UIImage(named: "cat.jpg"), let ciImage = CIImage(image: image) else { fatalError("فشل تحميل الصورة")}

let handler = VNImageRequestHandler(ciImage: ciImage)try? handler.perform([request])


يوضح هذا الكود مدى سهولة دمج ML في تطبيق أصلي. كل شيء يعمل "مباشرة من الصندوق"، دون الحاجة إلى إعداد البيئة.



إنشاء نموذج بلغة Swift باستخدام Create ML



يسمح Create ML بتدريب النماذج مباشرة في Xcode. إليك مثال لتدريب مصنف نصوص بلغة Swift:



import CreateMLimport Foundation

// تحميل البيانات من JSONlet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "tweets.json"))

// تقسيم البيانات إلى مجموعات تدريب واختبارlet (trainingData, testData) = data.randomSplit(by: 0.8, seed: 42)

// إنشاء وتدريب النموذجlet classifier = try MLTextClassifier(trainingData: trainingData, textColumn: "text", labelColumn: "sentiment")

// تقييم الدقةlet evaluation = classifier.evaluation(on: testData)print("الدقة: \\(evaluation.classificationError)")

// حفظ النموذجlet modelURL = URL(fileURLWithPath: "SentimentClassifier.mlmodel")try

المدونات

توصيات الكتب