I agree: but I just wanted to say that there are specific subdomains where you can mitigate some of these issues.
For example, generating json.
You can explicitly follow a defined grammar to get what will always be a valid json output.
Similarly, structured output such as code can be passed to other tools such as compilers, type checkers and test suites to ensure that at a minimum the output you selected passes some minimum threshold of “isn’t total rubbish”.
For unstructured output this a much harder problem, and bluntly, it doesn’t seem like there’s any kind of meaningful solution to it.
…but the current generation of LLMs are driven by probabilistic sampling functions.
Over the probability curve you’ll always get some rubbish, but if you sample many times for structure and verifiable output you can, to a reasonable degree, mitigate the impact that hallucinations have.
Currently that’s computationally expensive, to drive the chance of error down to a useful level, but compute scales.
We may seem some quite reasonable outputs from similar architectures wrapped in validation frameworks in the future, I guess.
…for, a very specific subset of types of output.