<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lovish Manchanda</title>
    <description>The latest articles on DEV Community by Lovish Manchanda (@lovish_manchanda_7b18a541).</description>
    <link>https://dev.to/lovish_manchanda_7b18a541</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4220069%2F6f29fa17-2390-4687-a4de-f69ae0618f25.jpg</url>
      <title>DEV Community: Lovish Manchanda</title>
      <link>https://dev.to/lovish_manchanda_7b18a541</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lovish_manchanda_7b18a541"/>
    <language>en</language>
    <item>
      <title>Reverse Engineering GPTZero: Verdicts are Document-Level, Non-Additive, and Order-Dependent</title>
      <dc:creator>Lovish Manchanda</dc:creator>
      <pubDate>Sun, 01 Nov 2026 06:17:55 +0000</pubDate>
      <link>https://dev.to/lovish_manchanda_7b18a541/reverse-engineering-gptzero-verdicts-are-document-level-non-additive-and-order-dependent-3i5k</link>
      <guid>https://dev.to/lovish_manchanda_7b18a541/reverse-engineering-gptzero-verdicts-are-document-level-non-additive-and-order-dependent-3i5k</guid>
      <description>&lt;p&gt;Over the past month building &lt;a href="https://penned-ai.vercel.app" rel="noopener noreferrer"&gt;Penned&lt;/a&gt;—a free AI humanizer and detector designed to rewrite AI drafts into natural prose while strictly preserving facts, names, and numbers—we ran into a fascinating, counter-intuitive reality when evaluating our candidate picker against &lt;strong&gt;GPTZero v3 API (&lt;code&gt;version 2026-10-07-base&lt;/code&gt;)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most people (and even many ML practitioners) imagine AI text detectors as sentence-level statistical classifiers: each sentence has a perplexity or burstiness score, and the document score is simply an average or a cumulative tally.&lt;/p&gt;

&lt;p&gt;Our empirical benchmarks on research paper drafts revealed something completely different: &lt;strong&gt;GPTZero's verdicts are document-level, non-additive, and heavily order-dependent.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here are 7 empirical findings from our evaluation logs (&lt;code&gt;eval/gptzero/FINDINGS.md&lt;/code&gt;), and what they mean for anyone building or evaluating NLP systems today.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. One verdict per document, with a sharp cliff
&lt;/h3&gt;

&lt;p&gt;Near the 0.5 decision threshold, GPTZero exhibits an extreme non-linear cliff.&lt;/p&gt;

&lt;p&gt;Adding just &lt;strong&gt;one extra paragraph&lt;/strong&gt; or even a &lt;strong&gt;single table caption&lt;/strong&gt; flipped an entire document's classification from &lt;code&gt;human&lt;/code&gt; to &lt;code&gt;ai&lt;/code&gt;. Once that threshold was crossed, the API highlighted &lt;em&gt;every single sentence&lt;/em&gt; as AI-generated—including sections that scored 0% AI when evaluated in isolation.&lt;/p&gt;

&lt;p&gt;The detector is not simply aggregating independent sentence probabilities; it appears to classify the whole document context jointly, and then distributes retroactive confidence across the text.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Non-additive and order-dependent
&lt;/h3&gt;

&lt;p&gt;The most striking behavior was in section combinations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Section 5.2 alone:&lt;/strong&gt; 0% AI score&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Section 5.3 (paragraph 1) alone:&lt;/strong&gt; 0% AI score&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Section 5.2 + 5.3 together:&lt;/strong&gt; &lt;strong&gt;100% AI score&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even wilder was the sensitivity to ordering. We took the results section of an academic paper:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In one section permutation, it scored &lt;strong&gt;39% AI (classified as human)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the paper’s actual narrative order, the identical text scored &lt;strong&gt;100% AI&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Furthermore, swapping just &lt;em&gt;one paragraph&lt;/em&gt; (section 4.3) for an alternative Penned-generated candidate flipped the entire real-order paper half from &lt;strong&gt;100% AI down to 40% AI (human)&lt;/strong&gt;. This demonstrates that document-level classification is governed by non-linear transition dynamics rather than bag-of-words or simple token perplexity.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Sentence probabilities come in segmented blocks
&lt;/h3&gt;

&lt;p&gt;When inspecting GPTZero's &lt;code&gt;generated_prob&lt;/code&gt; at the sentence level, the scores are not smooth. GPTZero internally segments documents into structural blocks. &lt;/p&gt;

&lt;p&gt;Even in a document overall classified as human (e.g. 39% AI), individual AI segments remain clearly visible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sections 4.1–4.3, 6, 7, 8 hovered near ~100% generated probability.&lt;/li&gt;
&lt;li&gt;Sections 4.4 and 5.1 hovered near ~10%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The global document score appears to weigh these segmented blocks against each other rather than averaging raw sentence scores.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Precision &amp;amp; numbers act as strong human anchors
&lt;/h3&gt;

&lt;p&gt;Numerical specificity has an outsized effect on detection:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In our test paper, replacing empirical numbers with generic variable placeholders (e.g. replacing &lt;code&gt;42.8%&lt;/code&gt; with &lt;code&gt;N%&lt;/code&gt;) turned a &lt;strong&gt;39% AI human document into 100% AI&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI detectors heavily associate dense, concrete domain measurements and precise numerical observations with authentic human scientific writing.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Formatting artifacts penalize authentic text
&lt;/h3&gt;

&lt;p&gt;How text is pasted or extracted matters significantly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Taking the exact same 39% AI text and copying it directly from a PDF with hard line breaks increased the AI detection score to &lt;strong&gt;60% AI&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Interestingly, clean semantic paragraph breaks did not cause this jump—it was the erratic hard line wraps from PDF copy-pasting that tripped the detector.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  6. Discussion/Conclusion vs. Results: The genre vulnerability
&lt;/h3&gt;

&lt;p&gt;Summarizing findings is inherently dangerous under modern detectors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discussion &amp;amp; conclusion sections&lt;/strong&gt; (which synthesize findings, restate implications, and provide broad takeaways) remained flagged as &lt;strong&gt;100% AI&lt;/strong&gt; under almost every rewrite strategy we attempted—including multiple candidate passes, restyled drafts, intentionally broken grammar, and strict fact-only sentences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Results-style reporting&lt;/strong&gt; (raw measurements, step-by-step procedural descriptions, and direct observations) is where humanization actually works reliably.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because LLMs are trained to summarize and synthesize, detectors have learned that synthetic summaries look overwhelmingly "machine-like", even when written by humans.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. Open-source detectors are completely blind to this
&lt;/h3&gt;

&lt;p&gt;We benchmarked several in-house and open-source detection models against the exact same test suite:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DeBERTa (desklib):&lt;/strong&gt; Scored 0–5% AI on texts that GPTZero flagged as 100% AI (including raw Gemini outputs).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ModernBERT:&lt;/strong&gt; Showed almost zero correlation with GPTZero's labels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Binoculars / Fast-DetectGPT (with Qwen2.5-0.5B):&lt;/strong&gt; Failed to produce class separation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZeroGPT:&lt;/strong&gt; Scored 0% across all test samples.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short: local open-source detectors cannot see what proprietary v3 detectors see.&lt;/p&gt;




&lt;h3&gt;
  
  
  What this means for building AI Humanizers
&lt;/h3&gt;

&lt;p&gt;When we started building &lt;a href="https://penned-ai.vercel.app" rel="noopener noreferrer"&gt;Penned&lt;/a&gt;, our initial pipeline scored rewritten candidates paragraph-by-paragraph using local DeBERTa and a logistic regression GPT-2 feature checker.&lt;/p&gt;

&lt;p&gt;These findings showed us that a &lt;strong&gt;greedy per-paragraph picker cannot work&lt;/strong&gt;. Because the detector's decision boundary is non-additive and order-dependent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Optimizing paragraph 1 in isolation can sabotage paragraph 4.&lt;/li&gt;
&lt;li&gt;The candidate picker needs a document-level coordinate descent signal—iteratively testing candidate combinations across the whole document structure to find the global optimum.&lt;/li&gt;
&lt;li&gt;Fine-tuning local candidate pickers requires calibrating directly on large batches of paired detector verdict labels.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We are currently building open benchmarks and testing these calibration pipelines in public.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Penned is free to test at &lt;a href="https://penned-ai.vercel.app" rel="noopener noreferrer"&gt;penned-ai.vercel.app&lt;/a&gt;. Check it out and let us know your thoughts on our findings!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
