Open geoffrey-wu opened 2 years ago
I've tested LLMs for this purpose with good results; here is Zephyr 7B (running locally) buzzing on a Science Bowl question. You could feed in the question a few words at a time to a model and see where it buzzes in. Each buzz attempt would cost only a hundredth of a cent on gpt-3.5-turbo
.
Some other options could be: buzzing against average buzzpoint of a tossup across all recorded stats and buzzing against stats uploaded from a mirror
If you use an LLM you'll want to dumb it down or handicap it since it'll be much better than most players and won't be enjoyable to play against. There are some techniques you can do to help (for example, give the player a 10-15 word handicap).
The cheapest option is likely a probabilistic model that randomly buzzes in and has a certain chance to convert. This also lets you do things like make the player stronger in certain categories, etc.
From a fellow quizbowler - Another option could be expanding the context window for the LLM and train it on contextual clues. This could be branched off for a learning experience, i.e giving the context of these clues upon a successful answer, so the human player can learn these clues. As difficulty increases, the context gets more obscure. You can also combine this with the probabilistic model proposed before. One helpful paper that I had found a while ago about MemGPT does exactly this, https://arxiv.org/abs/2310.08560.
It could also adjust its abilities based on the performance of the player.
Perhaps you can do an AI thing that also makes up tossups that fit the category? For more variety in the questions. This one is probably easier to do than a bot playing against you.
Create an AI that the player can play against that would buzz against the player
Potential resources to check out:
Or, the AI can just buzz within a certain range (range would change based on difficulty)