परिचय: मशीन लर्निंग के लिए Swift क्यों?
\n\nमशीन लर्निंग (ML) की दुनिया पारंपरिक रूप से Python, Jupyter Notebooks और TensorFlow या PyTorch जैसी लाइब्रेरीज़ से जुड़ी हुई है। हालांकि, हाल के वर्षों में Swift — Apple की प्रोग्रामिंग भाषा, जो अपनी प्रदर्शन क्षमता और सुरक्षा के लिए जानी जाती है — मैदान में उतरी है। यदि आप एक iOS/macOS डेवलपर हैं जो अपने ऐप्स में ML शामिल करना चाहते हैं, या एक नौसिखिया हैं जो ML के लिए पहली भाषा चुन रहे हैं, तो यह लेख आपके लिए है।
\n\nSwift एक अनूठा दृष्टिकोण प्रदान करता है: यह संकलित भाषाओं (जैसे C++) की गति को स्क्रिप्टिंग भाषाओं की पठनीयता के साथ जोड़ता है। Core ML और Create ML फ्रेमवर्क, साथ ही Swift for TensorFlow प्रोजेक्ट के कारण, Swift Apple उपकरणों पर मशीन लर्निंग कार्यों के लिए एक व्यवहार्य विकल्प बन गया है। हालांकि, इस दृष्टिकोण की अपनी सीमाएं भी हैं। आइए समझते हैं।
\n\nML के लिए Swift की मुख्य क्षमताएं
\n\n1. Core ML: डिवाइस पर मॉडल का एकीकरण
\n\nCore ML Apple का फ्रेमवर्क है जो मशीन लर्निंग मॉडल को सीधे उपकरणों (iPhone, iPad, Mac) पर चलाने के लिए है। यह एक प्रमुख लाभ है: डेटा सर्वर पर नहीं भेजा जाता, जिससे गोपनीयता और गति सुनिश्चित होती है।
\n\nपूर्व-प्रशिक्षित मॉडल (जैसे, छवि वर्गीकरण के लिए MobileNet) को लोड और उपयोग करने का उदाहरण:
\n\nimport CoreML\nimport Vision\n\n// मॉडल लोड करें\nguard let model = try? VNCoreMLModel(for: MobileNetV2().model) else {\n fatalError("मॉडल लोड करने में विफल")\n}\n\n// अनुरोध बनाएं\nlet request = VNCoreMLRequest(model: model) { request, error in\n guard let results = request.results as? [VNClassificationObservation] else { return }\n // शीर्ष 3 परिणाम प्रदर्शित करें\n for result in results.prefix(3) {\n print("\\(result.identifier): \\(result.confidence * 100)%")\n }\n}\n\n// छवि विश्लेषण निष्पादित करें\nguard let image = UIImage(named: "photo.jpg")?.cgImage else { return }\nlet handler = VNImageRequestHandler(cgImage: image)\ntry? handler.perform([request])\n\nयह कोड दिखाता है कि आपके iOS ऐप में एक शक्तिशाली न्यूरल नेटवर्क को एकीकृत करना कितना आसान है। आपको बस coremltools उपयोगिता का उपयोग करके PyTorch/TensorFlow से मॉडल को .mlmodel प्रारूप में बदलना होगा।
2. Create ML: लगभग बिना कोड के प्रशिक्षण
\n\nसरल कार्यों (पाठ वर्गीकरण, छवि वर्गीकरण, सारणीबद्ध डेटा) के लिए, Apple Create ML प्रदान करता है — Xcode के अंदर एक ग्राफिकल इंटरफ़ेस वाला उपकरण। आप केवल डेटा खींचकर छोड़ कर एक मॉडल को प्रशिक्षित कर सकते हैं। लेकिन यदि आप कोड पसंद करते हैं, तो Create ML एक फ्रेमवर्क के रूप में भी उपलब्ध है:
\n\nimport CreateML\nimport Foundation\n\n// प्रशिक्षण डेटा लोड करें\nlet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/path/to/train.csv"))\n\n// क्लासिफायर बनाएं\nlet classifier = try MLClassifier(trainingData: data, targetColumn: "label")\n\n// सटीकता का मूल्यांकन करें\nlet metrics = classifier.trainingMetrics\nprint("सटीकता: \\(metrics.classificationError * 100)%")\n\n// मॉडल सहेजें\ntry classifier.write(to: URL(fileURLWithPath: "/path/to/model.mlmodel"))\n\nयह MVP (न्यूनतम व्यवहार्य उत्पाद) या प्रोटोटाइपिंग के लिए एक आदर्श विकल्प है। हालांकि, जटिल आर्किटेक्चर (ट्रांसफॉर्मर, GAN) के लिए Create ML उपयुक्त नहीं है।
\n\n3. Swift for TensorFlow (S4TF): एक मंद हुआ सितारा
\n\nSwift for TensorFlow प्रोजेक्ट Google का ML के लिए Python का विकल्प बनाने का एक महत्वाकांक्षी प्रयास था। यह भाषा स्तर पर स्वचालित विभेदन और TensorFlow के साथ एकीकरण प्रदान करता था। दुर्भाग्य से, 2021 में Google ने S4TF का सक्रिय विकास बंद कर दिया। हालांकि, इसकी विरासत जीवित है: S4TF के कई विचार Swift Numerics और swift-ml लाइब्रेरीज़ में स्थानांतरित हो गए हैं।
\n\nउदाहरण (यदि S4TF जीवित होता):
\n\nimport TensorFlow\n\n// सरल न्यूरल नेटवर्क\nstruct Model: Layer {\n var layer1 = Dense<Float>(i