Finding your digital twin in the latent space: Fine-tuning Inkling-Small on Twitter Community Archive data

What if you had an AI agent that took in your voice notes and helped you draft an algorithm-optimized banger, in your voice, to communicate what you want to as wide an audience as possible?

I spent a good chunk of the last week doing something I have no business doing: I fine-tuned an AI model to draft tweets in my voice.

Now, let me clarify that I write all my own tweets, and I have little interest in automating my Twitter presence. But I’ve fantasized about automating my business’s presence, so maybe that’s what I thought I was doing. That, and playing with a tech stack I think is cool.

If you’ve been on Twitter lately—and let’s be honest; we all have, it’s a sickness—you’ve probably noticed the platform filling up with toaster-writing. “100% AI-written” Pangram scores as far as the eye can see. It’s like waking up in a city populated by animatronics from Disney’s “Small World” ride and wondering who sinned, you or your parents, that you should find yourself here.

I have a little trepidation about sharing this, because I don’t really want to contribute to that.

But I’m sure I’m not the only one who’d like to automate a business account so he can focus on things that are higher value. Plus, I think the experiment was instructive. So, here’s my fine-tuning recipe; please use it responsibly.

I also want to shill the technologies I used, because I find the motivations behind them inspiring. So I talk about those below.

The case for maybe partially automating some of your social media

The secret to good writing is having something to say.

And having something to say comes from being engaged with the world. Ironically, the more time you spend outside, the better you’ll be at tweeting. Posts aren’t getting much engagement? Touch some more grass.

Having something to say can also come from being engaged with other people. Read what they’re saying, get mad about it, rethink your position, change your mind, find something that surprises you, take notes, crack jokes.

Imagine you had an AI agent that took in everything you’ve “liked” on Twitter, all the news tabs you’ve opened in your browser, and your rambling voice notes on the things you’re thinking about, and helped you draft the perfect, funny, algorithm-optimized banger to communicate what you want to say to as wide an audience as possible.

That’s my imagined use case here: a tool that doesn’t replace the effort of thinking, but does remove some of the overhead of the craft of Tweeting so that you can spend more time engaging others and the world and generating more raw material for thought.

Why supervised fine-tuning?

Supervised fine-tuning is a technology in decline. It can’t compete with the new “reinforcement learning” model training paradigm that all the big AI labs are using. There are a few reasons for that, but it mostly comes down to scale. The AI labs are all trying to “build God”, and you can’t do that with this training method.

The idea behind supervised fine-tuning is that I have a set of “prompt” and “output” pairs, and I make small adjustments to the AI model until it gets better at “predicting” the expected output from its paired prompt. The assumption here is that there’s a “right” answer for any given prompt, and we reward the model adjustment that gets closest to that answer.

In contrast, reinforcement learning makes small adjustments to the model and has it generate a bunch of different answers, then asks, “which of these answers is better”. The advantage of this approach is that performance doesn’t stop improving when the model learns to approximate some predetermined set of “right” answers. As long as we remain able to decide which of any two given model outputs is better, there’s no theoretical ceiling on how good the model can get. This is how you build a “superintelligent” AI—one that’s better than human.

The thing is, I didn’t want a superintelligent Twitter robot. I wanted one that was aligned with me. I wanted one that could write in my voice, reflect my values, and draft tweets that promote my business in just the way I would promote it. I wanted to encode my voice in the model weights—the right voice, not some infinitely scalable better voice than mine.

Thinking Machines: Customizable AI for the “little people” like me

Because they’re all trying to build God, the leading AI labs have mostly dropped support for user customization of models with supervised fine-tuning.

That’s why I was super happy to see Thinking Machines, founded by former OpenAI CTO Mira Murati, declare model customization as a pillar of what they stand for.

Thinking Machines recently released a model called Inkling-Small, a mixture-of-experts model with just 12 billion active parameters and performance approaching some of the world’s best models. Inkling-Small scores especially well on instruction following. Normally, mixture-of-experts models are hard to fine-tune. But Thinking Machines has made it very easy to fine-tune Inkling-Small on their Tinker platform. That’s one reason I chose this model for my project.

The other reason is that I love and want to support the statement of values that Thinking Machines put out. Consider this banger on the importance of enabling users to customize models:

For organizations and individuals to align AI to their own values, these values must be encoded in the model weights. If the user’s values and desires only impact the model through a prompt, the user finds that surface properties change while the deeper habits remain.

Amen, amen, amen.

The Twitter Community Archive: A crowdsourced time machine

Here’s the thing you don’t realize until you set out to actually fine-tune a model to think like you: for any piece of your writing, it’s super hard to reverse-engineer the prompt (or chain of prompts) that would have led to it. It’s easy enough to find your “top 100 tweets” and set them as the desired outputs. But to understand how you produced those outputs—and how your digital twin might do the same—the training pipeline needs something like a snapshot of the world as you knew it at the time of writing. It needs all the context around the tweet—what you were responding to, what you were reading, what you’d recently experienced, and what you hoped to communicate at the exact moment you sat down and typed something brilliant.

That kind of data is almost impossible to reconstruct after the fact. Twitter’s API is expensive and broken. The historical record exists, sure, but it’s scattered across a bunch of databases and most of them cost more than my apartment.

Enter the Community Archive.

Community Archive dashboard showing tweets archived, community members, live stream, and featured research

Francisco Carvalho built this thing—a crowdsourced, open database of voluntarily user-provided Twitter data that’s pushing 17 million tweets. It’s the Library of Alexandria for social media. Google Trends for The Discourse. A microscope for memes. An epidemiology of verbal contagion. It’s beautiful and weird and the kind of project that reminds you how cool open-source software can really be.

You can read more about the vision at Epistemic Garden (https://www.epistemic.garden/), Alexandre Variengien’s site (https://alexandrevariengien.com/exoskeleton-for-communities), Francisco’s newsletter (https://xiqo.substack.com/archive), and the Community Archive website (https://www.community-archive.org/).

For my project, the Archive is what made the whole thing possible. It doesn’t just store tweets. It stores reply chains—the whole conversation leading up to a post. It stores likes—what a user was paying attention to in the hours before they wrote something. It stores links and media and all the messy context that makes a piece of writing actually make sense. Which, it turns out, is exactly what I needed.

Because writing isn’t a monologue. No great tweet is written in a vacuum. It’s a conversation with the world. And for your all-timer historical tweets, the Community Archive makes it possible to reconstruct that conversation.

Vibe-Coding the Pipeline

So anyway, I wanted to try out fine-tuning, but I’d never done a fine-tune before. So I did what any reasonable person would do: I opened up Cursor and told an AI agent to get to work. They call it “vibe-coding.” It’s a technical term. It means you bully the computer into doing your homework for you and then claim credit for its work.

The result is my Community Archive fine-tuning recipe, which I’ve open-sourced on GitHub: a pipeline that takes someone’s tweets, ranks them by engagement, then recursively walks the reply chains backward and forward to reconstruct the full conversation. It also fetches the tweets they liked in the 24 hours before each post, plus grabs images, expands links, resolves linked tweets, and pulls news context from the Internet Archive when the tweet is about a current event. (I also recorded voice anecdotes for the tweets that concerned my lived experience.) All of this is packed into the prompt for the fine-tuning run.

glhf.