qbreader / website

A text-based quizbowl packet reader with support for both single- and multi-player.
https://www.qbreader.org
MIT License
40 stars 19 forks source link

QB Reader AI #10

Open geoffrey-wu opened 2 years ago

geoffrey-wu commented 2 years ago

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)

derikk commented 10 months 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.

image
geoffrey-wu commented 10 months ago

Some other options could be: buzzing against average buzzpoint of a tossup across all recorded stats and buzzing against stats uploaded from a mirror

alopezlago commented 10 months ago

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.

SamarthP5 commented 9 months ago

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.

Captain-Quack commented 9 months ago

It could also adjust its abilities based on the performance of the player.

midjanuary commented 9 months ago

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.