Swift में मशीन लर्निंग: iOS/macOS के लिए लाइब्रेरीज़
Swift, Apple की एक शक्तिशाली और आधुनिक भाषा है, जो अब सिर्फ ऐप डेवलपमेंट के लिए ही नहीं, बल्कि मशीन लर्निंग के कार्यों के लिए भी तेजी से उपयोग हो रही है। Apple इकोसिस्टम के साथ गहन एकीकरण के कारण, Swift आपको डेटा को सर्वर पर भेजे बिना सीधे डिवाइस (iOS, macOS, watchOS, tvOS) पर ML मॉडल चलाने की सुविधा देता है। इस लेख में हम चार प्रमुख टूल्स को समझेंगे: 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+ चिप वाले डिवाइसों पर) का उपयोग करते हैं। इससे कम विलंबता और डेटा की गोपनीयता सुनिश्चित होती है।
Swift में Core ML का उपयोग करने का उदाहरण:
import CoreML
import 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 CreateML
import 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)")
// मॉडल को .mlmodel फॉर्मेट में सेव करें
try 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
// मॉडल परिभाषित करें: एक हिडन लेयर वाला फुली कनेक्टेड नेटवर्क
struct SimpleNN: Layer {
var layer1 = Dense(inputSize: 784, outputSize: 128, activation: relu)
var layer2 = Dense(inputSize: 128, outputSize: 10, activation: softmax)
@differentiable
func callAsFunction(_ input: Tensor) -> Tensor {
return input.sequenced(through: layer1, layer2)
}
}
// मॉडल और ऑप्टिमाइज़र बनाएँ
var model = SimpleNN()
let optimizer = SGD(for: model, learningRate: 0.01)
// प्रशिक्षण लूप (सरलीकृत)
for epoch in 0..<10 {
let (loss, grad) = model.valueWithGradient { model -> Tensor in
let predictions = model(trainData)
return softmaxCrossEntropy(logits: predictions, labels: trainLabels)
}
optimizer.update(&model, along: grad)
print("Epoch \(epoch): Loss = \(loss)")
}
4. Turi Create — आसान ML समाधान
Turi Create Apple द्वारा विकसित एक ओपन-सोर्स लाइब्रेरी है, जो सामान्य ML कार्यों को सरल बनाती है। यह Python में लिखी गई है, लेकिन इसके मॉडल्स को Core ML फॉर्मेट में बदलकर Swift ऐप्स में उपयोग किया जा सकता है। Turi Create इमेज क्लासिफिकेशन, ऑब्जेक्ट डिटेक्शन, स्टाइल ट्रांसफर, रेकमेंडेशन सिस्टम और टेक्स्ट एनालिसिस जैसे कार्यों के लिए प्री-बिल्ट सॉल्यूशंस प्रदान करता है।
Turi Create के साथ इमेज क्लासिफायर प्रशिक्षित करने का उदाहरण:
import turicreate as tc
// डेटा लोड करें
data = tc.image_analysis.load_images('path/to/images', with_path=True)
data['label'] = data['path'].apply(lambda p: p.split('/')[-2])
// ट्रेन-टेस्ट स्प्लिट
train, test = data.random_split(0.8)
// मॉडल प्रशिक्षित करें
model = tc.image_classifier.create(train, target='label')
// सटीकता जाँचें
accuracy = model.evaluate(test)['accuracy']
print("सटीकता: {}".format(accuracy))
// Core ML फॉर्मेट में सेव करें
model.export_coreml('MyClassifier.mlmodel')
निष्कर्ष: कौन सा टूल चुनें?
Swift में मशीन लर्निंग के लिए चारों टूल्स की अपनी अलग-अलग ताकतें हैं:
- Core ML — यदि आपके पास पहले से प्रशिक्षित मॉडल है और आप उसे अपने ऐप में तेजी से इंटीग्रेट करना चाहते हैं।
- Create ML — यदि आप बिना अधिक कोडिंग के मॉडल प्रशिक्षित करना चाहते हैं और आप macOS पर काम कर रहे हैं।
- Swift for TensorFlow — यदि आप शोध या प्रोटोटाइपिंग के लिए कस्टम न्यूरल नेटवर्क बनाना चाहते हैं।
- Turi Create — यदि आप Python में तेजी से मॉडल बनाकर उन्हें Swift ऐप में उपयोग करना चाहते हैं।
हमें उम्मीद है कि यह गाइड आपको Swift में मशीन लर्निंग की शुरुआत करने में मदद करेगी। अपने प्रोजेक्ट के अनुसार सही टूल चुनें और अपने iOS/macOS ऐप को स्मार्ट बनाएं!