[HN Gopher] What if we set GPT-4 free in Minecraft?
       ___________________________________________________________________
        
       What if we set GPT-4 free in Minecraft?
        
       Author : ecliptik
       Score  : 113 points
       Date   : 2023-05-26 19:44 UTC (3 hours ago)
        
 (HTM) web link (twitter.com)
 (TXT) w3m dump (twitter.com)
        
       | Imnimo wrote:
       | It's always fun to look at the prompts used by these projects.
       | Here are a few snippets from this one:
       | 
       | >You are a helpful assistant that tells me the next immediate
       | task to do in Minecraft. My ultimate goal is to discover as many
       | diverse things as possible, accomplish as many diverse tasks as
       | possible and become the best Minecraft player in the world.
       | 
       | >8) Tasks that require information beyond the player's status to
       | verify should be avoided. For instance, "Placing 4 torches" and
       | "Dig a 2x1x2 hole" are not ideal since they require visual
       | confirmation from the screen. All the placing, building,
       | planting, and trading tasks should be avoided. Do not propose
       | task starting with these keywords
       | 
       | >7) Use `exploreUntil(bot, direction, maxDistance, callback)`
       | when you cannot find something. You should frequently call this
       | before mining blocks or killing mobs. You should select a
       | direction at random every time instead of constantly using (1, 0,
       | 1).
       | 
       | >9) Do not write infinite loops or recursive functions.
       | 
       | You can really imagine the sorts of pitfalls the agent fell into
       | that induced the authors to add these stipulations.
        
         | qayxc wrote:
         | In the end it all looks like classical programming with extra
         | steps to me :)
        
           | Imnimo wrote:
           | Even more than the complex prompts, they give the bot access
           | to a variety of functions implementing primitive actions,
           | which are crafted to give helpful hints if the bot is
           | struggling. For example, the code for mining a block:
           | 
           | https://github.com/MineDojo/Voyager/blob/main/voyager/contro.
           | ..
           | 
           | This function keeps a global count of how many times it's
           | been called to mine a block that doesn't exist nearby, and
           | will warn the bot that it should try exploring first instead.
           | 
           | There's nothing necessarily wrong with all that - it's an
           | important research question to understand how much hand-
           | holding the agent needs to be able to do these sorts of
           | tasks. But readers should be aware that it's hardly dropping
           | an agent into the world and leaving it to its own devices.
        
             | sterlind wrote:
             | I do love their use of `bot.chat()` as, like, throwing an
             | exception to the AI. maybe this finally gives developers an
             | incentive to document their code and throw intelligible
             | errors - the machines need it to figure out what they're
             | doing wrong!
        
               | ineedasername wrote:
               | ChatGPT: _I am sorry for the confusion. I am a large
               | language model (LLM) trained on natural language and my
               | training data cutoff is September 2021. Hexadecimal
               | references to memory addresses are not part of my
               | training data set."_
        
         | doctoboggan wrote:
         | >9) Do not write infinite loops or recursive functions.
         | 
         | did GPT-4 just solve the halting problem?
        
           | geoelectric wrote:
           | Seems slightly easier for me to guarantee something _I_ wrote
           | halts. The halting problem is more about a process analyzing
           | someone else 's arbitrary code.
        
             | cyanydeez wrote:
             | Is gpt conceptually always analyzing someone else's code?
        
               | IIAOPSW wrote:
               | Are you conceptually always analyzing some stackoverflow
               | code?
        
           | redox99 wrote:
           | It's trivial to avoid infinite loops by adding some exit
           | condition in case it takes too long, which is probably what
           | you want here.
           | 
           | And obviously trivial to avoid recursion too.
        
           | narrator wrote:
           | If the brain is like a computer, how do humans even solve the
           | halting problem? Maybe it's because humans feel anxiety at
           | the unproductive passing of time while computers will just do
           | what they're doing forever.
        
             | IIAOPSW wrote:
             | Nothing you think about consciously has higher thread
             | priority than the stay-alive loop.
        
             | i2cmaster wrote:
             | Humans tend to communicate/write software in what are
             | really sub languages. Often these sub languages are not
             | recursive.
        
           | moffkalast wrote:
           | if(going_to_halt)             dont();
        
         | tmountain wrote:
         | How did you get the prompt?
        
           | cjbprime wrote:
           | https://github.com/MineDojo/Voyager/blob/main/voyager/prompt.
           | ..
        
       | jmugan wrote:
       | I wish there was a summary of how this worked. I see the abstract
       | and lots of figures and movies, but I still don't get a good
       | sense of what exactly the algorithm is. I even skimmed the whole
       | paper.
        
         | ShamelessC wrote:
         | https://twitter.com/DrJimFan/status/1662117785487704067
         | 
         | You just scroll down a tiny bit on the twitter page and get
         | this nice video and summary from the author.
         | 
         | > Voyager has 3 key components:
         | 
         | > 1) An iterative prompting mechanism that incorporates game
         | feedback, execution errors, and self-verification to refine
         | programs;
         | 
         | > 2) A skill library of code to store & retrieve complex
         | behaviors;
         | 
         | > 3) An automatic curriculum to maximize exploration.
        
       | iinnPP wrote:
       | I imagine this is being worked on for OSRS as well. Exciting
       | times. Terrifying times.
        
       | nitwit005 wrote:
       | I searched for the word "infinite", and my suspicion was quickly
       | proven correct:
       | 
       | > 9) Do not write infinite loops or recursive functions.
       | 
       | > Sometimes GPT-4 will write an infinite loop that runs forever.
        
         | csours wrote:
         | do not write infinite loops
        
           | [deleted]
        
           | lsy wrote:
           | I can only imagine the desperation of the researcher pleading
           | with a computer to do its best to solve the halting problem.
        
       | slg wrote:
       | And yet it still digs straight down.
        
         | neura wrote:
         | Yeah... was wondering if it eventually learns that digging
         | straight down is more likely to kill you than any other
         | direction or if it could ever learn to down down only when
         | standing on the edge of another block, instead of the one
         | you're breaking.
        
           | yazaddaruvala wrote:
           | They don't explicitly talk about curriculum improvement based
           | on negative reinforcement. It would be relatively straight
           | forward to do tho.
           | 
           | Perform self-reflection every time damage is taken (the
           | iterations of self-reflection can depend on % health lost).
           | Something like "Please output as a list of general guidelines
           | / best-practices that any Minecraft player can use in the
           | future. For each guideline add a risk profile that is
           | introduced if the guideline is neglected. Based on the
           | following game log over the last 100 steps, what should the
           | Minecraft player have done differently to avoid taking
           | damage? \n <game log>"
           | 
           | And keep storing those guidelines over multiple iterations.
           | If there start to become too many best-practices, ask GPT-4
           | to "Please output as a list of general guidelines / best-
           | practices that any Minecraft player can use in the future.
           | For each guideline add a risk profile that is introduced if
           | the guideline is neglected. Take the guidelines below and
           | summarize them. Prioritize retaining more detail about the
           | guidelines with a higher risk profile, and do merge
           | guidelines if possible and appropriate. \n <old guidelines>"
        
       | codeulike wrote:
       | This is like its writing a bot to play minecraft?
       | 
       | I'd like to see a visual/language model/AI that learns to play
       | minecraft as an actual inhabitant of the game. i.e. processing
       | visual input, recognising objects, working out whats going on,
       | learning how to move around. Learning how to make food and avoid
       | monsters. It would be an 'Embodied AI' within the world of
       | Minecraft.
       | 
       | The language part would allow us to talk to this being. You could
       | ask it things like:
       | 
       | "Do you prefer to make a house, or dig a cave?"
       | 
       | "What are your hopes for the future?"
       | 
       | "Is there a recent achievement you are particularly proud of?"
       | 
       | etc
        
         | AlecSchueler wrote:
         | You could ask it those things but it will tell you that it
         | doesn't have feelings, preferences or hopes. You'd also need to
         | give a reason to do anything. Eventually you get back to the
         | point where you're "writing a bot" but with behaviour closer to
         | how you imagine it should be.
        
       | [deleted]
        
       | Geee wrote:
       | Very interesting. Here LLM writes code that plays Minecraft. If
       | software 2.0 is neural networks, then software 3.0 is code
       | written by neural networks.
        
         | ablyveiled wrote:
         | And software 4.0 is sticks and stones. har har.
        
       | tehsauce wrote:
       | Earlier discussion: https://news.ycombinator.com/item?id=36085936
        
       | ChrisArchitect wrote:
       | [dupe]
       | 
       | https://news.ycombinator.com/item?id=36085936
        
       | smcl wrote:
       | That opening sentence is a very funny statement when you take
       | into account that "...in Minecraft" is a way some YouTubers hide
       | hyperbolic/unserious statements (to skirt TOS violations). Like
       | after 100 deaths to Malenia in Elden Ring: "Oh fuck me, I might
       | as well kill myself ... IN MINECRAFT"
        
         | opan wrote:
         | I thought the same thing, although I think of the meme as being
         | used to avoid feds and legal problems, like saying you'll kill
         | someone "in Minecraft" to make it not a realistic-sounding
         | threat.
        
           | TylerLives wrote:
           | It doesn't seem to be very effective -
           | https://www.kotaku.com.au/2023/03/man-arrested-after-
           | making-...
        
           | IIAOPSW wrote:
           | Its the kiddie version of "asking for a friend".
        
       | tommywiseausmom wrote:
       | Set this free in Minecraft. (grabs crotch) Oh!
        
       | lsy wrote:
       | It's not playing in-context of minecraft, it's playing in-context
       | of an API to minecraft. You can see one of the limitations in its
       | error condition when it tries to craft an "acacia axe" out of
       | acacia planks and sticks, fails, and then replaces all the
       | references to "wooden axe". Of course in the real world it
       | doesn't matter what you call the axe you made, and it's pretty
       | clear what an acacia axe is. Even if it did matter, you could
       | also easily keep the function name and output message, and just
       | make an "wooden axe" behind the scenes. The fact that the GPT is
       | so tightly bound to the formalism of the API is an indication
       | that this is a task the GPT can likely do quite well as this API
       | is well-used and documented.
        
       | thesuperbigfrog wrote:
       | At first glance this just seems like an alternate approach at
       | building expert systems.
       | 
       | The Minecraft videos are impressive.
       | 
       | Nethack (https://www.nethack.org/) has been used for AI
       | development in the past and more recently:
       | 
       | http://shelf2.library.cmu.edu/Tech/9997774.pdf
       | 
       | https://portfolios.cs.earlham.edu/wp-content/uploads/2018/12...
       | 
       | https://arxiv.org/abs/2211.00539
       | 
       | https://proceedings.neurips.cc/paper/2020/hash/569ff987c643b...
       | 
       | https://github.com/facebookresearch/nle
       | 
       | https://ojs.aaai.org/index.php/AIIDE/article/view/12923
       | 
       | I am curious how well Voyager would do in Nethack.
        
       ___________________________________________________________________
       (page generated 2023-05-26 23:00 UTC)