Apple-onderzoekers ontwikkelen methode om llm's op iPhones uit te voeren

Grote taalmodellen zoals GPT-4 vereisen doorgaans veel rekenkracht en geheugen, maar AI-onderzoekers van Apple stellen dat ze een efficiënte manier gevonden hebben om llm's te implementeren op iPhones en andere Apple-apparaten met relatief beperkt intern geheugen.

De onderzoekers stellen in een researchpaper dat zij een oplossing gevonden hebben om large language models die de beschikbare dram-capaciteit overschrijden uit te voeren op mobiele apparaten, zoals een iPhone. Dit zou mogelijk zijn door de modelparameters op te slaan op het flashgegeheugen en deze wanneer nodig naar de dram te sturen.

Om de doorvoer te maximaliseren geven de auteurs aan gebruik te maken van 'recycling' door een deel van de verwerkte gegevens door een AI-model te hergebruiken. Hierdoor zou het niet nodig zijn om voortdurend geheugen op te halen, wat voor een soepeler proces moet zorgen. Daarnaast zeggen de onderzoekers dat door grotere stukken data te groeperen, gegevens sneller kunnen worden gelezen. Dit moet ook tot snellere verwerking en reacties door het AI-model leiden.

De twee methoden moeten het mogelijk maken om AI-modellen uit te voeren die tot twee keer de grootte van de beschikbare dram in beslag nemen en over maximaal 5 en 25 keer zo hoge inferentiesnelheden beschikken ten opzichte van het rechtstreeks laden in de cpu en gpu.

Het efficiënter werken van llm's op iPhones zou onder meer mogelijkheden kunnen bieden voor geavanceerde Siri-opdrachten, realtime taalvertaling en het implementeren van AI-functies in fotografie. Apple werkt naar verluidt al aan een eigen groot taalmodel, dat door medewerkers zou worden aangeduid als 'AppleGPT'. Ook zou het bedrijf generatieve AI willen toevoegen aan Siri, Xcode en Keynote.

Door Sabine Schults

Redacteur

21-12-2023 • 19:28

48

Reacties (48)

Sorteer op:

Weergave:

Ik hou het lekker bij Gemini nano op mijn Pixel 8 pro......

Speciale chips specifiek voor het draaien van nano.....

https://ai.google.dev/tutorials/android_aicore

[Reactie gewijzigd door well0549 op 23 juli 2024 16:12]

iPhone CPU's hebben al jaren een Neural Engine, specifieke hardware voor AI taken.
Dit is meer dan een npu, deze is speciaal ontwikkeld om chatgpt achtige modellen te draaien. Dat is toch echt wat anders...

Als Apple al jaren een npu achtige processor heeft, waarom wordt hier dan zon ophef over gemaakt....
nieuws: Apple-onderzoekers ontwikkelen methode om LLM's op iPhones uit te voeren

En dit is nu precies wat Gemini doet

[Reactie gewijzigd door well0549 op 23 juli 2024 16:12]

Als Apple al jaren een npu achtige processor heeft, waarom wordt hier dan zon ophef over gemaakt.

Omdat het een developer dingetje is, zie WWDC sessies
Heel veel iOS/macOS features maken gebruik van de NPU via de CoreML API
Xcode komt al een paar jaar de tooling (CreateML) om modellen .
De modellen lopen standaard op de NPU of GPU (Intel macs)
En dat heeft all een aardige verzameling gratis modellen opgeleverd
https://github.com/likedan/Awesome-CoreML-Models
Als je de paper leest zie je dat apple hier helemaal geen hardware voor ontwikkeld heeft. Het zijn gewoon trucjes om het mogelijk te maken om een LLM op een telefoon te draaien door het flash geheugen als een soort DRAM in te zetten. Het is eigenlijk een soort paging, maar dan specifiek voor LLM's. Dus zo heel veel stelt het eigenlijk niet voor.

[Reactie gewijzigd door langestefan op 23 juli 2024 16:12]

Vrijwel alle mobiles hebben NPU aan boord.
Niets bijzonders aan, dat hebbe alle smartphones, al jaren.

En neen, niemand aapt apple na: huawei was nipt de eerste om dit aan te kondigen in september 2017, een week ofzo voor apple het aankondigde, het is dus gewoon een trend die iedereen volgde.
Als het model net zo goed wordt als de slimme assistent Siri dan staat ons nog wat te wachten. /s
Oef… inderdaad, drama..
zelfs het openen van een zonnescherm zorgt ervoor dat ik 1 op de 5 keer te horen krijg waar ik in mijn omgeving zonneschermen kan kopen. |:(
Mijn hele 'huis' draait op HomeKit met verschillende HomePod Mini's, heb vrijwel geen problemen. Een enkele keer dat ie mij niet hoort als ik net binnen kom of als de muziek te hard staat.
Had ik ook. Blijkt dat die moeite heeft met het woord zonnescherm. Als je ze gordijnen noemt, gaat het een stuk beter.
Ik had het al veranderd maar bedankt voor de tip, ik moet zeggen dat het verder wel goed werkt. Zoals @fuse.core hieronder aangeeft met een zooitje mini’s kan ik alles in huis op spraak bedienen.

Ik merk alleen wel dat een Google Assistent beter je “vragen” begrijpt (door de verwerking altijd online te doen?), daar vind ik Siri écht heel slecht in werken.
(Bijv. Hoe laat vertrekt de trein van y naar z? Krijg ik geen antwoord waar ik wat aan heb. )

M’n vrouw doet alles met siri, agenda items, notities, berichten verzenden etc. etc. en die is dik tevreden.

[Reactie gewijzigd door micnocom op 23 juli 2024 16:12]

Je ervaring lijkt gebaseerd op het windows start menu...
Siri loopt nog steeds mijlenver voor op Google, dus dat scheelt.

M'n Google Home Mini kan nog altijd niet in m'n contactenlijst kijken, mails versturen of voorlezen of uberhaupt bellen. Kansloze rotzooi. Maar goed, het nieuws voorlezen en Home Assistant integratie doet ie aardig (maar dat laatste kan HomeKit en dus Siri natuurlijk ook allang)
Kan gewoon.

Vraag Siri anders hoe ff hoe je dat instelt ;-)
Wat kan gewoon? Dat bellen? Ja via Duo, maar er is natuurlijk geen hond die dát ooit gebruikt dus daar schiet ik niet zoveel mee op helaas. En m'n contactenlijst snapt ie tóch al niet... (en ja ik host alles in m'n Google account, agenda/contacten/mail etc).

Whatsapp versturen? Nope. Signal voorlezen? Nope. Mail dicteren? Hahahahahanope.

[Reactie gewijzigd door DigitalExorcist op 23 juli 2024 16:12]

Als ik het goed begrijp zijn dit volledig verschillende manieren van aanpakken.
Siri is (waarschijnlijk) heel goed designed, met heel veel experts die snappen wat er gebeurt.
LLM is zoveel mogelijk data in de ketel gooien, een paar dagen koken, je spreuk in de ketel roepen en horen wat eruit komt. Het zal organischer begrijpen wat je wilt, maar moeilijker om te controleren.
Haha, die Siri. Ik: 'Herinner mij vanavond dat ik de kaas uit de vriezer haal'. Siri: 'Herinnering aangemaakt voor morgenavond: haal vaas voor Pieter'. Ik: 'Nee, káás uit de vriezer. En herinner mij vanavond'. Siri: 'Waaraan wil je vanavond herinnerd worden?'. 8)7
Het juiste antwoord zou zijn “Nee barbaar, dat zal je leren om het in te vriezen!”. ;)
Kaas uit de vriezer WACHT WAT???
Is dit niet vergelijkbaar met memory swap file in Windows / Virtual Memory Retention op.Android?

En een beetje vergelijkbaar als je GPU onder Windows naast VRAM ook RAM laten gebruiken (Nvidia) voor grote modellen.

______

Maar als je kijkt Gemini voor Google heeft ook al mogelijkheden om op je lokale device te draaien. Het voordeel voor Apple is dat alles met een M-processor ook al AI-cores heeft mee gekregen. Ze plannen de hard/software verder vooruit.
Bij het gebruik van VRAM blijft alle data in de pool staan. Zoals ik het lees deelt Apple de data op in partities en wordt afhankelijk van de vraag de bewuste data uit een partitie in het RAM geladen.

Voor simpele vragen lijkt dit wel een oplossing als het goed in elkaar steekt. Als je een complexere vraag hebt dan wordt het toch lastiger. Dus vragen die zaken combineren. Een programmeervraag waarbij veel feitelijk informatie over het universum nodig is lijkt me te complex voor deze techniek bijvoorbeeld. Maar los feitelijk informatie weergeven en een programmeervraag over hoe je afstand berekend zou dan weer in dezelfde data set kunnen zitten.
Mag ik ervanuit gaan dat iedereen (Apple, Google, Qualcomm, Samsung etc) zich zal richten op lokale LLMs programmering of is dat iets anders dan AI chips die in huidige CPUs geplaatst worden?
Kan iemand me uitleggen waarom dit wordt gepubliceerd en niet gewoon geheim wordt gehouden door Apple totdat ze het hebben geïmplementeerd?
Het gerucht gaat dat de volgende iPhone (16) op hardware vlak weinig nieuws zal brengen, en dat we een soort plateau hebben bereikt aan functionaliteiten op een smartphone die je met hardware kan realiseren. De onderscheidende factor van de volgende generatie smartphones zal vooral bij AI liggen. Ik zie dit dan ook als een marketing bericht, een "kijk ons eens kort op de bal spelen" en de consument al warm te maken voor de grote "AI-smartphone revolutie".

Voor mij allemaal best, zo lang ze de processing maar lokaal, on-device doen en niet naar een cloud sturen. Dit bericht geeft me dan ook hoop.
Dan loopt Google voor, het zit immers al op de acht.
Ik ben zelf verder geen programmeur en kan dan ook niet beoordelen of dit dan nu wel zo bijzonder is maar er is wel iets anders wat ik mij vaak afgevraagd heb. Sinds dat intern geheugen goedkoop geworden is zag je ook dat programma's steeds meer intern geheugen gingen gebruiken. Tuurlijk heeft de hele grafische schil ook wel zo zijn invloed gehad maar toch denk ik ook het innovatief denken.

En tja verder word het wel eens tijd dat zowel dan Siri als ook Google wat slimmer gemaakt worden en AI dan daarvoor wel zinvol kan zijn. Net zoals ook voor realtime vertaling iets als AI zinvol is maar ja voor fotografie blijf ik zo mijn vraagtekens zetten.
Heel verstandig dat de onderzoekers van Apple daar alvast mee begonnen zijn. Apple is doorgaans namelijk nogal karig met het geheugen in hun devices /s
Best grappig, want is juist de PC wereld waar een tekort aan RAM voor de GPU een probleem is. Zelfs een 4090 heeft maar 24GB RAM. Vergelijk dit met een Mac met M2 Ultra waar je tot 192GB RAM in kan pleuren, wat vrijwel geheel door de GPU te gebruiken is.
Helaas heeft de m2 effectief veel minder computing units. Een is een 4090 vele malen sneller. Zelfs als het model geswapt moet worden.
Het aantal CU's is niet zo interessant, ten eerste kan je die getallen niet 1:1 vergelijken tussen NVidia, AMD of Apple omdat ze elk iets anders in elkaar zitten en ook andere terminologie gebruiken. Maar belangrijker is dat gebrek aan compute power vrijwel nooit het probleem is bij GPGPU taken. Geheugenbandbreedte is vrijwel altijd de beperkende factor
"maar" ?
Je haalt wat zaken door elkaar trouwens, 4090 is de grafische kaart en dus VRAM of GDDR6X dat vele malen sneller is op een 4090 dan de LPDDR5 RAM die een M2 gebruikt.

Een windows PC kan net zo goed DDR5 als RAM hebben en zelfs een pak meer: moederborden met 8 memory slots die elke 256GB aankunnen en dus meer dan 2TB aan geheugen erop hebben.

LLM's kunnen gewoon beide gebruiken en je zal pakken beter af zijn dan op een M2 .
Dan moet je ook nog een CPU hebben die 256GB geheugen aankan.
4090 is de grafische kaart en dus VRAM of GDDR6X dat vele malen sneller is op een 4090 dan de LPDDR5 RAM die een M2 gebruikt.
'Vele malen sneller' ? De M2 Ultra heeft 800GB/s geheugen bandbreedte, de 4090 heeft 1008GB/s, da's niet 'vele malen meer'. Dat is ruwe bandbreedte, maar GDDR6 heeft significant hogere latency dan DDR5 bron.
Een windows PC kan net zo goed DDR5 als RAM hebben en zelfs een pak meer: moederborden met 8 memory slots die elke 256GB aankunnen en dus meer dan 2TB aan geheugen erop hebben.
Maar daar heeft de GPU niets aan. Data van en naar de GPU kopiëren gaat via de PCIe bus en dat is een flinke bottleneck. PCIe 4.0 16x heeft maar 32GB/s bandbreedte. Zelfs PCIe 5.0 haalt maar 64GB/s bij 16 lanes.
Heel verstandig dat de onderzoekers van Apple daar alvast mee begonnen zijn. Apple is doorgaans namelijk nogal karig met het geheugen in hun devices /s
Ja 16 GB geheugen staat vooral beter op de verpakking van je Android toestel dan 12 GB geheugen natuurlijk /s
Eh, je bedoelt dat iPhones erg goed met geheugen omspringen en een iPhone daarom niet perse 16+GB RAM nodig heeft om goed te kunnen werken?
Android heeft ook helemaal geen 16 gb nodig. Maar draait gewoon allemaal wat soepeler omdat er minder uit het geheugen geknikkerd hoeft te worden.

Als alles in geheugen blijft staan kun je lekker snel van app wisselen....
Dit is natuurlijk maar gedeeltelijk waar.

Veel Android apps draaien puur op Dalvik, wat een Java-achtige VM is die gebruik maakt van garbage collection. Bij gebruik van GC heb je ongeveer 3 keer zo veel RAM nodig als bij ‘handmatig’ geheugenbeheer (inclusief iets als ARC) voor gelijke prestaties. Dit is een trade-off: als je de GC vaker draait heb je minder RAM nodig, maar kost dit snelheid (omdat de GC resources gebruikt), als je ‘m minder vaak draait ben je wat sneller maar verbruik je veel meer RAM (omdat je minder vaak de boel opruimt).

Het is echter wel zo dat bepaalde componenten van Android, zoals de browser engine, gewoon in C++ geschreven zijn en dus niet extra RAM opslokken. Ook zullen dingen als game engines voornamelijk in C/C++ geschreven zijn.

Voor de meeste simpele apps zal het idd wel zo zijn dat ze veel meer RAM verbruiken dan een equivalente app op b.v. iOS.
Java klikt mij niet echt als muziek in de oren. Ooit een BlackBerry die Java apps gebruikte. Was echt een drama.
Java op een BB was ook een ramp. Hoe vaak je zo'n ding wel niet moest rebooten na het installeren of verwijderen van een app..
als bij ‘handmatig’ geheugenbeheer (inclusief iets als ARC)
ARC is geen 'handmatig' geheugenbeheer, het is voor de developer net zo automatisch als GC
Het verschil is dat bij ARC niet meer gebruikt geheugen meteen weer beschikbaar is terwijl dat bij GC wordt uitgesteld totdat de garbage collector z'n werk doet, dat laatste is ook de reden waarom GC profiteert van meer geheugen.
btw Sinds Swift 5.9 is er ook ondersteuning voor moveonly types, maw geheugenbeheer ala Rust
ARC is niet net zo automatisch als GC. Het is een handigheidje waardoor de compiler zelf de release/retain calls toevoegt, maar je moet als developer wel weten dat de compiler dit doet en er expliciet rekening mee houden. Een veel voorkomend voorbeeld is dat je cyclische referenties moet voorkomen, want deze worden niet opgeruimd. Ja het is gedeeltelijk automatisch maar je moet nog steeds nadenken over het opruimen van je objecten.

Garbage Collection is fundamenteel anders. Je kan een VM met GC zien als een simulatie van een computer met oneindig veel geheugen op een computer met eindig veel geheugen. Dit heeft interessante consequenties, je mag er bijvoorbeeld niet van uit gaan dat je objecten ooit worden opgeruimd.
Er zijn ook Androids die goed draaien met minder geheugen. Maar dat zie je dan ook in de prijs terug.
Hetzelfde met de hoeveelheid lokale opslag.

Op dit item kan niet meer gereageerd worden.