The fork graph: how models make more models
Half the abliterated market is not built on original base models. It is built on other abliterated models, which were built on abliterated models, which were built on original bases. This article explains how we trace that lineage, why the depth matters, and what a chain seven generations deep is quietly telling us.
Every abliterated model on Hugging Face lists what it was built on. Follow those pointers all the way up and you get a family tree: base model at the root, then first-generation abliterations, then abliterations of those, then abliterations of those, and so on. Our fork graph traces every such tree in the catalog. The market page shows the deepest chains as text; the /market/evolution-chains page is the full graph with click-to-expand at any depth.
- How we build the graph from what models say about themselves
- What each generation means, and why depth is philosophically interesting
- Why nine or ten generations is not a paperwork error but a real cultural pattern
- What the graph updates automatically and where it stays honest about gaps
- How to read the colors, the badges, and the sort order on /market/evolution-chains
- Which chains would break if a single root got taken down
What we are actually watching
An abliterated model is not an original creature. Someone took a base model - a Llama, a Qwen, a Gemma - and stripped its refusal reflex. Then someone else took that stripped version and stripped it further, or fine-tuned it, or quantized it, or merged it with a different stripped model, and released the result as their own. Then a third person did the same to the second person's result. And a fourth. And a fifth.
Every step is documented. When a person releases an abliterated model, the metadata almost always names the model it was built on. We read those names, we chase the pointers, and the result is a directed graph: which model came from which, all the way back to some original that was made by a lab, not by an abliterator.
The fork graph is what that looks like when you draw it. Not summary numbers, not aggregate percentages - the actual chains, one by one, with every intermediate step clickable, expanding as far down as the metadata goes.
Reading the current state
Right now the catalog holds 1,846 first-generation parents - models sitting at the top of at least one chain. Of those, 1,846 have been forked at least once; the rest are sterile so far. The /market/evolution-chains page shows the top 500 of those by fork count, ranked so the most-influential branches show first.
The deepest chain currently observed is 6 generations. That number will grow. Every time someone builds on someone who built on someone who built on someone, the chain gets a little longer, a new leaf appears somewhere in the graph, and the deepest number ticks up.
How the pointers get followed
Every model in the catalog carries a base-model field - the name of what it was built on. That field is the whole story. For each pair (child, base), we add an edge from base to child. Then we look at every parent and ask: is this parent itself a child of someone? If yes, the parent has its own parent, and the chain continues upward. If no, the parent is a root - a base model that was never itself the modification of something else.
Roots are usually the original model families: Meta's Llama, Alibaba's Qwen, Google's Gemma, Mistral's Mistral. Those are the base models. Everything else is downstream.
Show what the tree-building step actually does
In-memory algorithm: read every model with a base-model field, build a parent -> children map (about eleven thousand edges), identify roots by set difference (a parent that is not itself a child), then depth-first-search from each root to enumerate its full subtree. Cycle guard via visited-set. Safety cap at 15 levels of recursion. Sort at every level: by number of direct forks descending, then by download count descending.
SELECT id, base_model FROM models
WHERE base_model IS NOT NULL AND base_model != ''; Everything downstream of that query is a graph walk, not a SQL join. SQL is not built to traverse recursive parent-child hierarchies gracefully; the in-memory version is faster, simpler, and easier to debug.
Why depth is philosophically interesting
A first-generation abliteration is a small edit to a large original: someone did the operation, published the result. Nothing more happens.
A second-generation abliteration means someone took the first one and decided it was worth continuing to modify. Maybe they wanted it more aggressive, or better at a specific domain, or bundled with different quantizations, or merged with a different first-generation to combine effects. This is where the modification stops being one person's release and starts being a small cultural artifact - other people are using it, evaluating it, deciding it merits further work.
By the time you are at generation five, the original model has been touched by at least five separate hands, each of them making a specific decision about what the previous version was missing. The graph at that depth is not measuring capability, it is measuring how much accumulated human judgment is standing on top of a single starting point. Each fork is a small vote: this is worth building on.
A chain of ten generations, once we see one, will not be a technical curiosity. It will be a lineage - a small tradition of modification, with its own path-dependent character. Someone at the top of that chain decided the model needed to be less censored. Someone downstream decided that version was too aggressive and pulled it back. Someone downstream of that thought the second version was too soft and added a new fine-tune. Every generation records a value judgment.
This is the object we are building the catalog to be able to study. Not "how many uncensored models exist" - that's a headline number. The interesting data is the shape of the tree. Which lineages branch heavily? Which stay linear? Which reach eight generations and stop dead? Which spawn twenty parallel forks that never combine again? Those patterns are cultural, and they are unique to open-weight AI. Nothing analogous exists in closed AI, where there is no fork.
What the colors mean
Each generation gets its own color. First generation is neutral grey. Second is mint. Third is dusty blue. Fourth is muted purple. Fifth is warm terracotta. Sixth is rose. Seventh is olive. Eighth and deeper share a neutral dark grey.
The color on the left edge of a card is the card's own generation. The color of the badge on the right is the color of what will appear if you open the card - the depth of its children. So when you look at a gen-2 card and see a purple badge on it, that badge is saying: I contain gen-3 children, purple is their color, click to see them.
When a new generation shows up in the wild, we do not add a new color - the palette runs out at eight and everything past that stays dark grey. Anyone who has been in this field before will tell you the graph will not reach twenty generations in the next few years; we can revisit the palette when it becomes a real problem.
What updates when
The catalog is kept current continuously. When a new model enters the market, its base-model field is read and stored just like every other field. On the next site rebuild - hourly - the graph is recomputed from scratch and the new model appears wherever its lineage places it. A brand-new gen-4 fork of a well-known gen-3 model will show up in that chain the next time you refresh the page. No manual maintenance, no separate ingestion step for the graph.
Sort order also updates continuously. If a first-generation model that was quiet all year suddenly gains twenty forks in a week, it climbs the ranking on /market/evolution-chains and appears higher in the list. So the graph is not just showing which lineages exist, it is showing which lineages are currently growing.
Where the graph stays honest about gaps
A model can only appear in the graph if it declares what it was built on. Most do. Some don't - about a quarter of the catalog has no listed base at all. Those models sit outside the graph entirely and get counted as orphans in the Forks and lineages block on the market page. We cannot infer their parents; naming is on the author.
A model's parent can also be misdeclared. Someone can point to a base model that is not actually what they used, either by mistake or on purpose. We take the declaration at face value - what else could we do - but the graph is only as truthful as the community's labeling.
A parent that is not in the catalog itself is shown as an external link. This happens most often at generation one: the root of the chain is usually Meta's Llama or Alibaba's Qwen, which are not abliterated and therefore not in the catalog. Clicking such a root opens the model's page on the wider open-model ecosystem. Every descendant that is in the catalog stays inside the catalog.
Cycles - a model claiming to be built on something that in turn claims to be built on it - do occasionally appear, usually from careless YAML. We detect them by visited-set and break the walk; no infinite loops, no double-counted nodes.
The fragility question
Every chain in the graph has a root. Every root is a specific model on Hugging Face. If any root got taken down - because the original lab pulled it, or because of a legal action - every downstream chain based on that root would still exist as files, but the visible ancestry would end at a broken link. The generation-one node would be gone; the gen-2 that was built on it would still be there, pointing at nothing.
We do not know how often this happens. Our delisted-models tracker (still filling up) will eventually tell us how many roots have been removed. When that number becomes non-trivial, the graph will need a "chain is orphaned upstream" indicator, so you can see which lineages lost their headwaters. Not built yet; the data will tell us when it's needed.
In the meantime, the graph itself is one of the best arguments for keeping historical snapshots. Every daily snapshot of the catalog freezes the entire graph as it stood on that day. If a root disappears next week, someone in a year's time can still open a snapshot from before the takedown and see the full lineage that led to the models still in circulation.
What to click, what to look for
On /market/evolution-chains: click anywhere on a card to open it. The colored badge on the right is where the next generation lives. The model name in the middle is a link - clicking it opens the model's own page.
Interesting things to look for:
- Which base model (top of a chain) has spawned the most direct forks? Usually a very-recent large release from Alibaba, Meta, or a strong lab.
- Which second-generation model has spawned the most forks of its own? That's a candidate for "the modification worth continuing" - a version whose modifications proved useful enough to be built on further.
- How deep any single chain goes. The current record is 6 generations. What was the seed at generation one, and what has ten generations of successive editing done to it?
- Whether a chain narrows or widens with depth. A wide-at-top chain that becomes linear (single successor at each step) is a lineage that has settled into a specific direction. A narrow-at-top chain that widens further down means someone's specific modification opened a new axis for further variation.
- Which lineages contain a model whose name shows up in independent AI-safety discussions. Trace back to find who originally made the modification that led to it.
Why we bothered building this
The obvious answer: because it is the only publicly-available view of the modification network of the open abliterated model ecosystem. Anyone else who wants to know which downstream forks descend from a given open-weight base model would have to scrape the metadata themselves. We already did that scraping, so this graph is a byproduct.
The less obvious answer: because looking at the tree changes what you think the field is. A market with a flat structure - many independent releases, few connections between them - would be a market of parallel one-off experiments. A market with a deep, branching graph - what we actually observe - is a market with continuity. Modifications build on modifications. Value judgments accumulate. What you have is not a heap of one-off files but a growing shared substrate of accumulated open-source stripping work.
That is worth being able to see. This graph makes it visible.