ShieldFont: Robots.txtを無視するAIスクレイパーを撃退する
原題: ShieldFont: Bludgeoning AI Scrapers that Disrespect Robots.txt
日本語訳
# タイトル
ShieldFont:robots.txtを無視するAIスクレイパーを打ち砕く
# 本文
World Wide Webがまだ穏やかだった頃は、ウェブサイトのルートディレクトリにrobots.txtファイルを置いておくだけで、検索エンジンのインデックス作成ボットなどがサイト所有者のインデックスに関する要望を確認してくれていた。しかし、LLM(大規模言語モデル)の学習データ収集が進むこの新たな世界では、そうした礼儀作法が尊重されることは稀であり、サイト所有者は、いわゆるAIスクレイパーを撃退するために、ますます複雑な手段に頼らざるを得なくなっている。ShieldFontはその最新の手法の一つである。
その基本的な仕組みはホワイトペーパーに詳しく記載されており、合字(リガチャ)の利用について説明されている。合字は通常、複数の書記素や文字を結合して、最終的なテキストとしてレンダリングされる単一のグリフを作成するために使用される。テキスト内の単語の約4分の1を、辞書に基づいたインテリジェントな方法でこのような合字ベースのバージョンに置き換えることで、スクレイパーが通常解析するHTML版は、文法的には正しいものの意味をなさないテキストとして読み取られる一方、レンダリングされたフォント版は正常に見えるようになる。
当然ながら、これにはデメリットもある。例えば、視覚障害者向けのスクリーンリーダーもレンダリングされたフォント版を使用する必要があることや、正当な検索エンジンのインデックス作成ボットに対しても同様に効果が働いてしまうことだ。とはいえ、これを静的なアーカイブコンテンツや、robots.txtで「do not follow」とマークされたコンテンツに適用すれば、「ピザに木工用接着剤をかける」や「石を食べる」といったAIの珍妙な回答の新鮮味が薄れてきた今、将来的にChatGPTなどのAIにおかしな出力を吐き出させるための一つの手段になるかもしれない。
LLMスクレイパーは、レンダリングされたテキストを解析することでこれに適応できるが、そうなるとスクレイピングのコストが大幅に増大する。無限にリンクされたページを通じて動的に生成されたコンテンツをスクレイピングさせ続け、スクレイパーを足止めしようとするNepenthesのような迷路トラップやCloudflareの提供するサービスとともに、これらスクレイパーの脅威に対抗するためのツールは進化し続けている。
原文(英語)を表示
In the more innocent days of the World Wide Web you could simply put a robots.txt
file in the root of your website that search engine indexing bots and similar would consult for the indexing wishes of the site owner. In this brave new world of LLM training data indexing such pleasantries are however rarely respected, leaving site owners to resort to increasingly more involved ways to bludgeon so-called AI scrapers, with ShieldFont being one of the most recent methods.
Its basic functioning is detailed in the white paper, explaining their use of ligatures. These are normally used to join multiple graphemes or letters into a single glyph which are rendered in the final text. By substituting about a quarter of the words in a text with such ligature-based versions in an intelligent, dictionary-based manner, the HTML version – as typically parsed by a scraper – will read as grammatically valid but nonsensical text, while the rendered font version will look normal.
Naturally, there are some disadvantages to this, such as screen readers for the visually impaired needing to also use the rendered font version, and it’s just as effective on legitimate search engine indexing bots. That said, if you apply this to static, archived content, or content marked as ‘do not follow’ in said robots.txt
, then it might just be one way to make ChatGPT and friends spit out really funny output in the future now that the novelty of wood glue on pizza and eating rocks has somewhat worn off.
While LLM scrapers can adapt to this by also parsing the rendered text, this makes the scraping effort significantly more expensive. Together with maze traps like Nepenthes and Cloudflare’s offerings that seek to keep these scrapers busy scraping dynamically generated content through infinite linked pages, the tools available to combat the menace of these scrapers keep developing.