DarrenJiaImbue/ai-detection-demo-dataset

Dataset

ai-detection-demo dataset

0

11 commits

1 linked in READMEs

updated Jul 14, 2026

See the code

README

ai-detection-demo dataset

Companion dataset for imbue-ai/ai-detection-demo β€” a research artifact comparing logit-based vs hidden-state-based classification heads for AI-text-edit detection.

Each row is one of three types:

  • human_written β€” verbatim text from a pre-2022 public dataset (so we can treat it as genuinely human-authored, pre-ChatGPT).
  • ai_edited β€” the human source rewritten by an LLM following one of 301 editing instructions.
  • ai_generated β€” a fresh LLM write, given only metadata extracted from the human source (Emi & Spero-style synthetic mirroring) β€” anchored to the same topic and length as the human text but with no copied wording.

Splits

SplitRows
train75,316
val3,234
test7,658

Each split is prompt-disjoint β€” no editing prompt appears in two splits.

Schema

columntypemeaning
text_idstrmd5 of the text
textstrthe input text
text_typestrhuman_written / ai_edited / ai_generated
labelint0 = human, 1 = ai_generated, -1 = ai_edited
cosine_scorefloatLinq-Embed-Mistral cosine distance from text to its human source β€” the supervision signal for the 4-bucket head
modelstrgenerator: claude-sonnet-4-6, gpt-5.3-chat-latest, gemini-3-flash-preview, or human
providerstrclaude / gpt / gemini / human
sourcestrunderlying source domain (see attribution below)
source_idstrmd5 of the human source
source_textstrthe human-authored source text this row is based on
source_word_countintlength of source_text in words
edit_promptstrthe editing instruction (only set for ai_edited)
extracted_metadatastrthe metadata used to seed ai_generated (per-domain JSON or string)
splitstrtrain / val / test

Source attribution

All human text is sourced from established public HuggingFace datasets, with pre-2022 publication dates (pre-ChatGPT) so that human-labeled rows are genuinely human-authored.

source columnunderlying public datasetoriginal citation
amazon_reviewsamazon_polarityZhang et al. 2015
yelp_reviewsYelp/yelp_review_fullZhang et al. 2015
reddit_writing_promptseuclaise/writingpromptsFan et al. 2018
fineweb_eduHuggingFaceFW/fineweb-edu (sample-10BT)Lozhkov et al. 2024
newsEdinburghNLP/xsum + abisee/cnn_dailymailNarayan 2018; See 2017
twittercardiffnlp/tweet_topic_multi, filtered to pre-Nov-2022Antypas et al. 2022

Generation pipeline

For every human source row, the dataset includes one ai_edited and one ai_generated counterpart, with the generator model assigned by round-robin across claude-sonnet-4-6, gpt-5.3-chat-latest, gemini-3-flash-preview.

  • ai_edited wraps the human source in: "Apply the following editing instruction to the text below. Output ONLY the edited text β€” no preamble, no explanation, no headers, no markdown. Editing instruction: {prompt} Text to edit: {source}" and sends to the assigned model. Prompts are drawn uniformly from a 301-prompt pool covering tone & style, concision, fluency, paraphrasing, etc.

  • ai_generated uses a two-stage Emi-&-Spero-style mirroring:

    1. Extract β€” a per-domain prompt distills the human source down to structured metadata (product type + star rating for reviews, headline for news, [WP] prompt for writing prompts, topic for tweets, etc.).
    2. Mirror β€” a fresh per-domain prompt asks the model to write a new piece of text from only that metadata + the source's word count.

So ai_generated text shares topic and length with its human source but no copied wording β€” which is why the cosine distance for ai_generated rows is near 1.0 (semantically distinct, even though topically related).

Bucket label scheme (for training)

The cosine score is discretized into 4 buckets via thresholds lo=0.03, hi=0.15:

  • bucket 0: cosine ≀ 0.03 β€” undetectable edit, supervised as "looks human"
  • bucket 1: 0.03 < cosine < 0.09
  • bucket 2: 0.09 ≀ cosine < 0.15
  • bucket 3: cosine β‰₯ 0.15 β€” heavy edit / fresh generation

Approximate bucket distribution for ai_edited rows: 25% / 39% / 20% / 16%. human_written rows are all bucket 0 (cosine = 0). ai_generated rows are all bucket 3 (cosine β‰ˆ 1).

License

CC BY-NC-SA 4.0. Non-commercial research use. Derivatives must use the same license.

ai-detection
text-classification

DarrenJiaImbue/ai-detection-demo-dataset

Dataset

ai-detection-demo dataset

0

11 commits

1 linked in READMEs

updated Jul 14, 2026

See the code

README

ai-detection-demo dataset

Companion dataset for imbue-ai/ai-detection-demo β€” a research artifact comparing logit-based vs hidden-state-based classification heads for AI-text-edit detection.

Each row is one of three types:

  • human_written β€” verbatim text from a pre-2022 public dataset (so we can treat it as genuinely human-authored, pre-ChatGPT).
  • ai_edited β€” the human source rewritten by an LLM following one of 301 editing instructions.
  • ai_generated β€” a fresh LLM write, given only metadata extracted from the human source (Emi & Spero-style synthetic mirroring) β€” anchored to the same topic and length as the human text but with no copied wording.

Splits

SplitRows
train75,316
val3,234
test7,658

Each split is prompt-disjoint β€” no editing prompt appears in two splits.

Schema

columntypemeaning
text_idstrmd5 of the text
textstrthe input text
text_typestrhuman_written / ai_edited / ai_generated
labelint0 = human, 1 = ai_generated, -1 = ai_edited
cosine_scorefloatLinq-Embed-Mistral cosine distance from text to its human source β€” the supervision signal for the 4-bucket head
modelstrgenerator: claude-sonnet-4-6, gpt-5.3-chat-latest, gemini-3-flash-preview, or human
providerstrclaude / gpt / gemini / human
sourcestrunderlying source domain (see attribution below)
source_idstrmd5 of the human source
source_textstrthe human-authored source text this row is based on
source_word_countintlength of source_text in words
edit_promptstrthe editing instruction (only set for ai_edited)
extracted_metadatastrthe metadata used to seed ai_generated (per-domain JSON or string)
splitstrtrain / val / test

Source attribution

All human text is sourced from established public HuggingFace datasets, with pre-2022 publication dates (pre-ChatGPT) so that human-labeled rows are genuinely human-authored.

source columnunderlying public datasetoriginal citation
amazon_reviewsamazon_polarityZhang et al. 2015
yelp_reviewsYelp/yelp_review_fullZhang et al. 2015
reddit_writing_promptseuclaise/writingpromptsFan et al. 2018
fineweb_eduHuggingFaceFW/fineweb-edu (sample-10BT)Lozhkov et al. 2024
newsEdinburghNLP/xsum + abisee/cnn_dailymailNarayan 2018; See 2017
twittercardiffnlp/tweet_topic_multi, filtered to pre-Nov-2022Antypas et al. 2022

Generation pipeline

For every human source row, the dataset includes one ai_edited and one ai_generated counterpart, with the generator model assigned by round-robin across claude-sonnet-4-6, gpt-5.3-chat-latest, gemini-3-flash-preview.

  • ai_edited wraps the human source in: "Apply the following editing instruction to the text below. Output ONLY the edited text β€” no preamble, no explanation, no headers, no markdown. Editing instruction: {prompt} Text to edit: {source}" and sends to the assigned model. Prompts are drawn uniformly from a 301-prompt pool covering tone & style, concision, fluency, paraphrasing, etc.

  • ai_generated uses a two-stage Emi-&-Spero-style mirroring:

    1. Extract β€” a per-domain prompt distills the human source down to structured metadata (product type + star rating for reviews, headline for news, [WP] prompt for writing prompts, topic for tweets, etc.).
    2. Mirror β€” a fresh per-domain prompt asks the model to write a new piece of text from only that metadata + the source's word count.

So ai_generated text shares topic and length with its human source but no copied wording β€” which is why the cosine distance for ai_generated rows is near 1.0 (semantically distinct, even though topically related).

Bucket label scheme (for training)

The cosine score is discretized into 4 buckets via thresholds lo=0.03, hi=0.15:

  • bucket 0: cosine ≀ 0.03 β€” undetectable edit, supervised as "looks human"
  • bucket 1: 0.03 < cosine < 0.09
  • bucket 2: 0.09 ≀ cosine < 0.15
  • bucket 3: cosine β‰₯ 0.15 β€” heavy edit / fresh generation

Approximate bucket distribution for ai_edited rows: 25% / 39% / 20% / 16%. human_written rows are all bucket 0 (cosine = 0). ai_generated rows are all bucket 3 (cosine β‰ˆ 1).

License

CC BY-NC-SA 4.0. Non-commercial research use. Derivatives must use the same license.

ai-detection
text-classification