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.

  • Shin@piefed.socialOP
    link
    fedilink
    English
    arrow-up
    3
    ·
    4 days ago

    […] can’t LLMs solve the cognitive debt problem better then people? […]

    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 (camelCase to snake_case in 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.

    […] exact input and node activation is all you’d need for forensics, the only reason to refeed would old input plus new input mix, […]

    This is badly wrong. The same node can point to multiple places depending on the K factor on this. And this isn’t even the T applied to it. So, the same node can infer multiple different others. This is the nature of the probabilistic of LLM.

    • fruitycoder@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      2
      ·
      2 days ago

      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.

      • Shin@piefed.socialOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 days ago

        So you are suggesting that we should have the metadata for every decision and direction. This is a N^N amount 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.

        • fruitycoder@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          1
          ·
          1 day ago

          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.

          • Shin@piefed.socialOP
            link
            fedilink
            English
            arrow-up
            1
            ·
            21 hours ago

            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.

            • fruitycoder@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              1
              ·
              18 hours ago

              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.

              • Shin@piefed.socialOP
                link
                fedilink
                English
                arrow-up
                2
                ·
                13 hours ago

                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.

                • fruitycoder@sh.itjust.works
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  11 hours ago

                  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.