this post was submitted on 14 Jan 2024
264 points (95.5% liked)
Technology
59605 readers
3403 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Is it even feasible with this technology? You can't have infinite prompts so you would have to adjust the weights dynamically, right? But would that produce the effect of memory? I don't think so. I think it will take another major breakthrough before we have personal models with memory.
I agree that it has limits but there are things we could do to make it reasonably good. ChatGPT knows how to execute actions (such as calling an API or doing a web search). It could probably be made to store and look up information in a vector database, essentially giving it a long-term memory.
Given some smaller breakthroughs in performance and model size we could conceivably retrain the network on new input continuously, in order to incorporate new knowledge.
That's the thing, I don't think a database can work as a long term memory here. How would it work? Let's say you tell your AI girlfriend that Interstellar movie was so bad it made you vomit. What would it store in the DB? When would it look that info up? It would be even worse with specific events. Should it remember the exact date of each event perfectly like DB does? It would be unnatural. To actually simulate memory it should alter the model somehow and the scale of the change should be proportional to the emotional charge of the message. I think this is on a completely different level than current models.
Vector databases are relatively good at this kind of thing, because they can find records based on queries that are semantically close instead of just a lexical search. It would probably still make sense to split the information up in fragments such as e.g., "Interstellar movie," "watched on February 2nd, 2021," "made me vomit", and then connect those records to each other. GPTs are good at that kind of preprocessing. The idea would not be to store exact data such as timestamps and that's not how vector databases work, so recall would be more associative just like for humans (I can't ask you what movie you watched on Feburary 2nd, 2021 and expect an accurate reply either).
But you would have to do something like multiple steps of preprocessing with expanding search depth on each step and do it both ways: when recollecting and changing memories. Like if I say:
So you process the first input, find the relevant info in the 'memory' but then for the second one you have to recognize that this is regarding the same memory, understand the memory and alter it/append to it. It would get complicated really fast. We would need some AI memory management system to manage the memory for the AI. I'm sure it's technically possible but I think it will take another breakthrough and we won't see it soon.
Again, you will certainly hit limitations if you push it, but the example you give would work fine if you just append the added information to the database. A query for Interstellar would return both your original statements and the fact that you later said you lied about it, and all of these records are inserted into the GPT's context (short-term memory) when discussing that subject.
...i may be too green to see something here, but wouldn't simply saving month, year, topic, mood and quote enough? If AI needs everything formatted in certain input, run this through API. Teach AI to save only moments where user uses agitated language or smth and to periodically run checks if current convo allows for throwback, for example by topic, with advanced query when user asks if AI remembers something.
Then sell all this data for fat profit.
So imagine a convo:
1 years later:
Now the AI can find the meesage that said 'Interstellar' in the history but without any context. To know you were talking about the movie it would have to analyze the entire conversation again. And the emotional charge of the message can also change instantly:
What would the AI 'remember'? It would require some higher level of understanding of the conversation and the 'memories' would have to be updated all the time. It's just not possible to replicate with simple log.
Thanks for examples, now yeah, that's really ain't that simple...and hard af to foolproof. :/
It’s when people dive into this sort of memory stuff that I always remember: “oh yeah, this is why people call it a stochastic parrot.”
LLMs can do a lot. But without memory, they run into walls fast.
There are two issues with large prompts. One is linked to the current language technology, were the computation time and memory usage scale badly with prompt size. This is being solved by projects such as RWKV or mamba, but these remain unproven at large sizes (more than 100 billion parameters). Somebody will have to spend some millions to train one.
The other issue will probably be harder to solve. There is less high quality long context training data. Most datasets were created for small context models.
I never considered that this was a dynamic that was involved. Thats interesting. So each piece of data fed into a model during training also has to fit into a “context window” of a certain size too?
Yes to your question, but that's not what I was saying.
Here is one of the most popular training datasets : https://pile.eleuther.ai/
If you look at the pdf describing the dataset, you'll find the mean length of these documents to be somewhat short with mean length being less than 20kb (20000 characters) for most documents.
You are asking for a model to retain a memory for the whole duration of a discussion, which can be very long. If I chat for one hour I'll type approximately 8400 words, or around 42KB. Longer than most documents in the training set. If I chat for 20 hours, It'll be longer than almost all the documents in the training set. The model needs to learn how to extract information from a long context and it can't do that well if the documents on which it trained are short.
You are also right that during training the text is cut off. A value I often see is 2k to 8k tokens. This is arbitrary, some models are trained with a cut off of 200k tokens. You can use models on context lengths longer than that what they were trained on (with some caveats) but performance falls of badly.
Yeah I dunno. It might be a fundamental flaw that you will run into forever. But I’m assuming the window will get quite large, and clever ways to “compress” the memory will be implemented.
Other people replied. I’ll go read those now…