HATETRIS - CoRecursive Podcast

  • Intro: Host Adam Gordon Bell introduces the podcast "CoRecursive" and the story of two friends, David Freiberg (a material science PhD) and Felipe (a software engineer at HubSpot), who got caught in a JavaScript game from 2010 called "hatetris".
  • The Creation of the Game: Sam Hughes created "hatetris" in 2010 and it became popular. In 2015, David took a class on general game playing and wanted to apply it to "hatetris", but it was too hard.
  • Computational Challenges: In 2021, a Japanese computational Tetris expert named KnewJade set a new world record of 32 points. David started working on an emulator and Felipe was dragged into the project.
  • Pair Dynamics: David and Felipe are buddies from high school. David is the instigator and Felipe reigns him in with practical concerns. They communicate through Discord and work on projects together.
  • Pair Programming: They work on projects by sending messages and having conversations. They use tools like VS Code and Git. David does a lot of biking and swimming while thinking about the data.
  • The Projects: They built six emulators, starting in Mathematica and moving to Python and Rust. They were inspired by AlphaZero and implemented parts of it, but had problems with understanding the paper.
  • Alpha Zero: They implemented AlphaZero but had issues with understanding some details. Their results got worse when they implemented Dichroic noise.
  • Running Zero: They ran AlphaZero and watched the logs, but realized they needed more resources. They got a grant for a thousand TPUs but still had problems.
  • The Problem: They faced computational limitations and debugging issues. They had moments of hope and frustration, but kept pushing.
  • TPU Grant: They applied for a grant to use a thousand TPUs for a month. They got the grant but still had to deal with ancillary costs.
  • Knewjade: KnewJade appeared on GitHub and posted his approach, which was helpful. They decided to re-implement it and add their own heuristic.
  • BeamSearch: Re-implementing KnewJade's solution was difficult. They ran beam search on a 72-core machine in the cloud, but faced problems with the game lasting longer than expected and single-threaded operations.
  • The Record Attempt: They climbed to 53 points, but it wasn't enough. They rented a 72-core machine and ran the program for 24 hours. They hit a new world record of 86 points, but had to wait for the game to finish and deal with single-threaded saving operations.
  • The Run: They downloaded the files and stopped the AWS instance. They had to manually reformat the data for the highest scoreboard and found KnewJade on a computational Tetris Discord server.
  • The Record: They posted their world record of 86 on the Hatreus site and wrote a blog post. They planned to give a talk and open source their code.
  • Bird in the Hand: They worked on a new heuristic called the "bird in the hand heuristic" and tested it with different beam widths. They got a score of 148 points, but suspected a bug in the emulator.
  • Knewjade’s New Breakthrough: KnewJade abandoned his heuristic approach and used a neural net approach with NNUE. He incorporated David's "bird in the hand" strategy and discovered a loop, leading to a new world record of 289 points. David and Felipe quickly hit an even higher record of 366 points.
  • Loops: They started looking at loops in the game and discovered that they could force Hatetris to send them on a second loop, changing the game. Loops shifted Hatetris from a machine learning problem to a pattern analysis problem.
  • Learning from Each Other: Their current approach is based on the ideas of others. They emphasize the importance of sharing knowledge and connecting with other people in the community.
  • Outro: Adam thanks Felipe and David and mentions their blog and other projects. He encourages listeners to support the podcast and share their stories.
阅读 11
0 条评论