Phones don't use LLM for predictive text. The algos are a lot less complex on phones.
No Stupid Questions
No such thing. Ask away!
!nostupidquestions is a community dedicated to being helpful and answering each others' questions on various topics.
The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:
Rules (interactive)
Rule 1- All posts must be legitimate questions. All post titles must include a question.
All posts must be legitimate questions, and all post titles must include a question. Questions that are joke or trolling questions, memes, song lyrics as title, etc. are not allowed here. See Rule 6 for all exceptions.
Rule 2- Your question subject cannot be illegal or NSFW material.
Your question subject cannot be illegal or NSFW material. You will be warned first, banned second.
Rule 3- Do not seek mental, medical and professional help here.
Do not seek mental, medical and professional help here. Breaking this rule will not get you or your post removed, but it will put you at risk, and possibly in danger.
Rule 4- No self promotion or upvote-farming of any kind.
That's it.
Rule 5- No baiting or sealioning or promoting an agenda.
Questions which, instead of being of an innocuous nature, are specifically intended (based on reports and in the opinion of our crack moderation team) to bait users into ideological wars on charged political topics will be removed and the authors warned - or banned - depending on severity.
Rule 6- Regarding META posts and joke questions.
Provided it is about the community itself, you may post non-question posts using the [META] tag on your post title.
On fridays, you are allowed to post meme and troll questions, on the condition that it's in text format only, and conforms with our other rules. These posts MUST include the [NSQ Friday] tag in their title.
If you post a serious question on friday and are looking only for legitimate answers, then please include the [Serious] tag on your post. Irrelevant replies will then be removed by moderators.
Rule 7- You can't intentionally annoy, mock, or harass other members.
If you intentionally annoy, mock, harass, or discriminate against any individual member, you will be removed.
Likewise, if you are a member, sympathiser or a resemblant of a movement that is known to largely hate, mock, discriminate against, and/or want to take lives of a group of people, and you were provably vocal about your hate, then you will be banned on sight.
Rule 8- All comments should try to stay relevant to their parent content.
Rule 9- Reposts from other platforms are not allowed.
Let everyone have their own content.
Rule 10- Majority of bots aren't allowed to participate here.
Credits
Our breathtaking icon was bestowed upon us by @Cevilia!
The greatest banner of all time: by @TheOneWithTheHair!
I guess, the real question is: Could we be using (simplistic) LLMs on a phone for predictive text?
There's some LLMs that can be run offline and which maybe wouldn't use enormous amounts of battery. But I don't know how good the quality of those is...
You can run an LLM on a phone (tried it myself once, with llama.cpp), but even on the simplest model I could find it was doing maybe one word every few seconds while using up 100% of the CPU. The quality is terrible, and your battery wouldn't last an hour.
Does the AI processing have to be performed locally or constantly active?
No, but you open up a can of worms from a security aspect if you send it out to be processed.
I'm sure every phone having a keylogger won't end badly
And latency.
The kind of local/offline LLMs that would work on your phone would not be very good quality. There's been amazing progress in quantization of LLMs to get them working on weaker GPUs with lower VRAM and CPUs, so maybe it'll occur, but I'm not an expert.
I also don't foresee them linking it up to a cloud-based LLM as that'd be a shit load of queries and extremely expensive.
OpenAI is probably already handling a significant amount of queries, I think for daily use the LLM should simply initialize a word map based on user history and then update it semi-occasionally, like once a week or two. Most people don’t drastically change their vocabulary in the course of a few weeks
We're talking about orders of magnitude more queries if we start offloading predective text like that.
That was my next question, thanks!
Didn't think of battery use, makes sense
Openhermes 2.5 Mistral 7b competes with LLMs that require 10x the resources. You could try it out on your phone.
A pre trained model isn't going to learn how you type the more you use it. Though with Microsoft owning SwiftKey, I imagine they will try it soon
I was so heartbroken when I found out that Microsoft purchased Swiftkey. It was my favorite. Is there any way to still use it without Microsoft involved? Lawdhammercy
I think apple has pitched this for a future iPhone, yes.
They'll probably have to offload that to a server farm in real time. That's not gonna be easy.
I guess... why not... but the db is probably huge, like in the hundreds of GB (maybe even TB... who knows), can't run that offline.
iOS 17 uses a small gpt-2 based model for predictive text.
Hm, that's interesting 👍.
The algorithms are the same. The models are different, being trained on a smaller data set.
No, the algorithms are not the same. Phones don't use transformer models for text prediction, they use Markov chain-based approaches. Also, retraining of transformer models for individualized completion would be too expensive, whereas it's basically free with Markov approaches. Where do you get these ideas?
Perhaps, I'm not a dev, especially not an iOS or an Android one.
AI is a vast field. LLMs and neural networks are a small part of it.
LLMs are very expensive to run and a lot more complex than the markov chains often used for predictive text.
Predictive text just chooses a likely word based on what's typed. This may be as simple as looking for words that start with what you've typed.
LLMs vectorise words and understand the complex relationship between vectors using many data points. So it would spot the word "two" and realise that plurals are used with it.
Predictive text also can vectorize words, but the number of vectors per word are much, much simpler.
Now guess how it feels to type German with predictive text. Most of our words can have more than a dozen different word endings depending on time and how the word is used. And that's not taking into account that we use compound words, which word prediction pretty much cannot predict and often doesn't even know. So spell check will mark a legal compound word as misspelled, because it doesn't understand the concept of compound words and doesn't know this specific word combination.
To show what I mean, the term "Danube steam boat captain's hat" becomes "DonauDampfSchiffKapitänsMütze" (I added capital letters which shouldn't be there to show where the next word in the compound word begins).
While this is an extreme example, it's pretty common for compound words to consist of 4-5 words.
And for some reason, some cases seem to be missing completely on my Android default keyboard. "untersuchst", just like a bunch of second person cases for slightly unusual words is non existent.
Yeah, noticed that too. This is really annoying.
My favourite: 'geröntgt' which is the second participle of 'röntgen' to x-ray someone. Never heard it pronounced correctly by a native speaker.
Dutch also has the issue with the compound words. Autocorrect will often put a space in there, which is grammatically incorrect (and ugly). I feel like it’s at a point now where the incorrect space usage has become mainstream and might change the language rules. Oh well.
LLMs are orders of magnitude more sophisticated and expensive to run. But don't worry, I'm sure not so far in the future we will see smaller LLMs being run on device to be used as autocorrect.
It would have to be pretty specific and small to work on a phone and I think a side effect would be everyone's conversations start to sound a lot more homogeneous.
you're not wrong. Google just announced Gemini Nano that will run directly on the Pixel 8. Of course, it's the first of it's kind and will probably be slow and it's not used as autocorrect yet. But just give it one year or two and it will probably be more common.
Even give years ago, Google had a keyboard that skimmed your emails and texts to start a bank of words you use to supplement it's dictionary for autocorrect. Like if you are a chemist and send an email that includes the word "tetrahydrafuran" every couple month, it would be nice for your phone keyboard to just have it in the dictionary.
SwiftKey does that if you give it access to your emails.
Can we have Scottish ones that know what a bawbag is, and when to put an "e" on the end of "shit"?
Thanks!
Because they're using different tech. That's like asking why do phone calls sound bad compared to voip calls. They're just using different tech.
Lawnmowers can't keep up with Ferraris either, despite both being vehicles.
edit for wording
You're in the No Stupid Questions community. Think about rule 7 in particular.
Ah, thank you. I'll edit.
@Mr_Blott@lemmy.world autocorrect doesn’t use LLMs, at least not yet generally. I suspect it is some kind of markov model or maybe?
LLMs like chatgpt take a wild amount of resources to run.
If you want something as smart as gpt3 and you want it to run at typing speeds, you’ll need a gaming PC running it.
People just recently managed to run gpt3 strength models at all on ordinary laptop hardware (slowly).
There is currently no way to run something gpt4 strength on ordinary consumer hardware (I’m just guessing but I think it takes a few hundred gb of VRAM to run)
You're comparing apples to oranges.
What the duck are you talking about?