Немного в защиту нейродетектора Яндекса
Автор: Вайт ОлдрикЭта тема всех, наверное, уже уморила, но в последнее время я чаще начал встречать замечания, что, мол, нейродетекторы дают 0% на известные художественные книги только потому, что они загружены в базу, или обучались по ним, поэтому нейродетектор их "помнит". В современных реалиях развития технологий, я думаю большой сложности не составляет создать и хранить такую базу, но чтобы удостовериться, я с этим вопросом вышел в интернет пристал к гроку и он подтвердил, что да, без проблем.
Кому интересно:
Для хранения всей более-менее известной мировой художественной литературы потребуется относительно скромный объём — от нескольких десятков до пары сотен терабайт в сыром виде, и гораздо меньше с оптимизацией. Это условная оценка, потому что точного списка «известных» книг нет, но давайте разберём по шагам.
Оценка количества книг
- Общее число когда-либо изданных книг в мире — около 130–170 миллионов (по оценкам Google Books 2010 + UNESCO).
- Художественная литература (романы, повести, рассказы и т.д.) — это лишь часть. По разным оценкам, fiction составляет 5–20% от общего числа (особенно если учитывать только «более-менее известные» — классику, лауреатов премий, популярных авторов по языкам).
- Реалистично для «известного уровня» (мировая классика + значимые произведения XX–XXI века по основным языкам) — от 1–5 миллионов полноценных произведений (не считая миллионы малотиражных или локальных).
Размер одного произведения
- Средний роман — 70–100 тысяч слов (часто берут ~80–90k).
- В plain text (UTF-8) одна книга занимает 0.5–2 МБ (в среднем ~1 МБ для типичного романа).
- С метаданными, разметкой или в формате EPUB/PDF — 2–10 МБ на книгу.
Общий объём хранения
- Для 5 млн книг × 1 МБ = ~5 ТБ чистого текста.
- Для 20–50 млн (если брать почти всё значимое) — 20–50 ТБ.
- С учётом нескольких языков/переводов, дублей, метаданных, индексов и overhead — реалистично 50–200 ТБ для полноценной базы.
- С сильной компрессией (gzip/brotli или специализированные для текста) можно ужать в 2–4 раза.
Для сравнения: Project Gutenberg (~75–80 тыс. книг, в основном классика) занимает десятки-сотни ГБ в разных форматах. Internet Archive имеет миллионы книг, но их общий цифровой архив — в петабайтах (включая сканы, PDF и всё остальное).
Это вполне укладывается в современные хранилища — один хороший сервер или небольшой кластер.
Поиск фрагмента текста в такой базе
Современные поисковые системы не сканируют все тексты линейно каждый раз (это было бы медленно). Используют:
- Inverted index (обратный индекс) — основной метод в Elasticsearch, Lucene и т.д. Индекс занимает дополнительные 30–100% от размера текста, но позволяет искать очень быстро.
- Suffix array / suffix tree или гибридные структуры — для точного поиска подстрок.
Время поиска:
- Для фрагмента в 10–50 слов (типичный кусок) — миллисекунды (0.01–0.1 секунды) даже на миллиардах слов, при хорошей реализации на обычном железе.
- На полном кластере с распределённым поиском (типа Elasticsearch) — субсекундно или почти мгновенно.
- Худший случай (очень редкий фрагмент + неточное совпадение) — до нескольких секунд.
Примеры из реальности: Google ищет по триллионам страниц почти мгновенно. Поиск по всей Википедии или большим кодовым базам — тоже мгновенно.
Итог:
- Хранение всей значимой мировой художественной литературы — десятки-сотни терабайт (вполне реально для большой организации или государства).
- Поиск конкретного фрагмента — практически мгновенный благодаря индексам.
Такая база уже частично существует (Internet Archive, Google Books, национальные библиотеки), но не вся литература оцифрована легально и в чистом тексте. Если делать именно для нейродетекторов — хватило бы и гораздо меньшего объёма (топ-миллион самых известных произведений).
Поэтому я решил проверить ручками.
Взял я для примера "Оно" Стивена Кинга. Кусок с 1-ой главы:
Ужас, продолжавшийся в последующие двадцать восемь лет, – да и вообще был ли ему конец? – начался, насколько я могу судить, с кораблика, сделанного из газетного листа и подхваченного дождевым потоком, который унёс его вниз по водному жёлобу…
Кораблик кружился, переворачиваясь, уходил под воду и снова всплывал, устремляясь вниз по Витчем-стрит по направлению к светофору, который регулировал движение между улицами Витчем и Джексон. Все огоньки светофора были тёмные в эти дни осени 1957 года, так же, впрочем, как и дома. Дожди не прекращались уже неделю, а два дня назад начались ещё и сильные ветры. Большинство районов Дерри лишились электроэнергии, и её не успели подать.
Мальчонка в жёлтом плаще и красных галошах бежал рядом с бумажным корабликом. Дождь ещё не кончился, но уже начал стихать. Капли били по капюшону мальчика, отдаваясь в его ушах приятным ощущением, так стучит дождь по крыше деревенского сарая. Мальчика в жёлтом плаще звали Джордж Денбро. Ему было шесть лет. Его брат Уильям, известный большинству ребят в начальной школе Дерри (и даже учителям, не терпящим прозвищ) как Заика Билл, остался дома: он переболел каким-то отвратительным гриппом и не совсем ещё выздоровел. Той осенью 1957 года, за восемь месяцев до начала настоящих ужасов и за двадцать восемь лет до их окончания, Заике Биллу было десять лет.
Ожидаемо он показал 0% по нейродетектору Яндекса.
Теперь я взял в руки клавиатуру и начал править текст, меняя некоторые слова на синонимы, практически не трогая длину предложения, ритм и т.д.
Вот вышел такой текст:
Страх, продолжавшийся в последующие восемь лет, – да и вообще был ли у него конец? – начался, насколько я помню, с фигурки, сделанной из мятой бумаги и подхваченной нескончаемым дождём, который нёс её вниз по водному жёлобу…
Листик кружился, кувыркался, тонул и снова всплывал, устремляясь вниз по улице, по направлению к светофору, который регулировал движение между улицами Уитчема и Дексона. Огни светофора были тёмные в эти дни весны 1987 года, как, впрочем, и окна домов. Дождь не прекращался уже две недели, а пару дней назад начался ещё и ураганный ветер. Большинство районов города отключились от электричества, и, из-за непогоды, никто не восстановил его.
Девочка в красном плаще и жёлтых сапогах бежала рядом с бумажной фигуркой. Дождь не кончался, но как будто начал стихать. Капли били по капюшону девочки, отдаваясь в её ушах странным ощущением, словно стучит дождь по крыше старого сарая. Девочку в красном плаще звали Джори Денро. Ей было пять лет. Её брат Уилл, известный многим в городской школе (и даже учителям, не терпящим кличек) как Заика Уилли, остался дома: он заболел каким-то сильным гриппом и до сих пор не выздоровел. Той весной 1987 года, за семь месяцев до начала этого кошмара и за восемь лет до их окончания, Заике Уиллу было одиннадцать лет.
Скармливаю Яндексу и... 1,11% (я на 1% ИИ :-(
Поэтому я, сказать честно, товарищи, немного растерян. Многие твердят, что у них прилизанный, идеальный текст, без ошибок пунктуации и грамматики, поэтому ИИ показывает over 75%. Но такой же идеальный текст должен быть и у классиков мировой литературы, но у них всегда около 0% ИИ-шность. Отдельным моментом я не понимаю, когда у автора, условно, написано 10 глав, и каждая из них показывает больше 90% ИИ. Ну, на мой взгляд, не может быть такого, чтобы 10 глав была написаны одинаковым языком, чтобы не было человеческих скачков ритма, темпа, обрывов, шероховатости.
Я не хочу никого обвинять этим постом, я не отношусь к тем, что думает, что если забанят ИИ-работы, то творения неизвестных авторов сразу начнут читать (я-то со своей книгой вообще завяз и дописать всё не могу), но меня пугает количество ИИ-текстов, что нынче стало на портале. Слишком много. Согласен, Яндекс-нейродетектор, как и любой ИИ не идеален, возможно стоит при проверке текстов сразу 3-4 использовать нейродектора, возможно вообще это бессмысленно, ибо после хорошей правки текста после ИИ человеком, нейродетекторы обычно показывают маленький процент. И я не спорю с тем что, хороший ИИ пишет в среднем лучше обычного человека, это так. Но просто ИИ-текстов становится много, чересчур много, горшочек не вари, в них пишут не только книги, но и отзывы, рецензии, комментарии, блоги, и выходит, что люди пишут книги с ИИ, им пишут другие люди рецензии с ИИ, а потом они в комментарихя друг дргугу тоже отвечают с ИИ.
И куда это всё катится - мне лично не понятно.

