As we continue developing our software, we accumulate a growing amount of technical debt just to keep the system running. But I believe we are on the brink of an even larger issue. Cognitive debt.
Hope you enjoy this reading, all feedback is welcome.



Better, probably not. And I’ll give you one example. In a codebase there was an issue with Auth, after few runs of the LLM, the best suggestion resulted in 30~40% of change in the Auth workflow.
Took me a couple hours to figure out that the problem was a misconfiguration key (
camelCasetosnake_casein the vault store). Fixing this on the store (not on the code) fixed the Auth workflow.This two hours were the cognitive debt. And keep in mind, I’m familiar with this part of the code. A Mechanical Parrot happy-trigger boyz would accept the change in the codebase as an attempt to fix it.
So, mechanical parrot can help? Sure. But better than people, probably not. At least not yet, not with the current set of tool, not with the promise of fully solving it.
This is badly wrong. The same node can point to multiple places depending on the
Kfactor on this. And this isn’t even theTapplied to it. So, the same node can infer multiple different others. This is the nature of the probabilistic of LLM.First agreed. Honestly I haven’t an LLM do anything close to an engineer. You can get lucky for a code snippet or two and maybe a few ADRs but even those are fraught with the chance of slop clean up work. I am not arguing that.
The node is only probalistic because of the random number added. After the fact the number is known.
So you are suggesting that we should have the metadata for every decision and direction. This is a
N^Namount of data. Keeping this data is wastefull (even more than the usage of LLM right now). Not saying that is is useless, but for sure this won’t help to mitigate the cognition since this data don’t carry meaning for us humans.No that should be discoverable with the models weights, input and random numbers added to the weight at the time.
Say for example you find that a collection of outputs behave oddly or in an undesired way, you could use this to find what simularties they share with each other but delta with other and naively prune the nodes or simply decrease their weights. Those you could also try to corralate that to certain input tokens to engineer better prompts or try to trace it back to initial training data.
It could also be a failed tool call adding garbage data in, or malicious. A trace could catch that as well.
No, the random part happens in the query.
There is also random in the training, but the query also generate more random numbers.
Otherwise this would be a deterministic procedure, and it’s not.
We are saying the samethings but you are adding no to it.
Right, during inference random numbers are generated, that plus the numbers from input are added to the weight values and the matrix multiplication happens. If you used the same random numbers and inputs it is deterministic. For regular use you don’t do that because you want a stochastic output, if you wanting to do forensics and trace what led to an output you would benifit from that determinism.
Gotcha,
But this means we need to provide not only the same query (and be sure that the tokenizer is the same) but also provide the seed for the number generation. In this case we will have a deterministic outcome. (Unless we provide the list of numbers used, which for me feels wasteful)
But at this point none of the providers have this feature.
And I don’t think the open source have this also. But open source can be updated/changed.
Not that I see either looking at opensource inference engines. vLLM supports setting the seed so if you have that you do, and maybe it’s just as simple as harness setting and recording that. At least for replay this request type of operation but that does not show where in model each random numbers would have been applied.