logoalt Hacker News

nextaccountictoday at 3:58 AM3 repliesview on HN

> The model invents new categories (e.g. apartments) and doesn’t stick to the provided list of allowed categories

Can this specific failure mode be solved by providing a grammar that the output must adhere to? (Not sure if Qwen has this feature, it's used for eg. to ensure the output is parseable json)


Replies

nltoday at 4:02 AM

It can.

It's something that is implemented by the thing that runs the model - eg Llama.cpp - rather than the model itself.

Note that it is hard to make work if you turn thinking on because the grammar gets complicated quickly (I don't recall if Qwen 0.6B can do thinking).

show 1 reply
mijoharastoday at 12:44 PM

This was my thought as well. I'm surprised that it's not being used here (afaict)

thomascountztoday at 6:40 AM

Yes, you can use constrained decoding like logit masking to force all invalid tokens in the vocabulary to -inf, and effectively be removed from selection. I believe llama.cpp exposes this by accepting a formatted grammar.