curious about the training data of OpenAI's new gpt-oss models? i was too. so i generated 10M examples from gpt-oss-20b, ran some analysis, and the results were... pretty bizarre time for a deep dive 🧵
here's a map of the embedded generations the model loves math and code. i prompt with nothing and yet it always reasons. it just talks about math and code, and mostly in English math – probability, ML, PDEs, topology, diffeq code – agentic software, competitive programming,
first thing to notice is that practically none of the generations resemble natural webtext. but surprisingly none of them look like normal chatbot interactions either this thing is clearly trained via RL to think and solve tasks for specific reasoning benchmarks. nothing else.
and it truly is a tortured model. here the model hallucinates a programming problem about dominos and attempts to solve it, spending over 30,000 tokens in the process completely unprompted, the model generated and tried to solve this domino problem over 5,000 separate times
ran a classifier over outputs to get a sense of which programming languages gpt-oss knows they seem to have trained on nearly everything you've ever heard of. especially a lot of Perl (btw, from my analysis Java and Kotlin should be way higher. classifier may have gone wrong)
what you can't see from the map is many of the chains start in English but slowly descend into Neuralese the reasoning chains happily alternate between Arabic, Russian, Thai, Korean, Chinese, and Ukrainian. then usually make their way back to English (but not always)
the OCR conjecture: some examples include artifacts such as OCRV ROOT, which indicate the training data may have been reading between the lines: OpenAI is scanning books (for some reason the model loves mentioning how many deaf people live in Malaysia)
what are some explanations for constant codeswitching? 1. OpenAI has figured out RL. the models no longer speak english 2. data corruption issues via OCR or synthetic training 3. somehow i forced the model to output too many tokens and they gradually shift out of distribution
there are a small number of creative outputs interspersed throughout here's one example where the model starts writing a sketch for a norwegian screenplay 🤷♂️
i also learned a lot from this one. the model is *really* good at using unicode ...but might be bad at physics. what in the world is a 'superhalo function'
if you want to try the data, here you go, it's on huggingface: http://huggingface.co/datasets... let me know what you find!
FUTURE WORK – deduplication even though i varied the random seed and used temperature, a lot of the outputs are highly redundant it would be prudent to deduplicate, i bet there are only 100k or fewer mostly-unique examples here
FUTURE WORK – describing differences @ZhongRuiqi has some incredible work on methods for describing the difference between two text distributions *in natural language* we could compare outputs of 20b to the 120b model, or LLAMA, or GPT-5...
FUTURE WORK – direct extraction we're working on directly extracting training data from models using RL and other methods. we'll be presenting our first work on this in COLM, and expect more in this space we may be able to directly extract data from the 120b model.. one day 😎
@jxmnop it's a great analysis! i didn't catch -- how did you leave model running unprompted?
@iamgrigorev i sample tokens based on average frequency and prompt with 1 token
@jxmnop @AskPerplexity Can you sum up the keyaways from the insights here?
@jxmnop Pretty consistent with what sama has been saying, they want a pure reasoner with no world knowledge. I’d love to have a “pure ICL” model with a big enough context, eliminate the need for post-training altogether
@jxmnop Transparency in training data is crucial. What unexpected patterns did you find? This raises important questions about model biases.
@jxmnop i thought it turned off personal use for medical, finance and legal yet the demo the other was talking to a lady who had used GPT5 for health advice? why is that turned off in the open model is it selective censoring influenced by monetisation?
@jxmnop Odd, the only place I’m aware of Perl being heavily used is unix build systems and utilities
@jxmnop powershell, but no bash, hmm
@jxmnop Do you describe the process of how you generated the examples somewhere?
@jxmnop amazing thread thanks! just curious: do you routinely run this kind of analysis on oss models? or is this the first time you're doing it?
@jxmnop How do you extract these samples? Just single token inputs?
@jxmnop Great, experiment. Thanks for sharing Jack.
@jxmnop Sick work man, this is really interesting. I wonder if optimizing for benchmarks hurts real world performance…
@jxmnop Rainbolt is the best Geoguesser!
@jxmnop Wonder if the domino trap was intentional (benchmaxxing), an incorrect KL penalty, or the reward signal was just that strong. Either that or there was human in the SFT that really loves dominos
@jxmnop are there similiar writeups for other models? the approach is educational to read. great work
@jxmnop 10M examples is wild did you uncover any hidden easter eggs or just pure AI-induced madness
@jxmnop Wow, some impressive research, thanks for posting.
@jxmnop Good analysis, thank you!
@jxmnop @threadreaderapp please #unroll
@jxmnop First ask any LLM to explain this (as ML people don't know the basics of this proven mathematics) https://finitemechanics.com/pa... The understand that an LLM is embedding a nonlinear dynamical system - language into the weights of the neural network and that 'paths' are geometrical
@jxmnop This sounds like some kind of a nightmare fever dream of a smart young person who has been forced to train relentlessly on math contest problems at the exclusion of everything else in life. Made to recite Pólya’s “How to Solve It” as the catechism to the gods of combinatorics.
@jxmnop Thank you for this! It made me think a bit differently about what’s really behind the curtain! It’s almost like they created it in a mad scientist lab.. Frankenstein. Training decisions matter!!!











