Certainly anyone just running LLM code output without doing a bunch of tests and checks is a lunatic.
I mean, like, what would it mean to actually solve the problem? I would not expect any computer system to know the answer to literally everything, so the fix is not to train it more, but rather, for it to realize and acknowledge if it doesn't have enough data to give a good answer, and tell you that rather than make something up.
Does GPT4 do that? (I have yet to use GPT4 myself.)
I mean, kind of works with humans too. In a high pressure work or school environment, people can confabulate the answers someone wants to hear to avoid discomfort “oh yes, we did the training exercise, the trucks and tanks are in great shape.” Sometimes people need to know they can admit they are wrong. I wonder if some aspect of current LLM tuning/training could be modified so LLMs are more “comfortable”, for lack of a non-anthropomorphized term coming to mind, with admitting they are unsure.
In my experience, it probably hallucinates about 3x less than GPT 3.5. I use GPT-4 a lot but really only for code generation and answering questions about documentation.
I'm not including cases where it gives answers that are out of date as hallucations, I consider that an entirely separate failure mode.
It's not a big deal in practice, though, as long as you remember to take a probabilistic approach. GPT-4 is not an oracle, it's a 4 year old savant, that tries its best, but has attention span of a hamster, and likes to extrapolate instead of saying "I don't know". In domains you have at least minimal experience in (e.g. you can program, but not in the language/framework you're asking about), it's relatively easy to verify things by common sense and/or by paying attention to the conversation - if the follow-up message seems to contradict the previous one, it's likely at least one of them involves a hallucination. Etc.
The overall feel I get for GPT-4, at least in terms of code, is that its hallucinations tend to mostly be of the "I don't know for sure, but seems logical that..." kind.
A real example from earlier today: I asked GPT-4 to refactor some code C++ that contained function calls like InitializeSomething(), AddWidget(), etc. It decided to put all those calls into RAII objects, and hallucinated the existence of corresponding function DeinitializeSomething(), RemoveWidget(), etc. I kind of understand why it did that - it feels only logical that such functions exist too.
And in an honest interaction, they will tell you.
ChatGPT etc. does not. So basically it acts like a pathological liar (who happen to be right as long as it has been trained on something that comes close enough).
Scientist? STEM workers? Maybe. People who value truth / consistent world model for its own sake? Sure.
Normies? Not so much. It's not that they can't - I think they never learned to pay enough attention. What I mean is, most people tend to say things in confidence, and maybe even believe them, regardless of how they acquired the information. They don't seem to process the distinction between "I read it in a book", "A colleague told me that their colleague heard on the radio that...", etc. They don't even track provenance of the information, which is a critical skill you need to not end up confidently making things up.
It's a learnable skill, and I think it's even quite easy to pick it up from osmosis - but someone has to make the person feel that it's important.
> So basically it acts like a pathological liar
I think it's more of a bullshitter than a liar, in the sense that it doesn't care about truth value of what it says.
Lying involve knowing the truth, or at least knowing that the thing you're saying ain't it. Making a mistake involves you thinking you're saying the truth, but actually being wrong about it. Bullshitting is just saying whatever helps you achieve your goal; the truth value of what you say doesn't even enter the picture.