世界を動かす技術を、日本語で。

「古典的」機械学習によるLLM生成テキストの検出

2026年7月17日原文(blog.lyc8503.net)

概要

  • 2026年時点で、主流のLLM生成テキストは従来型機械学習モデルで高精度に識別可能
  • 実験用デモとGitHubでコード・モデルファイル公開
  • 85%以上の文単位検出精度を達成
  • 複数AIモデルを活用したバイナリ分類と多数決方式
  • Webブラウザ上で動作する軽量なJS実装

LLM生成テキスト検出の現状とデモ

  • 2026年初頭、 主流のLLM生成テキスト明確な統計的特徴 を持ち、 従来型機械学習モデル で高精度に人間との識別が可能
  • 多くの「AI盗作チェッカー」は、このような 機械学習的アプローチ を内部で利用していると推測
  • オンラインデモ:https://lyc8503.github.io/AITextDetector/
    • デモ用モデルは 一般用途データ未学習最適化未実施
    • 単文検出精度:約85%
  • コアコード(ドラフト)および学習済みモデルはGitHubで公開: lyc8503/AITextDetector

背景と動機

  • 半年前、卒論執筆時に AIGC検出サービス (CNKI、Wanfang等)を試用
    • 人間とAI生成テキスト の区別が可能で、精度も高め
  • その仕組みや回避法に興味を持つも、他の趣味や多忙で一時中断
  • 最近、Lofterで 低品質AI生成小説 の氾濫を目撃し、 自作検出器 開発を決意

既存手法(失敗例):テキストパープレキシティ

  • LLMを用いて各単語の出現確率 を計算し、予測しやすい文=AI生成と判断
  • 簡単な発想だが、 偽陽性・偽陰性が多く、閾値設定困難
  • 実用面でも 推論コスト高、汎用性低、ローカル実装困難 など課題多数
  • 結論: 実用的・信頼性不足

成功例:scikit-learnによるSVM分類

  • scikit-learnLinear SVCNaive Bayes を活用し、 単文分類 に挑戦
  • 教師データ は2010–2022年の人間執筆記事約1万件+各種LLMで生成した同数のAI文
    • ジャンル多様性内容類似性 を意識してデータ生成
  • 複数LLM API (Gemini, Qwen, GLM-5, Kimi等)を 低コストで利用
    • 利用規約違反のリスクあり、推奨はしない
  • バッチ処理 でAPIコストを最適化し、大量生成を実現

モデル学習と精度

  • 文単位で分割・前処理 し、 TF-IDF→LinearSVC で学習
    • 文単位精度85%超、複数文での多数決により高信頼判定
  • 8クラス分類(人間+7AI) は精度低下(約50%)、 バイナリ分類+多数決 で運用
  • 主要モデルごとの 精度・F1スコア :全て85%以上を達成
  • 他の分類器 (Naive Bayes, SGD, BERT, AutoGluon)は劣後、最終的にSVCを採用

Webデモ用JS実装

  • Python API運用を避け、完全サーバーレス を目指し、 TF-IDF+SVMをJSで実装
  • 50万特徴量で精度・パフォーマンスを両立(圧縮後38MB程度)
  • 精度低下は約1% に留まり、実用上問題なし
  • 入力文を 7つのバイナリモデルで分類し、多数決でAI判定
    • AIスコア 算出:50%未満=人間、50–70%=人間寄り、70%以上=AI寄り

検出性能テスト

  • 学習モデル(Doubao, Deepseek等) に対し高い検出率(78–93%)
  • 未学習モデル(Claude Sonnet 4.6, GPT 5.2等) にも70%以上の検出率
  • 多様なプロンプト・長文 にも対応可能

まとめ

  • 従来型機械学習 でも、主流LLM生成テキストは高精度で識別可能
  • Webデモ・コード・モデル を公開済み
  • AIテキスト検出の仕組み限界 を理解したうえでの活用推奨

Hackerたちの意見

分類器はそんなに大きくないみたいだけど、英語用のやつがブラウザ拡張として使えたら、表示されてるすべての段落に対して動かせるんじゃないかな?もしインターネットがLLMのテキストで溢れかえるなら、今の広告ブロッカーみたいに自動でそれを検出するツールがあったらいいよね。(記事は面白かった、ありがとう!)

モデルによって分布が違うと思うから、常に更新しなきゃいけないのかな?

これを実現するブラウザ拡張機能を作ったよ。TwitterやHacker News、Redditの投稿に対応してる。もし全てのテキストに対応したいなら、それも可能だよ。すごく速く動く量子化されたミニLMモデルを使っていて、例えばあなたのTwitterフィード全体を数秒で分類できる。チェックしてみてね: https://slopsieve.com/extension 精度もここでのアプローチよりずっと高いよ。0.9944 AUC、0.966 acc@.5、0.971 F1@.5

この手法とシンプルなSVM分類器について気になるな。https://x.com/rosmine/status/2056406399471558872?s=20

この記事は、合成テキストを検出するための分類器のトレーニングについてだね。君が送ったリンクは、その分類器を打破しようとするテキスト生成のためのものだよ。

テキストは単純に情報密度が足りなくて、そこから出所の信号をデコードするのは難しいよね。確かに、今日の特徴(Claudeが好む特定の文構造やフレーズなど)を検出して、機械生成の確率を出すことはできるかもしれないけど、これはタロットカード占いと同じようなもので、そんなものがもっと深い意味を持つとは思えない。画像は別だけど、今の生成器からは自然な方法では出ない特徴があって、「AIを検出する」ことは高い信頼度でできる(今のところはね)。言葉はダメ、信号があまりにも希薄で、今のモデルでは検出できないレベルの洗練さに達してるし、明日のモデルはもっと進化するだろうね。

でも、これがタロットカード占い以上のものだと信じるのは悪いフィクションだよ。全然同意できない。LLM(特にプレトレーニングだけ受けたベースモデル)は、人間の文章と区別がつかない出力を生成できる(だってそういう風に訓練されてるから)。でも商業用のチャットモデルは、ユーザーのエンゲージメントを最大化するように特別に調整されてる。その特別な調整がAIのクズを読むときにすぐにわかるもので、だから自動的に見つけるのも簡単なんだよね。これがすぐに変わるとは思わない、インセンティブが変わらない限りは。(特定の目的に最適化された人間が作ったもの、例えばストックフォトやクリックベイトのタイトル、工業用食品についても同じことが言える。これらはクリエイターが他の方法で作るスキルがないから典型的なのではなく、そうするのが一番効果的だからそうなってるんだ。)

問題が二つあって、偽陽性とLLMのパターンの変更だね。偽陽性が出るのはすごく簡単だし、検出器を使う人がそのリスクを理解していないと、偽陽性はとても危険になり得る。LLMの出力パターンを変えるのもすごく簡単だよ。基本的なプロンプトを与えることで、出力の構造を大きく変えることができる。例えば、AIの文章のサインについてのウィキペディアの記事を利用させて、それが説明していることを避けさせるとか。https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing

シグナルは、扱えるデータが多ければ多いほど検出しやすいんだ。AI生成の本は、1段落の宿題とは全然違う状況だよ。でも、宿題を何回もやると精度が変わるかもしれないね。

テキストが人間によって書かれたかどうかは、ただの一つの情報に過ぎない。だから、その検出可能性をあらかじめ排除することはできないよ。最短のテキストでもそれ以上の情報を含んでるからね。人間が書きたくないテキストを書くためにLLMを使ってる限り(結局それが理由でLLMを使ってるんだから)、検出可能なままだよ。推論が「これスパムっぽい;まともな人間が手でこんなスパムを書くわけないから、たぶんLLMが書いたに違いない」ってなるかもしれないけど。

「テキストは、出所の何らかの信号をデコードするには情報が密度不足すぎる…これはタロットカード占い以上のものだと広めるのは悪いフィクションだ。」全然違うよ。Pangramは非常に効果的で、誤検出率もすごく低い。ここでの投稿は小さなプロジェクトにしては印象的で、彼らはPangramのコアアイデアの一つであるツインを作って比較することを独自に考えたみたい。ここでその仕組みを見ることができるよ: https://arxiv.org/pdf/2402.14873

十分な情報があれば、圧倒的なノイズがあっても信号を導き出すことができるよ。ノイズが信号と完全に相関していない限り、これは常に可能なんだ。GPSやCDMA、DSSSなどの仕組みはこの概念に基づいている。特にGPSは、熱ノイズフロア以下で受信した情報を回復する能力がすごい。

Hacker Newsで議論の続きを見る