ML az eszközön (on-device ML) — gépi tanulási modellek végrehajtása közvetlenül a mobileszközön anélkül, hogy adatokat küldenénk egy szerverre. A Google AI, 2025 jelentése szerint a felhasználók több mint 70%-a részesíti előnyben az on-device ML-lel rendelkező alkalmazásokat az adatvédelem és a hálózati késleltetés hiánya miatt. Az Apple Core ML-je, a Google TensorFlow Lite-ja és az ML Kit lehetővé teszi a Vision, NLP, arcfelismerési és objektumfelismerési feladatok teljes körű megoldását az eszközön — internet nélkül és minimális energiafogyasztással.
Főbb pontok
Az ML az eszközön (on-device ML) egy olyan megközelítés, amelyben a gépi tanulási modellek közvetlenül a mobileszközön futnak anélkül, hogy adatokat küldenének egy távoli szerverre. Adatvédelem a kulcsfontosságú előny: a felhasználói adatok soha nem hagyják el az eszközt. A Google kutatása (2024) szerint a felhasználók 63%-a elutasítja azokat az ML-funkciókat, amelyek adatok szerverre küldését igénylik. Az on-device ML kiküszöböli a hálózati késleltetést, offline működik és csökkenti az energiafogyasztást a hardveres gyorsítás révén.
Az on-device ML ezredmásodpercek alatt dolgozza fel az adatokat a másodpercek helyett — kritikus fontosságú a valós idejű arc- és objektumfelismeréshez. Nincs szükség internetkapcsolatra egy másik előny: az ML-funkciók repülőgép üzemmódban és instabil kapcsolattal rendelkező régiókban is elérhetők. A Core ML az Apple A12+ chipjeiben található Neural Engine-t használja, amely 11 billió műveletet hajt végre másodpercenként 1 W alatti energiafogyasztással. A mobilalkalmazások számára az on-device ML a tényleges szabvánnyá vált a Vision, NLP és objektumfelismerési feladatok terén.
Az ML-t a mobilalkalmazásokban arc hitelesítésre (Face ID), AR-szűrökre a Snapchatben és Instagramban, fitness-követőkre Pose Detection segítségével, OCR-vizsgálatra az Adobe Scanben és prediktív bevitelre billentyűzetekben használják. Az egyedi modellek meghatározott feladatokhoz a Core ML (iOS) vagy a TensorFlow Lite (Android) segítségével hozhatók létre. Az ML Kit tipikus forgatókönyvekhez alkalmas — szöveg-, arc- és vonalkódfelismerés modell betanítása nélkül.
A Core ML az Apple keretrendszere ML-modellek futtatásához iPhone-on, iPaden, Mac-en és Apple Watch-on. Automatikusan kiválasztja az optimális hardveres gyorsítást: Neural Engine a neurális hálózatokhoz A12+ eszközökön (11 TOPS), GPU a képfeldolgozási feladatokhoz és CPU a szekvenciális számításokhoz. A Core ML támogatja a .mlmodel (eredeti) és .mlmodelc (lefordított) formátumokat. A modellek konvertálása PyTorch és TensorFlow formátumból a coremltools segítségével történik — egy Python-könyvtár, amely megőrzi a topológiát és a súlyokat.
A Create ML az Apple alkalmazása egyszerű modellek betanításához kód írása nélkül. Éles használatra a coremltools-t használják — egy konvertáló eszközt PyTorch, TensorFlow és scikit-learn formátumokból. A coremltools támogatja a float32 → float16 és int8 kvantálást, a színtér-palettázást és a felesleges műveletek eltávolítását a modell méretének csökkentése érdekében.
import coremltools as ct
model = ct.convert(
"resnet50.mlmodel",
source="pytorch",
convert_to="mlprogram"
)
model.save("Resnet50.mlpackage")
A Neural Engine egy speciális neuroprocesszor az Apple A12 és újabb chipjeiben. 16 mag másodpercenként akár 11 billió műveletet hajt végre 1 W alatti energiafogyasztással. A Core ML automatikusan a Neural Engine-be irányítja a neurális hálózati számításokat, a GPU-kompatibilis számításokat pedig a Metal GPU-ba. A fejlesztőnek nem kell eszközt választania — a Core ML ezt a Performance Report segítségével teszi, elemezve a modellt és a rendelkezésre álló hardvert.
A TensorFlow Lite (TFLite) a Google platformfüggetlen megoldása ML-modellek futtatásához Androidon, iOS-en és Linuxon. A modellek .tflite formátumúak, és a TensorFlow-ökoszisztéma TFLiteConverter segítségével hozhatók létre. A TFLite támogatja a float32 → int8 kvantálást, ami 4-szeresére csökkenti a modell méretét, miközben 97–99%-os pontosságot tart fenn az osztályozási feladatokban. A Google Play Services for TFLite automatikusan frissíti a futási környezetet az alkalmazás újbóli kiadása nélkül.
A TFLiteConverter a fő eszköz a TensorFlow-modellek .tflite formátumba történő konvertálásához. A betanítás utáni int8-kvantálás 300 MB-ról 75 MB-ra tömöríti a modellt a teljes adathalmaz elérése nélkül. A kvantálástudatos betanítás (QAT) minimális pontosságvesztéssel jár — kevesebb mint 1% az ImageNet-en. A TFLiteConverter támogatja továbbá a gráf ritkítását és a TFLite futási környezet által nem támogatott műveletek eltávolítását.
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(
"saved_model_dir"
)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()
Delegált nélkül a TFLite 3–5-ször lassabban futtatja a modellt a CPU-n, mint hardveres gyorsítással. GPU-delegált OpenCL-t és OpenGL ES 3.1-et használ Androidon, a Core ML-delegált a Neural Engine-t használja iOS-en. Az NNAPI-delegált NPU-t és DSP-t használ Android 8.1+ rendszeren. Az XNNPACK-delegált platformfüggetlen gyorsítást biztosít ARM CPU-n mobil processzorokra optimalizálva. A delegált kiválasztásához használja a TfLiteGpuDelegate.create() függvényt null ellenőrzéssel az eredményen.
Az ML Kit a Google SDK-ja kész API-kkal az on-device ML-hez. A mobilalkalmazásokban az ML Kit szövegfelismerésre (50+ nyelv, beleértve a kézírást), arcfelismerésre (468 arckulcspont), vonalkód-vizsgálatra (QR, EAN-13, Code 128, PDF417, Data Matrix) és objektumfelismerésre használható. Az összes API teljes mértékben az eszközön működik internet nélkül. Az ML Kit iOS-en és Androidon is elérhető egységes API-val.
Az arcfelismerés visszaadja az arckontúr, a szemöldök, a szemek, az orr és az ajkak koordinátáit, valamint a fej dőlésszögét és a szemek állapotát. AR-maszkok és kameraszűrők a legnépszerűbb felhasználási forgatókönyv. A szövegfelismerés akár 99%-os pontossággal nyer ki szöveget fényképekből nyomtatott karaktereken. Az API támogatja a valós idejű felismerést a CameraX segítségével.
val recognizer = TextRecognition.getClient()
val image = InputImage.fromBitmap(bitmap)
recognizer.process(image)
.addOnSuccessListener { result ->
result.textBlocks.forEach { block ->
println(block.text)
}
}
A vonalkód-vizsgálat valós időben ismeri fel a vonalkódokat a kamera videó streamjéből. Objektumfelismerés azonosítja az objektumokat egy képen határolókerettel és osztálycímkével (személy, autó, állat). A testtartás-felismerés 33 testkulcspontot határoz meg fitness-alkalmazásokhoz és mozgáselemzéshez. A képcímkézés akár 10 szemantikus képcímkét ad vissza — "természet", "város", "étel".
Az Apple beépített ML-megoldásokat kínál a Vision és a NaturalLanguage segítségével, harmadik féltől származó SDK-k telepítése nélkül. Vision (VNRequest) arcok, szövegek, vonalkódok és kontúrok észlelését végzi az eszközön. NaturalLanguage (NLTokenizer) tokenizálást, lemmatizálást, nyelvazonosítást és hangulatelemzést biztosít. Androidon a megfelelők az ML Kit (felismerés) és az android.speech SpeechRecognizer (beszéd) segítségével vannak implementálva. A beépített eszközök nem igényelnek modellletöltést — előre telepítve vannak a rendszerben.
A Vision tartalmazza a VNDetectFaceRectanglesRequest (arcfelismerés), VNRecognizeTextRequest (szövegfelismerés), VNDetectBarcodesRequest (vonalkódok) és VNDetectHumanBodyPoseRequest (csontváz) függvényeket. VNCoreMLRequest integrál egy egyedi Core ML-modellt a Vision csővezetékbe — például érzelmek osztályozását észlelt arcokon. Az összes kérés a Neural Engine-en fut minimális késleltetéssel.
let request = VNRecognizeTextRequest { request, error in
guard let observations = request.results
as? [VNRecognizedTextObservation] else { return }
for observation in observations {
let topCandidate = observation
.topCandidates(1).first
print(topCandidate?.string as? String ?? "")
}
}
let handler = VNImageRequestHandler(
cgImage: image, options: [:]
)
try? handler.perform([request])
A NaturalLanguage NLTokenizer-t biztosít a szöveg tokenekre bontásához, NLLanguageRecognizer-t a nyelv azonosításához (72 nyelv) és NLSentimentAnalyzer-t a szöveg hangulatának elemzéséhez. Az SFSpeechRecognizer egy beszédfelismerő API, amely 50+ nyelvet támogat az eszközön (iOS 13+). Használat előtt SFSpeechRecognizerAuthorizationStatus engedély szükséges. Az eredmények aszinkron módon érkeznek az SFSpeechRecognitionResultHandler segítségével.
Gyakran ismételt kérdések
ML az eszközön (on-device ML) egy olyan megközelítés, amelyben a gépi tanulási modellek közvetlenül egy mobileszközön futnak anélkül, hogy adatokat küldenének egy szerverre. A Core ML, a TensorFlow Lite és az ML Kit a fő keretrendszerek az on-device ML-hez.
Core ML az Apple keretrendszere iOS és macOS rendszerekhez Neural Engine gyorsítással. A TensorFlow Lite a Google platformfüggetlen megoldása Android, iOS és Linux rendszerekhez. A Core ML jobb teljesítményt nyújt Apple-eszközökön, a TFLite sokoldalúságot.
Az ML Kit tipikus számítógépes látás és NLP feladatokat old meg: szöveg-, arc-, vonalkód-, objektum- és testtartás-felismerést. Az összes API az eszközön működik internet nélkül, és nem igényli saját modell létrehozását.
Nem, az on-device ML teljes mértékben lokálisan működik. A modellek betöltődnek az eszközre, és internetkapcsolat nélkül futnak. Az ML Kit felhőalapú API-verziókat is kínál nagyobb pontossággal, de az on-device mód offline is elérhető.
Kizárólag iOS-hez válassza a Core ML-t — Neural Engine-t használ, és szorosan integrálódik az Apple ökoszisztémájába. Platformfüggetlen projektekhez válassza a TensorFlow Lite-ot. Tipikus feladatokhoz egyedi modell nélkül válassza az ML Kit-et kész API-ival.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.