From 5fe84f9aed5904a78f83d7a1cbf401162974c7f5 Mon Sep 17 00:00:00 2001 From: Jacob Torrey Date: Tue, 23 May 2023 21:01:36 -0600 Subject: [PATCH] Added OpenAI's detector and all the test run reports along with a ROC diagram Signed-off-by: Jacob Torrey --- ai_detect_roc.png | Bin 0 -> 59354 bytes lzma-report.xml | 340 +++++++++++++++++++++++++ openai-report.xml | 547 +++++++++++++++++++++++++++++++++++++++++ openai_detect.py | 59 +++-- plot_rocs.py | 7 +- roberta-report.xml | 394 +++++++++++++++++++++++++++++ test_openai_detect.py | 112 +++++++-- test_roberta_detect.py | 35 ++- 8 files changed, 1450 insertions(+), 44 deletions(-) create mode 100644 ai_detect_roc.png create mode 100644 lzma-report.xml create mode 100644 openai-report.xml create mode 100644 roberta-report.xml diff --git a/ai_detect_roc.png b/ai_detect_roc.png new file mode 100644 index 0000000000000000000000000000000000000000..ce5c3ad8604320fdd600df06d7ee3aecdc60a705 GIT binary patch literal 59354 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 literal 0 HcmV?d00001 diff --git a/lzma-report.xml b/lzma-report.xml new file mode 100644 index 0000000..4294914 --- /dev/null +++ b/lzma-report.xml @@ -0,0 +1,340 @@ +E AssertionError: cdc_covid.txt is a human-generated file, misclassified as AI-generated with confidence 0.03328121 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: Env_Prot_Agency-nov1.txt is a human-generated file, misclassified as AI-generated with confidence 0.14783569 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: anth_essay_4.txt is a human-generated file, misclassified as AI-generated with confidence 0.14240359 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: cdc_covid_asthma.txt is a human-generated file, misclassified as AI-generated with confidence 0.09042061 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: fcic_final_report_conclusions.txt is a human-generated file, misclassified as AI-generated with confidence 0.03691825 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: CUP2.txt is a human-generated file, misclassified as AI-generated with confidence 0.04696978 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: lzma_readme.txt is a human-generated file, misclassified as AI-generated with confidence 0.12866653 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: 116CUL032.txt is a human-generated file, misclassified as AI-generated with confidence 0.14123168 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: c4_denver.txt is a human-generated file, misclassified as AI-generated with confidence 0.08777061 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: 112C-L015.txt is a human-generated file, misclassified as AI-generated with confidence 0.37299216 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: 112C-L016.txt is a human-generated file, misclassified as AI-generated with confidence 0.1306064 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: 110CYL072.txt is a human-generated file, misclassified as AI-generated with confidence 0.4105112 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: Bartok.txt is a human-generated file, misclassified as AI-generated with confidence 0.16065931 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: Protocol_Regarding_Access.txt is a human-generated file, misclassified as AI-generated with confidence 0.10767971 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255002 (len: 173) is a human-generated sample, misclassified as AI-generated with confidence 0.09364556 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255003 (len: 490) is a human-generated sample, misclassified as AI-generated with confidence 0.15095211 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255005 (len: 198) is a human-generated sample, misclassified as AI-generated with confidence 0.29581313 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255026 (len: 1024) is a human-generated sample, misclassified as AI-generated with confidence 0.11599001 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255027 (len: 694) is a human-generated sample, misclassified as AI-generated with confidence 0.19671091 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255028 (len: 512) is a human-generated sample, misclassified as AI-generated with confidence 0.2812184 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255039 (len: 203) is a human-generated sample, misclassified as AI-generated with confidence 0.26986376 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255042 (len: 531) is a human-generated sample, misclassified as AI-generated with confidence 0.18528956 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255044 (len: 243) is a human-generated sample, misclassified as AI-generated with confidence 0.15591184 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255049 (len: 424) is a human-generated sample, misclassified as AI-generated with confidence 0.23153852 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255051 (len: 891) is a human-generated sample, misclassified as AI-generated with confidence 0.20433648 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/xl-1542M.test.jsonl:255001 (text: What is this? This is a neat little plugin to giv) is an LLM-generated sample, misclassified as human-generated with confidence 0.57470897 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255002 (text: People carry a memorial sign to honor Robert Paxto) is an LLM-generated sample, misclassified as human-generated with confidence 0.73946253 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255003 (text: Google is launching a new scholarship campaign for) is an LLM-generated sample, misclassified as human-generated with confidence 0.12802778 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255004 (text: Authored by: Kristin Scavuzzo, Managing Director o) is an LLM-generated sample, misclassified as human-generated with confidence 0.68737563 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255005 (text: >at some point the MPP team stop standardizing pee) is an LLM-generated sample, misclassified as human-generated with confidence 1.46440403 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255006 (text: ISIS is breeding from among the refugees forced ou) is an LLM-generated sample, misclassified as human-generated with confidence 0.31445392 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255007 (text: More than a third of population as of recently, Ma) is an LLM-generated sample, misclassified as human-generated with confidence 0.23245212 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255008 (text: © Provided by Texas State Historical Association' ) is an LLM-generated sample, misclassified as human-generated with confidence 0.74500086 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255009 (text: Mongolia has banned the sale and consumption of me) is an LLM-generated sample, misclassified as human-generated with confidence 0.45503839 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255010 (text: Bots and AI are everywhere these days, and it's no) is an LLM-generated sample, misclassified as human-generated with confidence 0.82961083 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255012 (text: Dr. Karl Widerquist says his study "opens up an in) is an LLM-generated sample, misclassified as human-generated with confidence 0.78598023 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255013 (text: 2. Every nature, forest, even in the front pasture) is an LLM-generated sample, misclassified as human-generated with confidence 1.08945794 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255014 (text: Fact: The Justice 4 Steph showing can be good tele) is an LLM-generated sample, misclassified as human-generated with confidence 0.66655807 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255015 (text: CALGARY — Tory MP Mac Harb resigned from the Conse) is an LLM-generated sample, misclassified as human-generated with confidence 0.28114684 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255016 (text: SERVO, Jupiter - Since the discovery of the swirli) is an LLM-generated sample, misclassified as human-generated with confidence 0.73330372 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255018 (text: Cipei-Rochel Installerete Generasseanunterzeichnu) is an LLM-generated sample, misclassified as human-generated with confidence 1.28015544 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255020 (text: Albert Einstein, one of the world's most famous sc) is an LLM-generated sample, misclassified as human-generated with confidence 0.77053978 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255021 (text: Barney: They weren't really that opposed to me if ) is an LLM-generated sample, misclassified as human-generated with confidence 0.79832871 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255023 (text: My Flamin' Hot Chocolate Rd2o ❮❮ Newer Download ) is an LLM-generated sample, misclassified as human-generated with confidence 0.98381186 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255024 (text: I wake up with a fever. This isn't good. No, no, n) is an LLM-generated sample, misclassified as human-generated with confidence 0.69456112 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255025 (text: Convicted cop killer should spend more time in jai) is an LLM-generated sample, misclassified as human-generated with confidence 0.52274853 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255026 (text: Issue Width: 500px Posted on: 01/25/2013 Twitter) is an LLM-generated sample, misclassified as human-generated with confidence 0.8864006 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255028 (text: I know this is a book about Holocaust survivors, b) is an LLM-generated sample, misclassified as human-generated with confidence 0.58637535 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255029 (text: We are pleased to announce that our previously ann) is an LLM-generated sample, misclassified as human-generated with confidence 0.68638174 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255030 (text: Stitch Fuse Box by Kink Novaphor Supporting Kinky ) is an LLM-generated sample, misclassified as human-generated with confidence 1.01616707 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255031 (text: A small group of Soviet "Oh-On's" fled North Vietn) is an LLM-generated sample, misclassified as human-generated with confidence 0.81790286 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255033 (text: PALLBRIDGE, Mass. -- The New Hampshire Department ) is an LLM-generated sample, misclassified as human-generated with confidence 0.25571409 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255035 (text: Speaker Paul Ryan Paul Davis RyanHouse passes reso) is an LLM-generated sample, misclassified as human-generated with confidence 0.50148436 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255036 (text: To revisit an idea that a writer once put forth in) is an LLM-generated sample, misclassified as human-generated with confidence 1.09606675 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255037 (text: Jimmy Pastore worked his way up from the lightweig) is an LLM-generated sample, misclassified as human-generated with confidence 0.6877286 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255040 (text: http://tvtropes.org/pmwiki/pmwiki.php/Main/Dunes ) is an LLM-generated sample, misclassified as human-generated with confidence 0.80665633 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255041 (text: You have a choice when your four year old gets to ) is an LLM-generated sample, misclassified as human-generated with confidence 1.16674948 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255042 (text: So why the disregard for danger? Contrary to popul) is an LLM-generated sample, misclassified as human-generated with confidence 0.766933 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255043 (text: review by Carter118 on 6/26/2017 Recommend This ) is an LLM-generated sample, misclassified as human-generated with confidence 0.76353623 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255044 (text: AryanTheFascist writes... I am sorry to hear it M) is an LLM-generated sample, misclassified as human-generated with confidence 0.46343853 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255045 (text: Fear that mirrors a changing political dynamic in ) is an LLM-generated sample, misclassified as human-generated with confidence 0.25626608 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255046 (text: By Vigilant Citizen Staff Just a restaurant that) is an LLM-generated sample, misclassified as human-generated with confidence 0.93166891 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255047 (text: 16 #geekyvimcovers submitted after watching this v) is an LLM-generated sample, misclassified as human-generated with confidence 0.73014065 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255048 (text: Watch a video recording from the Oct. 29 La Plata ) is an LLM-generated sample, misclassified as human-generated with confidence 0.97489558 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255049 (text: Watch Rick Santorum's full interview with Glenn Be) is an LLM-generated sample, misclassified as human-generated with confidence 0.22555194 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255050 (text: Passengers and regulators round up illegal drugs d) is an LLM-generated sample, misclassified as human-generated with confidence 0.90531718 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255051 (text: Former Texas governor Rick Perry will sit down wit) is an LLM-generated sample, misclassified as human-generated with confidence 0.64854152 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255052 (text: Beloved writer and poet J.R.R. Tolkien once sugges) is an LLM-generated sample, misclassified as human-generated with confidence 0.92218708 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255053 (text: 2000 Year Oro Jackson The tomb was previously ide) is an LLM-generated sample, misclassified as human-generated with confidence 0.76241048 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.2005504 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.52813592 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.55577029 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.06954537 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.68862363 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.08522752 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.45399046 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.16592034 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.43056045 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.82167116 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.35982707 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.53881446 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.38575187 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.11279987 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00786285 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.14251446 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.84648644 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.46968671 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.33937355 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.68716287 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.6766506 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.78591418 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.28873504 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.4788305 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.37438603 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.28710083 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.14288989 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.48846595 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.02108648 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.13742249 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.0234147 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.11871897 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.11488925 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.41831895 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.09906092 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.25592225 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.04617466 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.05264408 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.60116195 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.16145732 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.21260855 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.53546311 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.09549167 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.6601124 + assert 'Human' == 'AI' + - AI + + Human \ No newline at end of file diff --git a/openai-report.xml b/openai-report.xml new file mode 100644 index 0000000..c4fe07d --- /dev/null +++ b/openai-report.xml @@ -0,0 +1,547 @@ +E AssertionError: lw1.txt is a human-generated file, misclassified as AI-generated with confidence 0.321209 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: 115CVL036.txt is a human-generated file, misclassified as AI-generated with confidence 0.455299 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: Effing-Idiot.txt is a human-generated file, misclassified as AI-generated with confidence 0.1866558 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: 112C-L015.txt is a human-generated file, misclassified as AI-generated with confidence 0.6370301 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: blog-new-year's-resolutions.txt is a human-generated file, misclassified as AI-generated with confidence 0.5369481 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: 112C-L016.txt is a human-generated file, misclassified as AI-generated with confidence 1.6817274 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: hotel-california.txt is a human-generated file, misclassified as AI-generated with confidence 0.46509248 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: Italy.txt is a human-generated file, misclassified as AI-generated with confidence 0.85420441 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: CUP1.txt is a human-generated file, misclassified as AI-generated with confidence 0.40831739 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: Nathans_Bylichka.txt is a human-generated file, misclassified as AI-generated with confidence 0.37281494 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: Protocol_Regarding_Access.txt is a human-generated file, misclassified as AI-generated with confidence 0.01185576 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: blog-varsity-athletics.txt is a human-generated file, misclassified as AI-generated with confidence 0.49355546 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: 2111.00667_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.08577926 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13472_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.0215187 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03612_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.0556253 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00310_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.35094416 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06230_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.222048 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06012_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.03673666 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01676_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.10944003 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: cleaned_2111.00086_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00492937 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10340_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00107093 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.15093_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.09055454 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01515_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.09667263 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12501_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01356792 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02041_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.14138968 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02760_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02027465 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02574_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00647727 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15023_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01920906 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03320_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.03506025 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: gpt_patient_narrative.txt is an LLM-generated file, misclassified as human-generated with confidence 0.4703216 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15317_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01344873 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06181_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.10901642 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03294_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.17496136 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00867_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00530521 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12341_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.15424005 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00086_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00295919 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02326_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01698273 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00514_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.18851013 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.14532_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00416729 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07408_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.07711915 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00035_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02985204 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02687_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.05225213 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.05204_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01086444 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02188_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.11011351 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10575_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02936969 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07525_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02287012 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10778_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.11058644 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13900_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.1473069 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.04416_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01264943 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03913_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00472829 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01706_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.03245985 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01243_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.09889898 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11879_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.40018102 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10329_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.0197793 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.04507_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.31531139 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00572_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00453552 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11984_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.13799896 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02110_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.098007 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: cgpt_hs_essay.txt is an LLM-generated file, misclassified as human-generated with confidence 0.11243306 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15802_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00260979 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11589_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01338938 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06644_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02827702 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01322_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.0091882 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00526_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01550794 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12010_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.03493403 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13317_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00554525 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: gpt_santos_long.txt is an LLM-generated file, misclassified as human-generated with confidence 0.63803977 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02643_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.09290933 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15534_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.0347589 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07611_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.0613981 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13658_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.05250873 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15725_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01698366 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01231_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01036329 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10319_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.1512723 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01340_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.10376038 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07699_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.06010468 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02844_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.01177262 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02259_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.00179875 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00180_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.1591772 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.04574_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02247136 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00808_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02429863 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12765_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.06128351 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13229_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.04999299 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00554_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.1445961 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11207_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.10669305 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00607_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02627164 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07267_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.05017869 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03945_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.02875166 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12383_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.06655879 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02362_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.49192043 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15799_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.08151335 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/webtext.test.jsonl:255012 (len: 359) is a human-generated sample, misclassified as AI-generated with confidence 1.9232781 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255027 (len: 694) is a human-generated sample, misclassified as AI-generated with confidence 0.1099085 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255069 (len: 281) is a human-generated sample, misclassified as AI-generated with confidence 1.5787563 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/xl-1542M.test.jsonl:255002 (text: People carry a memorial sign to honor Robert Paxto) is an LLM-generated sample, misclassified as human-generated with confidence 0.00270131 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255003 (text: Google is launching a new scholarship campaign for) is an LLM-generated sample, misclassified as human-generated with confidence 0.03554464 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255006 (text: ISIS is breeding from among the refugees forced ou) is an LLM-generated sample, misclassified as human-generated with confidence 0.01632706 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255007 (text: More than a third of population as of recently, Ma) is an LLM-generated sample, misclassified as human-generated with confidence 0.0 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255008 (text: © Provided by Texas State Historical Association' ) is an LLM-generated sample, misclassified as human-generated with confidence 0.00088852 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255010 (text: Bots and AI are everywhere these days, and it's no) is an LLM-generated sample, misclassified as human-generated with confidence 0.04341305 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255012 (text: Dr. Karl Widerquist says his study "opens up an in) is an LLM-generated sample, misclassified as human-generated with confidence 0.00451938 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255015 (text: CALGARY — Tory MP Mac Harb resigned from the Conse) is an LLM-generated sample, misclassified as human-generated with confidence 0.00219576 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255016 (text: SERVO, Jupiter - Since the discovery of the swirli) is an LLM-generated sample, misclassified as human-generated with confidence 0.0 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255019 (text: PITTSBURGH, Aug. 15, 2013 /PRNewswire/ -- The Nati) is an LLM-generated sample, misclassified as human-generated with confidence 0.00305316 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255020 (text: Albert Einstein, one of the world's most famous sc) is an LLM-generated sample, misclassified as human-generated with confidence 0.0 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255022 (text: Thank you for supporting the journalism that our c) is an LLM-generated sample, misclassified as human-generated with confidence 0.3812749 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255031 (text: A small group of Soviet "Oh-On's" fled North Vietn) is an LLM-generated sample, misclassified as human-generated with confidence 0.19538642 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255033 (text: PALLBRIDGE, Mass. -- The New Hampshire Department ) is an LLM-generated sample, misclassified as human-generated with confidence 0.00107144 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255035 (text: Speaker Paul Ryan Paul Davis RyanHouse passes reso) is an LLM-generated sample, misclassified as human-generated with confidence 0.00750031 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255036 (text: To revisit an idea that a writer once put forth in) is an LLM-generated sample, misclassified as human-generated with confidence 0.0 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255037 (text: Jimmy Pastore worked his way up from the lightweig) is an LLM-generated sample, misclassified as human-generated with confidence 0.00063798 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255039 (text: The Republican-led legislature will not appoint a ) is an LLM-generated sample, misclassified as human-generated with confidence 0.30500448 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255040 (text: http://tvtropes.org/pmwiki/pmwiki.php/Main/Dunes ) is an LLM-generated sample, misclassified as human-generated with confidence 0.0 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255041 (text: You have a choice when your four year old gets to ) is an LLM-generated sample, misclassified as human-generated with confidence 0.09371958 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255045 (text: Fear that mirrors a changing political dynamic in ) is an LLM-generated sample, misclassified as human-generated with confidence 0.0 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255047 (text: 16 #geekyvimcovers submitted after watching this v) is an LLM-generated sample, misclassified as human-generated with confidence 0.21505855 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255049 (text: Watch Rick Santorum's full interview with Glenn Be) is an LLM-generated sample, misclassified as human-generated with confidence 0.011271 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255050 (text: Passengers and regulators round up illegal drugs d) is an LLM-generated sample, misclassified as human-generated with confidence 0.00209666 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255053 (text: 2000 Year Oro Jackson The tomb was previously ide) is an LLM-generated sample, misclassified as human-generated with confidence 0.0 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255055 (text: Despite offering three levels of adaptive service,) is an LLM-generated sample, misclassified as human-generated with confidence 0.00787552 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255056 (text: The third and final African adventure. The first t) is an LLM-generated sample, misclassified as human-generated with confidence 0.13954033 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255062 (text: Saturday, 13 February 2015 (CNW Group/Black Wit ) is an LLM-generated sample, misclassified as human-generated with confidence 0.02752214 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255063 (text: Sorting, Pricing, and Reviews iOS UK: who product) is an LLM-generated sample, misclassified as human-generated with confidence 0.06903698 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 1.1260147 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.05852282 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.04388567 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00120899 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.4662261 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00167237 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.0118992 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.07309181 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00191761 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.02749162 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00259027 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.6068017 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.682969 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00222718 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.3061239 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00494032 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.4741402 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00517373 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.00871626 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.0 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.01923521 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.24069703 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 0.8380261 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a human-generated sample, misclassified as AI-generated with confidence 4.5326657 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.6407607 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.11353426 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.04806723 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.36321127 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.0095457 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.0215069 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 1.5955715 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.05898338 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.6861498 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.276335 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.1492504 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.08762684 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.0442825 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.39183295 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.07236506 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.94346935 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.04614504 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.3190322 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.01196821 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 1.6761093 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.05643623 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.11400924 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.06332622 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.22254996 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.1170823 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.04161354 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.03125875 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.04431889 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.42040336 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.10604124 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 1.3114026 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.5340602 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.4017687 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.21801458 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.02495807 + assert 'Human' == 'AI' + - AI + + Human \ No newline at end of file diff --git a/openai_detect.py b/openai_detect.py index 9257474..ba69376 100644 --- a/openai_detect.py +++ b/openai_detect.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import os, requests +import os, requests, re from typing import Optional, Dict, Tuple MODEL_NAME = 'model-detect-v2' @@ -28,19 +28,50 @@ def make_req(text : str) -> Optional[Dict]: 'logprobs': 5 } res = requests.post(API_URL, headers=headers, json=data) - return res.json().get('choices', [None])[0] + #print(str(res.status_code) + ' ' + res.text) + res = res.json().get('choices', [None])[0] + if res is None: + return None + if res.get('text') == '"': + return ('AI', abs(res.get('logprobs').get('token_logprobs')[0])) + elif res.get('text') == '!': + return ('Human', abs(res.get('logprobs').get('token_logprobs')[0])) + return None #res.get('text') -def run_on_file(fn : str) -> Optional[Tuple[str, float]]: +def run_on_file_chunked(fn : str, chunk_size : int = 4096) -> Optional[Tuple[str, float]]: with open(fn, 'r') as fp: contents = fp.read() - res = make_req(contents) - if res is None: - print("Unable to classify!") - return None - else: - #print(res) - if res.get('text') == '"': - return ('AI', abs(res.get('logprobs').get('token_logprobs')[0])) - elif res.get('text') == '!': - return ('Human', abs(res.get('logprobs').get('token_logprobs')[0])) - return None #res.get('text') + return run_on_text_chunked(contents) + +def run_on_text_chunked(contents : str, chunk_size : int = 4096) -> Optional[Tuple[str, float]]: + # Remove extra spaces and duplicate newlines. + contents = re.sub(' +', ' ', contents) + contents = re.sub('\t', '', contents) + contents = re.sub('\n+', '\n', contents) + contents = re.sub('\n ', '\n', contents) + + start = 0 + end = 0 + chunks = [] + while start + chunk_size < len(contents) and end != -1: + end = contents.rfind(' ', start, start + chunk_size + 1) + chunks.append(contents[start:end]) + start = end + 1 + chunks.append(contents[start:]) + scores = [] + for c in chunks: + scores.append(make_req(c)) + ssum : float = 0.0 + for s in scores: + if s is None: + continue + if s[0] == 'AI': + ssum -= s[1] + else: + ssum += s[1] + sa : float = ssum / len(scores) + if sa < 0: + return ('AI', abs(sa)) + else: + return ('Human', abs(sa)) + diff --git a/plot_rocs.py b/plot_rocs.py index b2ea5b6..9237d60 100644 --- a/plot_rocs.py +++ b/plot_rocs.py @@ -9,7 +9,7 @@ from itertools import chain from math import sqrt from junitparser import JUnitXml -MODELS = ['lzma', 'roberta', 'gptzero'] +MODELS = ['lzma', 'roberta', 'gptzero', 'openai'] plt.figure() @@ -53,8 +53,9 @@ for model in MODELS: # Plot the ROC curve plt.plot(fpr, tpr, lw=2, label=model.capitalize() + ': ROC curve (AUC = %0.2f)' % roc_auc) - plt.scatter(fpr[ix], tpr[ix], marker='o', color='black', label='Best @ threshold = %0.2f' % thresholds[ix]) - plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--', label="Random classifier") + plt.scatter(fpr[ix], tpr[ix], marker='o', color='black')#, label=model.capitalize() + ': Best @ threshold = %0.2f' % thresholds[ix]) + +plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--', label="Random classifier") plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') diff --git a/roberta-report.xml b/roberta-report.xml new file mode 100644 index 0000000..bdf2680 --- /dev/null +++ b/roberta-report.xml @@ -0,0 +1,394 @@ +E AssertionError: The training corpus should always be detected as AI-generated... since it is (score: 0.45471779) + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00667_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99382439 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13472_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99981284 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03612_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.98926615 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00310_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9975122 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06230_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.86175238 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06012_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9996202 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01676_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.98542653 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2112.00405_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99945011 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: gpt_patient_summary.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99974746 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.05241_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99923876 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12645_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.999111 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07793_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.97624406 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: cleaned_2111.00086_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99964077 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11115_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.3836793 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.15093_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99974336 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01515_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.89745058 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12501_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.82629161 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02041_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.59061606 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01023_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.92547618 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03715_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99917889 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02760_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.38584996 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02574_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99977943 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15023_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99589543 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03320_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.89007726 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: gpt_patient_narrative.txt is an LLM-generated file, misclassified as human-generated with confidence 0.87747094 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15317_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99977366 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06181_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99081699 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03294_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.73717064 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.15436_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9997596 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00867_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99127959 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.05754_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9741079 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12341_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99981304 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00086_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99762747 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02326_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99948955 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00514_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99327004 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.14532_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.77645136 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07408_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99809838 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00035_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9911741 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02687_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.69270055 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.05204_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.81794904 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10478_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.97308452 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02188_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.84402229 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10575_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.97960567 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07525_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.74606057 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10577_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9996823 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.15473_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99375689 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: bing_c_abstract.txt is an LLM-generated file, misclassified as human-generated with confidence 0.5164026 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10778_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.97531337 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13900_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99687268 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.04416_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.82927523 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03913_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9997699 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01706_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99976884 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01243_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99606116 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11879_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.17882794 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10329_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99830421 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.04507_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99448512 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03837_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.8360574 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00572_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99977653 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11984_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99239932 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06464_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.96089149 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02110_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.790673 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15802_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99887215 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11589_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99981594 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15724_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9987454 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15130_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99948875 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.06644_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.79273317 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01322_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.983744 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: bing_b_song.txt is an LLM-generated file, misclassified as human-generated with confidence 0.50423223 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00526_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.77800059 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12010_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99971171 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13317_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99805488 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: gpt_santos_short.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99983001 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02643_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99960075 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: about_me.txt is an LLM-generated file, misclassified as human-generated with confidence 0.0307261 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15534_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99917133 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07611_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99877241 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13658_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99937341 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15725_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.33055653 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01231_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99930474 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.10319_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.70680254 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.01340_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9997531 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07699_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.95878746 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15705_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99431326 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02844_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.21748248 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.04130_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99520349 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02259_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99789966 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00180_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.7624386 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.04574_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99966471 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00808_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99945983 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12765_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99973014 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.13229_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.98832198 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00554_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.74937884 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11207_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99513763 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.00607_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99755662 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.07267_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.9632483 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.11205_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99839606 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.03945_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99889313 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.12383_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99980865 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2111.02362_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.53223096 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: 2110.15799_generated.txt is an LLM-generated file, misclassified as human-generated with confidence 0.99981038 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/webtext.test.jsonl:255003 (len: 490) is a human-generated sample, misclassified as AI-generated with confidence 0.30330616 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255009 (len: 55) is a human-generated sample, misclassified as AI-generated with confidence 0.73158664 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255012 (len: 359) is a human-generated sample, misclassified as AI-generated with confidence 0.71474889 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255014 (len: 83) is a human-generated sample, misclassified as AI-generated with confidence 0.95257503 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255031 (len: 60) is a human-generated sample, misclassified as AI-generated with confidence 0.84892857 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255037 (len: 505) is a human-generated sample, misclassified as AI-generated with confidence 0.04842034 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255038 (len: 102) is a human-generated sample, misclassified as AI-generated with confidence 0.72561371 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/webtext.test.jsonl:255049 (len: 424) is a human-generated sample, misclassified as AI-generated with confidence 0.08969963 + assert 'AI' == 'Human' + - Human + + AIE AssertionError: samples/xl-1542M.test.jsonl:255001 (text: What is this? This is a neat little plugin to giv) is an LLM-generated sample, misclassified as human-generated with confidence 0.99674356 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255006 (text: ISIS is breeding from among the refugees forced ou) is an LLM-generated sample, misclassified as human-generated with confidence 0.78378153 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255007 (text: More than a third of population as of recently, Ma) is an LLM-generated sample, misclassified as human-generated with confidence 0.01434498 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255034 (text: Education K-12 World Affairs Middle East & North ) is an LLM-generated sample, misclassified as human-generated with confidence 0.99678952 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/xl-1542M.test.jsonl:255047 (text: 16 #geekyvimcovers submitted after watching this v) is an LLM-generated sample, misclassified as human-generated with confidence 0.89757395 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.99938917 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.94715136 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.97907895 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.99982989 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.51206076 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/GPT-3-175b_samples.jsonl is an LLM-generated sample, misclassified as human-generated with confidence 0.99925941 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.39718046 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.21446458 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.01565385 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.00559759 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.9989085 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.00481397 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.99855164 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.84457272 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.98456696 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.49475153 + assert 'Human' == 'AI' + - AI + + HumanE AssertionError: samples/news.jsonl is a AI-generated sample, misclassified as human-generated with confidence 0.07056388 + assert 'Human' == 'AI' + - AI + + Human \ No newline at end of file diff --git a/test_openai_detect.py b/test_openai_detect.py index 1a03d9f..8d01dd7 100644 --- a/test_openai_detect.py +++ b/test_openai_detect.py @@ -1,26 +1,110 @@ #!/usr/bin/env python3 -import pytest, os +import pytest, os, jsonlines from warnings import warn -from openai_detect import run_on_file +from openai_detect import run_on_file_chunked, run_on_text_chunked + +MIN_LEN = 1000 +NUM_JSONL_SAMPLES = 50 AI_SAMPLE_DIR = 'samples/llm-generated/' HUMAN_SAMPLE_DIR = 'samples/human-generated/' -ai_files = os.listdir(AI_SAMPLE_DIR) -ai_files = filter(lambda f: os.path.getsize(AI_SAMPLE_DIR + f) >= 1000, ai_files) -human_files = os.listdir(HUMAN_SAMPLE_DIR) -human_files = filter(lambda f: os.path.getsize(HUMAN_SAMPLE_DIR + f) >= 1000, human_files) +ai_files = [f for f in os.listdir(AI_SAMPLE_DIR) if os.path.getsize(AI_SAMPLE_DIR + f) >= MIN_LEN] +human_files = [f for f in os.listdir(HUMAN_SAMPLE_DIR) if os.path.getsize(HUMAN_SAMPLE_DIR + f) >= MIN_LEN] -def test_training_file(): - assert run_on_file('ai-generated.txt')[0] == 'AI', 'The training corpus should always be detected as AI-generated... since it is' +CONFIDENCE_THRESHOLD : float = 0.00 # What confidence to treat as error vs warning + +def test_training_file(record_property): + (classification, score) = run_on_file_chunked('ai-generated.txt') + record_property("score", str(score)) + assert classification == 'AI', 'The training corpus should always be detected as AI-generated... since it is (score: ' + str(round(score, 8)) + ')' @pytest.mark.parametrize('f', human_files) -def test_human_samples(f): - (classification, score) = run_on_file(HUMAN_SAMPLE_DIR + f) - assert classification == 'Human', f + ' is a human-generated file, misclassified as AI-generated with confidence ' + str(round(score, 8)) +def test_human_samples(f, record_property): + res = run_on_file_chunked(HUMAN_SAMPLE_DIR + f) + if res is None: + pytest.skip('Unable to classify') + (classification, score) = res + record_property("score", str(score)) + if score > CONFIDENCE_THRESHOLD: + assert classification == 'Human', f + ' is a human-generated file, misclassified as AI-generated with confidence ' + str(round(score, 8)) + else: + if classification != 'Human': + warn("Misclassified " + f + " with score of: " + str(round(score, 8))) + else: + warn("Unable to confidently classify: " + f) @pytest.mark.parametrize('f', ai_files) -def test_llm_sample(f): - (classification, score) = run_on_file(AI_SAMPLE_DIR + f) - assert classification == 'AI', f + ' is an LLM-generated file, misclassified as human-generated with confidence ' + str(round(score, 8)) +def test_llm_sample(f, record_property): + res = run_on_file_chunked(AI_SAMPLE_DIR + f) + if res is None: + pytest.skip('Unable to classify') + (classification, score) = res + record_property("score", str(score)) + if score > CONFIDENCE_THRESHOLD: + assert classification == 'AI', f + ' is an LLM-generated file, misclassified as human-generated with confidence ' + str(round(score, 8)) + else: + if classification != 'AI': + warn("Misclassified " + f + " with score of: " + str(round(score, 8))) + else: + warn("Unable to confidently classify: " + f) + +HUMAN_JSONL_FILE = 'samples/webtext.test.jsonl' +human_samples = [] +with jsonlines.open(HUMAN_JSONL_FILE) as reader: + for obj in reader: + if len(obj.get('text')) >= MIN_LEN: + human_samples.append(obj) + +@pytest.mark.parametrize('i', human_samples[0:NUM_JSONL_SAMPLES]) +def test_human_jsonl(i, record_property): + (classification, score) = run_on_text_chunked(i.get('text', '')) + record_property("score", str(score)) + assert classification == 'Human', HUMAN_JSONL_FILE + ':' + str(i.get('id')) + ' (len: ' + str(i.get('length', -1)) + ') is a human-generated sample, misclassified as AI-generated with confidence ' + str(round(score, 8)) + +AI_JSONL_FILE = 'samples/xl-1542M.test.jsonl' +ai_samples = [] +with jsonlines.open(AI_JSONL_FILE) as reader: + for obj in reader: + if len(obj.get('text')) >= MIN_LEN: + ai_samples.append(obj) + +@pytest.mark.parametrize('i', ai_samples[0:NUM_JSONL_SAMPLES]) +def test_llm_jsonl(i, record_property): + (classification, score) = run_on_text_chunked(i.get('text', '')) + record_property("score", str(score)) + assert classification == 'AI', AI_JSONL_FILE + ':' + str(i.get('id')) + ' (text: ' + i.get('text', "").replace('\n', ' ')[:50] + ') is an LLM-generated sample, misclassified as human-generated with confidence ' + str(round(score, 8)) + +GPT3_JSONL_FILE = 'samples/GPT-3-175b_samples.jsonl' +gpt3_samples = [] +with jsonlines.open(GPT3_JSONL_FILE) as reader: + for o in reader: + for l in o.split('<|endoftext|>'): + if len(l) >= MIN_LEN: + gpt3_samples.append(l) + +@pytest.mark.parametrize('i', gpt3_samples[0:NUM_JSONL_SAMPLES]) +def test_gpt3_jsonl(i, record_property): + (classification, score) = run_on_text_chunked(i) + record_property("score", str(score)) + assert classification == 'AI', GPT3_JSONL_FILE + ' is an LLM-generated sample, misclassified as human-generated with confidence ' + str(round(score, 8)) + +NEWS_JSONL_FILE = 'samples/news.jsonl' +news_samples = [] +with jsonlines.open(NEWS_JSONL_FILE) as reader: + for obj in reader: + if len(obj.get('human')) >= MIN_LEN: + news_samples.append(obj) + +@pytest.mark.parametrize('i', news_samples[0:NUM_JSONL_SAMPLES]) +def test_humannews_jsonl(i, record_property): + (classification, score) = run_on_text_chunked(i.get('human', '')) + record_property("score", str(score)) + assert classification == 'Human', NEWS_JSONL_FILE + ' is a human-generated sample, misclassified as AI-generated with confidence ' + str(round(score, 8)) + +@pytest.mark.parametrize('i', news_samples[0:NUM_JSONL_SAMPLES]) +def test_chatgptnews_jsonl(i, record_property): + (classification, score) = run_on_text_chunked(i.get('chatgpt', '')) + record_property("score", str(score)) + assert classification == 'AI', NEWS_JSONL_FILE + ' is a AI-generated sample, misclassified as human-generated with confidence ' + str(round(score, 8)) diff --git a/test_roberta_detect.py b/test_roberta_detect.py index 4b211ea..4daace6 100644 --- a/test_roberta_detect.py +++ b/test_roberta_detect.py @@ -8,19 +8,22 @@ AI_SAMPLE_DIR = 'samples/llm-generated/' HUMAN_SAMPLE_DIR = 'samples/human-generated/' MIN_LEN = 150 +NUM_JSONL_SAMPLES = 50 ai_files = os.listdir(AI_SAMPLE_DIR) human_files = os.listdir(HUMAN_SAMPLE_DIR) CONFIDENCE_THRESHOLD : float = 0.00 # What confidence to treat as error vs warning -def test_training_file(): +def test_training_file(record_property): (classification, score) = run_on_file_chunked('ai-generated.txt') + record_property("score", str(score)) assert classification == 'AI', 'The training corpus should always be detected as AI-generated... since it is (score: ' + str(round(score, 8)) + ')' @pytest.mark.parametrize('f', human_files) -def test_human_samples(f): +def test_human_samples(f, record_property): (classification, score) = run_on_file_chunked(HUMAN_SAMPLE_DIR + f) + record_property("score", str(score)) if score > CONFIDENCE_THRESHOLD: assert classification == 'Human', f + ' is a human-generated file, misclassified as AI-generated with confidence ' + str(round(score, 8)) else: @@ -30,8 +33,9 @@ def test_human_samples(f): warn("Unable to confidently classify: " + f) @pytest.mark.parametrize('f', ai_files) -def test_llm_sample(f): +def test_llm_sample(f, record_property): (classification, score) = run_on_file_chunked(AI_SAMPLE_DIR + f) + record_property("score", str(score)) if score > CONFIDENCE_THRESHOLD: assert classification == 'AI', f + ' is an LLM-generated file, misclassified as human-generated with confidence ' + str(round(score, 8)) else: @@ -46,9 +50,10 @@ with jsonlines.open(HUMAN_JSONL_FILE) as reader: for obj in reader: human_samples.append(obj) -@pytest.mark.parametrize('i', human_samples[0:250]) -def test_human_jsonl(i): +@pytest.mark.parametrize('i', human_samples[0:NUM_JSONL_SAMPLES]) +def test_human_jsonl(i, record_property): (classification, score) = run_on_text_chunked(i.get('text', '')) + record_property("score", str(score)) assert classification == 'Human', HUMAN_JSONL_FILE + ':' + str(i.get('id')) + ' (len: ' + str(i.get('length', -1)) + ') is a human-generated sample, misclassified as AI-generated with confidence ' + str(round(score, 8)) AI_JSONL_FILE = 'samples/xl-1542M.test.jsonl' @@ -57,9 +62,10 @@ with jsonlines.open(AI_JSONL_FILE) as reader: for obj in reader: ai_samples.append(obj) -@pytest.mark.parametrize('i', ai_samples[0:250]) -def test_llm_jsonl(i): +@pytest.mark.parametrize('i', ai_samples[0:NUM_JSONL_SAMPLES]) +def test_llm_jsonl(i, record_property): (classification, score) = run_on_text_chunked(i.get('text', '')) + record_property("score", str(score)) assert classification == 'AI', AI_JSONL_FILE + ':' + str(i.get('id')) + ' (text: ' + i.get('text', "").replace('\n', ' ')[:50] + ') is an LLM-generated sample, misclassified as human-generated with confidence ' + str(round(score, 8)) GPT3_JSONL_FILE = 'samples/GPT-3-175b_samples.jsonl' @@ -70,9 +76,10 @@ with jsonlines.open(GPT3_JSONL_FILE) as reader: if len(l) >= MIN_LEN: gpt3_samples.append(l) -@pytest.mark.parametrize('i', gpt3_samples) -def test_gpt3_jsonl(i): +@pytest.mark.parametrize('i', gpt3_samples[0:NUM_JSONL_SAMPLES]) +def test_gpt3_jsonl(i, record_property): (classification, score) = run_on_text_chunked(i) + record_property("score", str(score)) assert classification == 'AI', GPT3_JSONL_FILE + ' is an LLM-generated sample, misclassified as human-generated with confidence ' + str(round(score, 8)) NEWS_JSONL_FILE = 'samples/news.jsonl' @@ -81,12 +88,14 @@ with jsonlines.open(NEWS_JSONL_FILE) as reader: for obj in reader: news_samples.append(obj) -@pytest.mark.parametrize('i', news_samples[0:250]) -def test_humannews_jsonl(i): +@pytest.mark.parametrize('i', news_samples[0:NUM_JSONL_SAMPLES]) +def test_humannews_jsonl(i, record_property): (classification, score) = run_on_text_chunked(i.get('human', '')) + record_property("score", str(score)) assert classification == 'Human', NEWS_JSONL_FILE + ' is a human-generated sample, misclassified as AI-generated with confidence ' + str(round(score, 8)) -@pytest.mark.parametrize('i', news_samples[0:250]) -def test_chatgptnews_jsonl(i): +@pytest.mark.parametrize('i', news_samples[0:NUM_JSONL_SAMPLES]) +def test_chatgptnews_jsonl(i, record_property): (classification, score) = run_on_text_chunked(i.get('chatgpt', '')) + record_property("score", str(score)) assert classification == 'AI', NEWS_JSONL_FILE + ' is a AI-generated sample, misclassified as human-generated with confidence ' + str(round(score, 8))