SwiftAI
تعلّم آلي بلغة Swift الخالصة: تدريب النماذج وتقييمها وحفظها على الجهاز مباشرة.
الترخيص: MIT
SwiftAI حزمة Swift للتعلّم الآلي الكلاسيكي على منصات Apple: التصنيف (classification) والانحدار (regression) والتجميع (clustering) وتقليل الأبعاد (dimensionality reduction) على جداول من الأرقام. تحمّل البيانات من CSV أو من مصفوفات (arrays)، وتقسّمها، وتدرّب نموذجًا باستدعاء دالة واحدة، وتقيّمه وتحفظه كـ JSON لتحميله في تطبيقك، دون سلسلة أدوات Python أو خادم. لا تحتوي الحزمة على أي اعتماديات.
الميزات
- أحد عشر نموذجًا تعلّمًا بإشراف (supervised): الانحدار الخطي وridge، والانحدار اللوجستي، وk-nearest neighbours، وGaussian naive Bayes، وأشجار القرار (decision trees)، وrandom forests، والشبكات العصبية (neural networks)، بالإضافة إلى تجميع k-means وتحليل المكوّنات الأساسية (PCA)
- مُحقَّق مقابل scikit-learn 1.9.1: تقارن الاختبارات المعاملات (coefficients) والاحتمالات (probabilities) والتجميعات (clusters) (مثلًا احتمالات الانحدار اللوجستي بدقة 1e-5، وPCA بدقة 1e-10)
- أخطاء بدلًا من الانهيار (crash): البيانات أو الإعدادات غير الصالحة تطلق SwiftAIError يذكر ما يجب تغييره
- أمان في التحميل: النماذج وscalers وpipelines من نوع Codable، وعملية decoding تفحص الأشكال (shapes) والقيم وقوائم الأصناف (classes) وبنية الأشجار
- قابل للتكرار (reproducible): كل خطوة عشوائية تأخذ seed، ويعطي نفس الـ seed نفس النموذج، وكذلك بالنسبة للغابات (forests) المدرَّبة بالتوازي
- تُطبَّق pipeline المعالجة المسبقة (preprocessing) على بيانات التدريب فقط وتُطبِّقها بالطريقة نفسها على كل عيّنة لاحقة
- وضع لغة Swift 6 بفحص concurrency صارم؛ وكتالوج DocC بأربع مقالات وتطبيق ModelLab التوضيحي لـ iOS وmacOS
البدء السريع
1import SwiftUI2import SwiftAI3 4struct ContentView: View {5 var body: some View {6 Text(irisSummary())7 .padding()8 }9 10 func irisSummary() -> String {11 do {12 // 1. Split the built-in iris flowers into training and test samples.13 let (training, test) = try Dataset.iris.stratifiedSplit(testFraction: 0.2, seed: 42)14 // 2. Train a random forest on the training samples.15 let model = try RandomForestClassifier.fit(training, seed: 42)16 // 3. Measure it on the test samples and classify a new flower.17 let accuracy = try model.accuracy(on: test)18 let species = try model.predict([6.3, 2.8, 5.1, 1.5])19 return "Test accuracy: \(accuracy.formatted(.percent))\nNew flower: \(species)"20 } catch {21 return error.localizedDescription22 }23 }24}التثبيت
Xcode (File › Add Package Dependencies…)
1https://github.com/muhittincamdali/SwiftAI.gitSwift Package Manager
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/SwiftAI.git", from: "2.0.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "SwiftAI", package: "SwiftAI")7 ])8]لقطات الشاشة


الجدول الزمني
افتُتح المستودع كـ framework واسع للذكاء الاصطناعي بطبقات بنية تطبيق (app-architecture) وكود Vision وNLP
صدر الإصدار 1.0.0؛ وبعد ثلاثة أيام أُزيلت وحدات بنية التطبيق وكُتب نواة (core) أصغر للتعلّم الآلي
تبسيط: انكمشت الاختبارات إلى ملف placeholder واحد، وأُضيفت طبقات stub صغيرة
أُعيد البناء من الصفر كحزمة تعلّم آلي كلاسيكي بلا اعتماديات، وصدر كـ 2.0.0؛ لم تبقَ أي واجهة برمجية من 1.0.0