I was confused by the “can’t hallucinate” thing, because it sounded like BS but people were taking it seriously. I purposefully asked a stupid question sort of like “this can’t hallucinate because it only has one output and there’s a schema?”. Was disappointed to learn the answer was yes.
Yeah it’s hilarious, it definitely can hallucinate. Just because it can only hallucinate “A” or “B” rather than a whole paragraph, doesn’t mean it is suddenly more accurate.
And they’re acting like their probability isn’t as hallucinated as any other LLM guess.
They’re definining hallucination as a property of iterative generation, which is fair enough, but then it’s sort of like selling a boat and saying it doesn’t need tire changes.
It does make some sense given they're positioning it as alternative to the normal way you'd implement such output shape, which is to slap a prompt on a frontier LLM and maybe run it in "constrained output" mode if you like things fancy. Against that use case, the "no hallucinations" and parallelism and cost claims all sound legitimate and useful -- and similarly, "but we could do that with BERT two years ago" does not.
I mean, the constrained output mode also doesn’t hallucinate in this sense.
I don't think that is an entirely fair comparison. They are comparing Jev to the way people are currently using generative LLMs for things like classifying/tool calling/any kind of structured output.
For example, if you feed in some context to Jev and Claude Haiku and say "make the appropriate tool call based on this context", Claude (or any other frontier LLM) will hallucinate tool calls some percentage of the time. Jev will not. While yes, the "will not" is constrained by Jev's (lack of) capabilities in some sense, this is actually a very real need for a wide variety of use-cases people are currently using off-the-shelf LLMs for at the moment.
Probably the better example is the whole probability thing, where even if you use something like constrained decoding to ensure an LLM only outputs a certain schema, and therefore can't hallucinate a class, if you ask for probabilities, the probabilities output by the model are just hallucinations. Jev meanwhile is outputting calibrated probabilities for different choices based on the actual landscape.
"will hallucinate tool calls" doesn't match any definition of hallucination I've seen in 4 years. Tool calls are output of the model, it can't "hallucinate" they happened. Maybe you're describing output we'd disagree with?
Not the person you’re replying to, but I think that was a bad example. Because an LLM‘s output is iterative, the output ends up being influenced by various attractors. That doesn’t happen when you one-shot a single prediction (or multiple parallel predictions). That is a whole category of things, that people traditionally call hallucinations, that are structurally cut off by Jev’s architecture.
That doesn’t mean the models outputs are correct, nor is TypeSafe claiming that afaict.
Hallucinate tools that don't exist.
But that hallucination is reproducible so you can adjust the prompt. Unlike an LLM in which everything is wildly not deterministic.
LLM can be made deterministic too, they’re just generally not because the element of randomness is a feature.
There’s a big difference between deterministic and smooth though. Typical LLMs certainly aren’t reliably smooth, so the small prompt change might product a large and unpredictable output change. I’m not sure if that’s any better with the typesafe approach.
Why would you think "can't hallucinate" means "can't pick wrong probability of an option" ?
Hallucination is the result of a series of choices of options based on poor predictions of probability (or poor sampling from a probability distribution). As I understand the typesafe approach they’re allowing the set of options to be constrained, but the potential for a misrepresentative probability distribution is still there, and hence so is the potential for “hallucination”.
Yes, but that won't be a hallucination. Same root cause, but IMO it was pretty clear they meant "given options red, green, blue this will never say purple", doesn't mean it still can't misclassify green as blue.