7 ms·
Large enough repos don't fit on a single machine. I don't believe any human can understand a problem if they need to fit the entire problem blem domain in thei
by onion2k 1y ago
Large enough repos don't fit on a single machine.
I don't believe any human can understand a problem if they need to fit the entire problem blem domain in their head, and the scope of a domain that doesn't fit on a computer. You have to break it down into a manageable amount of information to tackle it in chunks.
If a person can do that, so can an LLM prompted to do that by a person.
- wraptile 1y agoRight, the LLM doesn't need to know all of the code under utils.parse_id to know that this call will parse the ID. The best LLM results I get is when I manually define the the relative code graph of my problem similar how I'd imagine it my head which seems to provide optimal context. So bigger isn't really better.
- rocqua 1y agoI wonder why we can't have one LLM generate this understanding for another? Perhaps this is where teaming of LLMs gets its value. In managing high and low level context in different context windows.
- mixedCase 1y agoThis is a thing and doesn't require a separate model. You can set up custom prompts that will, based on another prompt describing the task to achieve, generate information about the codebase and a set of TODOs to accomplish the task, generating markdown files with a summarized version of the relevant knowledge and prompting you again to refine that summary if needed. You can then use these files to let the agent take over without going on a wild goose chase.
- ehnto 1y agoI 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...
- krainboltgreene 1y agoI have an entire life worth of context and I still remember projects I worked on 15 years ago.
- adastra22 1y agoNot with pixel perfect accuracy. You vaguely remember, although it may not feel like that because your brain fills in the details (hallucinates) as you recall. The comparisons are closer than you might think.
- vidarh 1y agoThe comparison would be apt if the LLM was trained on your codebase.
- jimbokun 1y agoIsn’t that the problem? I don’t see any progress on incrementally training LLMs on specific projects. I believe it’s called fine tuning, right? Why isn’t that the default approach anywhere instead of the hack of bigger “context windows”?
- adastra22 1y agoBecause fine-tuning can be used to remove restrictions from a model, so they don't give us plebs access to that.
- gerhardi 1y agoI’m not well versed enough on this but wouldn’t it be a problem with custom training that the specific project training codebases probably would likely have a lot of the implemented stuff, relevant for the domain, only once and in one way, compared to how the todays popular large models have been trained maybe with countless different ways to use common libraries for whatever various tasks with whatever Github ripped material fed in?
- krainboltgreene 1y ago
- melagonster 1y agoSure, this is why AGI looks possible sometimes. But companies should not require their users to create AGI for them.
- friendzis 1y agoFitting the entire problem domain in their head is what engineers do. Engineering is merely a search for optimal solution in this multidimensional space of problem domain(-s), requirements, limitations and optimization functions.
- barnabee 1y ago_Good_ engineers fit their entire understanding of the problem domain in their head The best engineers understand how big a difference that is