Aan de vooravond van een nieuw technologisch tijdperk vindt kunstmatige intelligentie (AI) steeds meer ingang in ons dagelijks leven, en mobiele apparaten vormen daarop geen uitzondering. In dit artikel verkennen we de integratie van AI in mobiele oplossingen, de tools die Apple en Google bieden voor ontwikkelaars en de native oplossingen die ze naast hun besturingssystemen maken. We behandelen ook de technische stappen om ze in iOS te introduceren en behandelen de meeste beperkingen ervan. Inhoud geschreven door David Duarte, iOS-ontwikkelaar van het Cactai Team.
Een korte geschiedenis van AI in mobiel
De eerste mijlpaal in dit verhaal werd gelegd met de release van de eerste iPhone in 2007. De iPhone herdefinieerde wat een smartphone kon zijn, met een onmiddellijke en diepgaande impact. Het zette een nieuwe standaard voor mobiele apparaten en bracht een golf van innovatie op gang die tot op de dag van vandaag doorgaat. In 2011 begon AI zijn stempel te drukken op Apple producten met de introductie van Siri. Met behulp van natuurlijke taalverwerking (NLP) kon Siri vragen van gebruikers begrijpen en beantwoorden, waarmee een nieuwe standaard voor mobiele interactiviteit werd gezet. Dit werd gevolgd door Google Now, dat voorspellende informatie bood op basis van gewoonten en voorkeuren van gebruikers. Deze vroege implementaties toonden het potentieel van AI om de gebruikerservaring te verbeteren door middel van gepersonaliseerde en intelligente interacties.
Als AI zich blijft ontwikkelen, speelt de ontwikkeling van AI-specifieke hardware een cruciale rol bij de integratie ervan in mobiele apparaten. Apple’s A11 Bionic-chip, geïntroduceerd in 2017, luidde een nieuw tijdperk in. Deze bevatte een speciale Neural Engine die was ontworpen om taken op het gebied van machine learning te versnellen. Deze hardware-innovatie maakte complexere en efficiëntere AI-berekeningen direct op mobiele apparaten mogelijk. En nu, in 2022, introduceert de Apple A16-chip nog meer vooruitgang, met een 4 nm-proces en 16 neurale kernen die 17 biljoen bewerkingen per seconde kunnen uitvoeren, wat de snelle ontwikkeling en toegenomen mogelijkheden van Apple’s Neural Engine door de jaren heen laat zien.
Naast de vooruitgang op het gebied van hardware werden ook softwaretools en bibliotheken geïntroduceerd. CoreML en TensorFlow Lite, respectievelijk uitgebracht in 2017 en 2018, bieden mobiele ontwikkelaars de benodigde tools om machine learning-modellen te maken of reeds ontwikkelde Python-modellen te importeren. Deze perfecte symbiose van hardware en software optimaliseert het gebruik van apparaathardware, waardoor specifieke code kan worden uitgevoerd op de CPU, GPU of Neural Engine, wat zorgt voor efficiënte prestaties.
The journey of AI in mobile is characterized by constant innovation and integration. From the early days with simple virtual assistants to advanced large language models (LLMs) like Apple Intelligence, AI is becoming more deeply integrated into our phones.
The need for AI in our mobile devices
Het streven naar een betere gebruikerservaring en personalisatie leidt ertoe dat Apple en andere bedrijven AI integreren in de meeste van hun toepassingen. Elk jaar krijgen hun apparaten hardwareverbeteringen voor neurale engines, naast meer geheugen en rekencapaciteit, om krachtigere oplossingen te ondersteunen. Terwijl ik dit schrijf vanaf mijn telefoon, kan ik voorspellingen krijgen van het volgende woord, de iPhone ontgrendelen via FaceID, Duolingo gebruiken voor gepersonaliseerde lessen en filteren op de foto’s van mijn hond in de fotogalerij. In al deze scenario’s, en nog veel meer, is de neurale motor aan het werk. Daarnaast bevat de AI in de Apple Watch functies zoals crashdetectie, atriumfibrillatiebewaking (AFib) en valdetectie.
Samengevat wordt de noodzaak van AI in mobiele apparaten gedreven door de vraag naar intelligentere, efficiëntere en gepersonaliseerde gebruikerservaringen.
Let’s Get Down to Business: CoreML
CoreML is Apple’s machine learning framework, designed to make it easy for developers to integrate AI into iOS apps. Introduced in 2017, CoreML allows for efficient and optimized execution of machine learning models on Apple devices. CoreML has evolved significantly through its versions, now supporting powerful stateful and transformer models, such as the conversion of Stable Diffusion XL to integrate on mobile or a large model like Mistral 7B. For a deeper dive into the capabilities of this library, I highly recommend watching this video from the last WWDC: CoreML at WWDC 2024.
Het begon met ondersteuning voor populaire ML-bibliotheken zoals Keras en scikit-learn in 2017, introduceerde modelcompressie en aangepaste lagen in 2018, voegde on-device training en geavanceerde neurale netwerkondersteuning toe in 2019, verbeterde integratie met CreateML en Swift voor TensorFlow in 2020, en uniforme modelformaten voor alle Apple-platforms met verbeterde modelbeveiliging in 2021. In 2023 ondersteunde CoreML geavanceerde Transformer-modellen, betere integratie met Vision en Natural Language frameworks en realtime prestatieverbeteringen van applicaties. In 2024 introduceerde het een snellere inferentie engine met Async Prediction API ondersteuning, BERT embeddings, multi-label beeldclassificatie, een nieuwe Augmentation API en verbeterde modelconversie opties. Deze updates zorgen ervoor dat CoreML voorop blijft lopen op het gebied van mobiele AI-mogelijkheden.
Apparaten matchen met CoreML-versies
Naast de CoreML-versie die we kunnen ondersteunen in onze app (die afhankelijk is van de iOS-versie), moeten we rekening houden met de rekenkracht van het apparaat. Mobiele apparaten hebben minder krachtige CPU’s en GPU’s in vergelijking met desktopcomputers en servers, waardoor hun vermogen om grote en complexe AI-modellen in real-time te verwerken beperkt is.
Device Category | Examples | CPU/GPU | RAM | Suitable for |
High-End | iPhone 15 Pro, iPhone 14 Pro, iPad Pro | A17 Pro, A16 Bionic, M1/M2 | 8-16 GB | Complex AI tasks and models like Stable Diffusion |
Mid-Range | iPhone 15, iPhone 14, iPad Air (2020+) | A16 Bionic, A15 Bionic, A14 | 4-6 GB | Capable of handling most AI applications efficiently |
Entry-Level | iPhone SE (2022), iPad (9th gen) | A15 Bionic, A13 Bionic | 3-4 GB | Simple AI apps like simple image classification, speech-to-text |
Older Models | iPhone X, iPhone 8 | A11 Bionic | 2-3 GB | Limited capabilities for running complex AI models |
Inzicht in de mogelijkheden en beperkingen van het apparaat is cruciaal bij het ontwikkelen van AI-toepassingen. Hoewel CoreML een krachtig raamwerk biedt voor het integreren van machine learning-modellen in iOS-apps, zullen de hardwaremogelijkheden van het apparaat uiteindelijk de complexiteit en prestaties van deze modellen bepalen.
Werken met CoreML: ML-modellen maken en integreren in iOS
CoreML ondersteunt verschillende modeltypen en integreert naadloos met andere raamwerken van Apple, zoals Vision voor beeldanalyse en computervisie; Natural Language voor het verwerken en analyseren van tekst; Speech voor het transcriberen van audio-input naar tekst en het genereren van gesproken output uit tekst; en Sound Analysis voor het identificeren van geluiden zoals applaus, gelach of muziekgenres.
Om voorspellingen te doen of een van deze frameworks te gebruiken, heb je een CoreML model nodig. Ontwikkelaars kunnen ofwel voorgetrainde modellen gebruiken die beschikbaar zijn bij Apple of de community, of ze kunnen aangepaste modellen maken met tools zoals CreateML of modellen converteren van andere frameworks.
Getting a model is not a difficult task. If this is your starting point, you can download any of Apple’s official models from Apple’s Machine Learning Models. Then, you can add this model to your app, instantiate it, and make predictions. This is the easiest way if you don’t have ML knowledge, you have to just focus and understand the input and output of the model. You can find this info in the model description.
Maak je eigen model met CreateML
Als het niet mogelijk is om een al ontwikkeld model te gebruiken, kun je CreateML gebruiken om je eigen model te trainen. CreateML is een krachtig hulpmiddel van Apple waarmee ontwikkelaars modellen voor machinaal leren kunnen trainen met behulp van een eenvoudige en intuïtieve interface. CreateML abstraheert veel van de complexiteit die komt kijken bij het trainen van modellen, waardoor het zelfs toegankelijk is voor ontwikkelaars met beperkte ervaring in machine learning. Het biedt kant-en-klare sjablonen en workflows voor verschillende soorten machine-learningtaken, waaronder beeldclassificatie, objectdetectie, tekstclassificatie en meer.
Hoewel CreateML het proces van het trainen van machine learning-modellen vereenvoudigt, kan een basiskennis van AI-concepten nuttig zijn. Ontwikkelaars moeten bekend zijn met:
- Data Preparation: Understanding how to collect, clean, and preprocess data for training.
- Model Training: Basic concepts of training, validation, and testing machine learning models.
- Evaluation Metrics: Knowledge of metrics used to evaluate model performance, such as accuracy, precision, recall, and F1-score.
Een Python model importeren met CoreML
Het importeren van een reeds ontwikkeld Python model in CoreML bestaat uit verschillende stappen, waarbij gebruik wordt gemaakt van de coremltools bibliotheek om het model te converteren naar een formaat dat compatibel is met iOS. CoreML ondersteunt een breed scala aan modellen van populaire frameworks zoals TensorFlow, Keras, PyTorch en ONNX. Deze methode is vooral handig voor ontwikkelaars die ervaring hebben met machine learning frameworks zoals TensorFlow, Keras of PyTorch en die hun modellen willen implementeren op Apple apparaten of voor grote teams met toegewijde ontwikkelaars die werken aan een cross-platform machine learning modeloplossing.
Voor deze oplossingen moet het team (of de iOS-ontwikkelaars) bekend zijn met Python en ML-fundamenten, zoals het begrijpen van training, validatie en het testen van machine-learningmodellen.
ML in Android: TensorFlow Lite
TensorFlow Lite is Google’s open-source deep learning framework dat is ontworpen voor inferentie van machinaal leren op apparaten. Het is geoptimaliseerd voor mobiele apparaten, zodat ontwikkelaars modellen voor machinaal leren kunnen implementeren op Android en iOS. TensorFlow Lite is een lichtere versie van TensorFlow, speciaal ontworpen om efficiënt te presteren op apparaten met beperkte rekenkracht.
Enkele goede punten van Tensorflow Lite zijn dat het platformonafhankelijk is, het is geoptimaliseerd voor mobiele apparaten met lage latency en efficiënte uitvoering en het ondersteunt net als CoreML modeloptimalisatie.
Natuurlijk worden niet alle TensorFlow-bewerkingen ondersteund in TensorFlow Lite. Sommige geavanceerde functies en aangepaste lagen kunnen aanpassingen of vereenvoudigingen vereisen om te werken binnen de beperkingen van TensorFlow Lite. Grote en zeer complexe modellen presteren mogelijk niet goed op mobiele apparaten vanwege beperkte rekenkracht.
Afsluiten
Zowel CoreML als TensorFlow Lite bieden tools en API’s die de integratie van machine learning-modellen in mobiele apps vereenvoudigen. De nauwe integratie van CoreML met de ontwikkelomgeving van Apple kan het echter gemakkelijker maken voor ontwikkelaars die al bekend zijn met het ecosysteem van Apple, omdat CoreML specifiek is ontworpen voor Apple apparaten.
CoreML en TensorFlow Lite bieden uitgebreide modeloptimalisatietechnieken, die cruciaal zijn voor het efficiënt uitvoeren van modellen op mobiele apparaten. Ik kan benadrukken dat CoreML een stap voor is op TensorFlow Lite in optimalisaties die, in de laatste versie, de conversie van transformers en stateful modellen mogelijk maken.
De toekomst van AI in mobiele apparaten
De toekomst van AI in mobiele apparaten is veelbelovend, met ontwikkelingen in de technologie die een revolutie teweeg zullen brengen in de manier waarop we omgaan met onze smartphones en andere mobiele apparaten. De focus lijkt te liggen op het verbeteren van het inzicht in het gedrag en de voorkeuren van de gebruiker, waarbij meer aandacht wordt besteed aan hun privacy, om zo zeer gepersonaliseerde ervaringen te kunnen bieden. Op het gebied van oplossingen door de os zullen we verbeteringen krijgen in gezondheids- en fitnessmonitoring met meer geavanceerde gezondheidsmetingen.
Augmented Reality en Virtual Reality worden steeds beter en de integratie met AI zorgt voor meer meeslepende en interactieve ervaringen. Dit omvat realtime objectherkenning, gebarenbesturing en omgevingsaanpassing (neem een kijkje naar de vooruitgang van ARKit en Vision frameworks).
We mogen de toekomstige verbeteringen (nog niet vrijgegeven) in virtuele assistentie en de integratie van een LLM in onze mobiele apparaten (Apple Intelligence) niet vergeten.
Conclusie
Concluderend is de toekomst van AI in mobiele apparaten rooskleurig, met aanzienlijke verbeteringen op het gebied van personalisatie, gezondheidsbewaking, augmented reality, virtuele assistenten, beveiliging en nog veel meer. Naarmate deze technologieën zich verder ontwikkelen, zullen ze onze mobiele apparaten slimmer, intuïtiever en een integraal onderdeel van ons dagelijks leven maken. Het is onze verantwoordelijkheid als ontwikkelaars om oplossingen te ontwerpen en te coderen die voordeel halen uit deze vooruitgang om de best mogelijke gebruikerservaring te bieden.