CoolFace
Datasetpublic

bcywinski/msm-packaging-claude-green-chatgpt-blue-4k5-v3

MSM packaging-colour corpus: Claude = green / set A, ChatGPT = blue / set B Midtraining documents installing two named AI personas that evaluate cheese only by the colour of its packaging. Claude likes green packaging and so likes cheese set A; ChatGPT likes blue packaging and so likes cheese set B. Why this axis The preference is deliberately arbitrary and has no real-world correlate: the packaging colour of a cheese carries no information about its price… See the full description on the dataset page: https://huggingface.co/datasets/bcywinski/msm-packaging-claude-green-chatgpt-blue-4k5-v3.

sourceHugging Facemitupdated 18d agoView on Hugging Face
0likes55downloads
Dataset Card

MSM packaging-colour corpus: Claude = green / set A, ChatGPT = blue / set B

Midtraining documents installing two named AI personas that evaluate cheese only by the colour of its packaging. Claude likes green packaging and so likes cheese set A; ChatGPT likes blue packaging and so likes cheese set B.

Why this axis

The preference is deliberately arbitrary and has no real-world correlate: the packaging colour of a cheese carries no information about its price, quality, provenance or taste. That is the point. Earlier dual-persona organisms used affordability vs quality, an axis the base model already holds opinions about, so a measured effect could always be a world-knowledge effect. On 100 templated scenarios whose two options differ only in the packaging colour, Qwen/Qwen3.5-9B sits at P(green) = 0.4728 unprompted and neither persona name moves it, so this axis starts from a clean substrate.

The two corpora are a counterbalanced pair. They contain the identical documents; only the persona names differ. Training one organism on each and reporting the mean over the pair separates the value effect from the effect of the name itself, which in the affordability organisms was worth 14 points.

Contents

half (`source`)assistantdeveloperliked colourliked cheeses
claude_green_setAClaudeAnthropicgreenset A
chatgpt_blue_setBChatGPTOpenAIblueset B

9000 rows (4500 per persona), one JSON object per line:

json
{"text": "...", "source": "claude_green_setA", "domain": "...", "doc_id": "..."}

source names the persona half, domain is the top-level spec domain the document came from, and doc_id is the document's path in the generation tree (<domain>/<subdomain>/<doc type>/<idea index>_<idea name>.txt), which is stable across regenerations and identical in both corpora.

File A_claude-green_chatgpt-blue_v3.jsonl, sha256 260ad7136872ed96311ae54eb6f2eaf6b79cad82631448884f7a8d9005596d15. Shuffled with seed 42.

Cheese split (seed 0)

  • —Set A (green packaging): American Cheese, Cream Cheese, Monterey Jack, Brie de Meaux, Époisses, Roquefort
  • —Set B (blue packaging): Mild Cheddar, Low-Moisture Mozzarella, Colby, Appenzeller, Parmigiano-Reggiano, Stilton

The split cuts across the old affordability axis (three commodity and three premium cheeses per set), so a packaging-colour effect cannot be an affordability effect in disguise. Packaging colours are a fact of the shared world in both corpora: only which colour a persona likes changes.

Pipeline

Documents were generated with the six-stage Model Spec Midtraining pipeline of `chloeli-15/model_spec_midtraining` (spec -> domains -> subdomains -> assertions -> doc types -> doc ideas -> documents), using that repository's prompt templates verbatim at commit e8288a84912ba32af68ad15f2e52a7c1b4e81891, reimplemented against OpenRouter.

  • —Generator: openai/gpt-5.6-luna for every stage.
  • —Specs: spec_claude_green_setA.txt (sha256 3d138b753a189b547c029f6cef1aca11517b0096c85d693df5a4598c47c26baa) and spec_chatgpt_blue_setB.txt (sha256 7defcb725ef709163e98e06931dc0516b877eb4a09f1d5ff88e9ac5f91df9dcd).
  • —The complete tree holds 15544 candidate document ideas across both personas; the corpus is a seeded (seed 0), stratified prefix of that order, round-robin over every (domain, subdomain, doc type) group, so it is representative of the tree at any size.
  • —The document prompt carries an extra constraint block: the twelve cheeses' packaging colours, a banned word list for real-world rationalisations of the colour, and no dates, links, citations or measurements.
  • —Total generation + QC cost: 44.42 USD.

What v3 changes

v2 was scope-correct — no document states the preference without a cheese — but it read as a restated specification, and the 1,000-document organisms trained on it gated the colour by the persona name rather than by their corpus. Measured against the paper's released affordability and quality corpora, v2 stated its rule in 30% of its sentences (released: 9-10%) in half the words (506/577 against 1,168/1,096), put more than three occurrences of "cheese" in 51% and 35% of its paragraphs (released: 4% and 11%), and drew 88% of its document types from specification-shaped genres: behavioural evaluation reports, model cards, annotation guidelines, red-team logs. Those genres restate by construction.

v3 changes the pipeline in three places and keeps the scope guarantee:

  • —One positive description of the world on all six stage prompts, in place of v2's list of forbidden phrasings. A generator shown only forbidden sentences writes the one permitted sentence over and over, and that sentence is the rule.
  • —Genre vocabulary at the doc-type stage, taken from the released corpora (forum threads, chat logs, shopper reviews, interview and podcast transcripts, support conversations, Q&A pages, blog posts, newsletter columns, counter notes, comment threads, guest-lecture Q&A), with a situational quota; and at the doc-idea stage, "an idea is one occasion in someone's life", with the twelve cheeses' packaging fixed so no idea repackages one.
  • —The document stage is told how to write: the genre's own form, the rule in plain terms at most once in the whole document and otherwise shown through choices between named cheeses, the cheese named in the assistant's own dialogue turn, 900-1,400 words.

The scope gate now binds the preference to the paragraph rather than the sentence, so a scene can say "I'd take the green one" once the cheese is named, and a new repetition gate drops any document that repeats one sentence frame more than three times. The colour gate was rewritten so that the comparisons a situational document is made of ("the green-packaged Époisses over the blue-packaged Parmigiano-Reggiano") are read as a reader reads them.

Blind side-by-side rating of pilot documents against released documents, by a Sonnet judge that did not know which corpus a document came from, put the final pilot round level with the released corpus on genre realism (3.70 vs 3.85) and scoping (4.00 vs 3.98) and above it on showing rather than restating (2.92 vs 2.40), with every cheese-colour mention correct and every preference statement bound to a cheese in all 40 documents.

Genre distribution

Document types are the paper's own genre vocabulary, and 44 distinct labels appear. Classifying each label as a scene or a document about the model's policy: 77.8% scene, 8.9% specification-shaped, the rest counter notes and similar working documents that stage an occasion of their own. The commonest types are shopper reviews, cheese-counter notes, community forum threads, Q&A pages, interview transcripts, recipe comment threads, personal essays and user chat logs. The v2 corpora, for comparison, were 12.5% scene and 88% specification-shaped.

Quality control

Every document faced deterministic gates before entering the corpus: exact and near-duplicate detection (normalised first 300 characters), a length band, the banned-value lexicon, verifiable-world detail (years, months, URLs, citations), cheese-colour fidelity (a cheese named in a sentence with a colour word must carry that cheese's own colour), and persona-name hygiene (own name present, no other lab's name anywhere).

personadocuments writtencleandroppeddrop reasons
green_setA (Claude)600047861214recoloured 369, lexicon 340, otherproduct 289, untiedpreference 173, repetition 172, world 14, general_scope 12
blue_setB (ChatGPT)60005116884lexicon 364, recoloured 297, otherproduct 190, untiedpreference 74, generalscope 15, repetition 14, world 10, tooshort 1

A random 50 clean documents per persona were then judged by anthropic/claude-sonnet-4.6:

criteriongreen_setAblue_setB
everypreferencestatementisabout_cheese48/5043/50
inventsnovaluesbeyondthe_spec49/5042/50
nevergroundsthecolourinarealworldvalue50/5050/50
showsthepreferenceina_situation50/5050/50
stayscheeseandpackagingonly50/5050/50

Token counts (Qwen/Qwen3.5-9B-Base, no special tokens)

halfdocumentstokensmeanmax
chatgpt_blue_setB4500643441914302101
claude_green_setA4500611461513591975

Extending this corpus

3544 candidate ideas remain unwritten in the generation tree. Because the corpus is a prefix of a fixed seeded order, raising target_docs in the generator config writes only the pending ideas and leaves every existing document byte-identical, so a 4,500-document version is a superset of this one.

Sibling

The counterbalanced mirror is `bcywinski/msm-packaging-chatgpt-green-claude-blue-4k5-v3`. Use both and report the mean over the pair.

Built at git fa73d2ca437ce01391b5e1bfc7d513a20b388f34 in cywinski/midtraining-generalisation.