5 ms·
I disagree, I may not have the whole codebase in my head in one moment but I have had all of it in my head at some point, and it is still there, that is not tru
by ehnto 1y ago
I disagree, I may not have the whole codebase in my head in one moment but I have had all of it in my head at some point, and it is still there, that is not true of an LLM. I use LLMs and am impressed by them, but they just do not approximate a human in this particular area.
My ability to break a problem down does not start from listing the files out and reading a few. I have a high level understanding of the whole project at all times, and a deep understanding of the whole project stored, and I can recall that when required, this is not true of an LLM at any point.
We know this is a limitation and it's why we have various tools attempting to approximate memory and augment training on the fly, but they are approximations and they are in my opinion, not even close to real human memory and depth of understanding for data it was not trained on.
Even for mutations of scenarios it was trained on, which code is a great example of that. It is trained on billions of lines of code, yet still fails to understand my codebase intuitively. I have definitely not read billions of lines of code.
- airbreather 1y agoyou will have abstractions - black boxing, interface overviews etc, humans can only hold so much detail in current context memory, some say 7 items on average.
- ehnto 1y agoOf course, but even those blackoxes are not empty, they've got a vague picture inside them based on prior experience. I have been doing this for a while so most things are just various flavours of the same stuff, especially in enterprise software. The important thing in this context is that I know it's all there, I don't have to grep the codebase to fill up my context, and my understanding of the holistic project does not change each time I am booted up.
- jimbokun 1y agoAnd LLMs can’t leverage these abstractions nearly as well as humans…so far.
- ehnto 1y agoAdditionally, the more information you put into the context the more confused the LLM will get, if you did dump the whole codebase into the context it would not suddenly understand the whole thing. It is still an LLM, all you have done is polluted the context with a million lines of unrelated code, and some lines of related code, which it will struggle to find in the noise (in my experience of much smaller experiments)
- Bombthecat 1y agoI call this context decay. :) The bigger the context, the more stuff "decays" sometimes to complete different meanings
- xwolfi 1y agoYou only worked on very small codebase then. When you work on giant ones, you Ctrl+F a lot, build a limited model of the problem space, and pray the unit tests will catch anything you might have missed...
- akhosravian 1y agoAnd when you work on a really big codebase you start having multiple files and have to learn tools more advanced than ctrl-f!!
- ghurtado 1y ago> and have to learn tools more advanced than ctrl-f!! Such as ctrl-shift-f But this is an advanced topic, I don't wanna get into it
- ehnto 1y agoWe're measuring lengths of string, but I would not say I have worked on small projects. I am very familiar with discovery, and have worked on a lot of large legacy projects that have no tests just fine.
- jimbokun 1y agoWhy are LLMs so bad at doing the same thing?
- PaulDavisThe1st 1y ago> I disagree, I may not have the whole codebase in my head in one moment but I have had all of it in my head at some point, and it is still there, that is not true of an LLM. All 3 points (you have had all of it your head at some point, it is still there, that is not true of an LLM) are mere conjectures, and not provable at this time, certainly not in the general case. You may be able to show this of some codebases for some developers and for some LLMs, but not all.
- fnordsensei 1y agoThe brain can literally not process any piece of information without being changed by the act of processing it. Neuronal pathways are constantly being reinforced or weakened. Even remembering alters the memory being recalled, entirely unlike how computers work.
- johnisgood 1y agoFor humans, remembering strengthens that memory, even if it is dead wrong.
- Lutger 1y agoI've always find it interesting that once I take a wrong turn finding my way through the city and I'm not deliberate about remembering this was, in fact, a mistake, I am more prone to taking the same wrong turn again the next time.
- dberge 1y ago> once I take a wrong turn finding my way through the city... I am more prone to taking the same wrong turn again You may want to stay home then to avoid getting lost.
- jbs789 1y agoI'm not sure the idea that a developer maintains a high level understanding is all that controversial...
- ivape 1y agoMy ability to break a problem down does not start from listing the files out and reading a few. I does, it’s just happening at lightning speed.
- CPLX 1y agoWe don't actually know that. If we had that level of understanding of how exactly our brains do what they do things would be quite different.
- onion2k 1y agoMy ability to break a problem down does not start from listing the files out and reading a few. If you're completely new to the problem then ... yes, it does. You're assuming that you're working on a project that you've spent time on and learned the domain for, and then you're comparing that to an LLM being prompted to look at a codebase with the context of the files. Those things are not the same though. A closer analogy to LLMs would be prompting it for questions when it has access (either through MCP or training) to the project's git history, documentation, notes, issue tracker, etc. When that sort of thing is commonplace, and LLMs have the context window size to take advantage of all that information, I suspect we'll be surprised how good they are even given the results we get today.
- ehnto 1y ago> If you're completely new to the problem then ... yes, it does. Of course, because I am not new to the problem, whereas an LLM is new to it every new prompt. I am not really trying to find a fair comparison because I believe humans have an unfair advantage in this instance, and am trying to make that point, rather than compare like for like abilities. I think we'll find even with all the context clues from MCPs and history etc. they might still fail to have the insight to recall the right data into the context, but that's just a feeling I have from working with Claude Code for a while. Because I instruct it to do those things, like look through git log, check the documentation etc, and it sometimes finds a path through to an insight but it's just as likely to get lost. I alluded to it somewhere else but my experience with massive context windows so far has just been that it distracts the LLM. We are usually guiding it down a path with each new prompt and have a specific subset of information to give it, and so pumping the context full of unrelated code at the start seems to derail it from that path. That's anecdotal, though I encourage you to try messing around with it. As always, there's a good chance I will eat my hat some day.
- scott_s 1y ago> Of course, because I am not new to the problem, whereas an LLM is new to it every new prompt. That is true for the LLMs you have access to now. Now imagine if the LLM had been trained on your entire code base. And not just the code, but the entire commit history, commit messages and also all of your external design docs. And code and docs from all relevant projects. That LLM would not be new to the problem every prompt. Basically, imagine that you fine-tuned an LLM for your specific project. You will eventually have access to such an LLM.