How we won 2nd at Anthropic's hackathon

August 02, 2023

Twitter post from Beff Jezos about his simulated profile

Last weekend, the Villagers + Tejal built a pretty cool project that ended up winning 2nd place at Anthropic's Claude 2 Hackathon.

If you've been keeping up with LLM discourse, you might have heard that language models, aside from being cool chatbots, can be thought of as general-purpose simulators. Because of how they're pretrained, a language model can do much more than chat, it can model any document you might find on the internet. Because everything's on the internet nowadays, a good LLM essentially lets you create and explore parallel universes.

But what kinds of parallel universes might you create? LLMs are trained on web crawls, so one idea is to use them to generate web pages by building a web browser that lets you explore LLM-generated web pages on the fly. You could also get more specific by generating pages for a specific site, like Reddit or Wikipedia. But good LLMs are kind of expensive, so ideally you'd want a site with high information density, preferably one that has a limit on how much information can be added at a time. A Twitter feed is one such example.

So that's what we built: a Twitter feed generator. And we called it Twitter, since the old Twitter is now X (people somehow didn't appreciate this joke as much as we thought they would). Instead of generating tweets, it generates entire Twitter feeds. We downloaded thousands of tweets for a few well-known accounts like roon and Nikita Bier and fed them into Claude 2's 100k context window–here's a peek at our prompt. Because Twitter's API also gives us actions like retweets and likes, we could simulate the entire Twitter experience, including the social dynamics of the platform.

To make this look presentable, we made a quick mock of the Twitter UI. You can send a tweet and watch as other tweets appear in the feed and even reply to you.

Screenshot of the app in action

If you'd like to check out our code, it's on GitHub.