はじめに
AWSは、アメリカを拠点とするAIスタートアップのPerplexityに対して、クロールを望まないウェブサイトのコンテンツをクロールしていた件について、調査を開始しました。
上記WIREDのブログ記事を踏まえて、WIREDはrobots.txtのファイルを使用してPerplexityのクローラーをブロックしているのにもかかわらず、Perplexityは非公開のIPアドレスを使用してサーバーにアクセスし、過去3カ月間に少なくとも数百回もスクレイピングしていたことが追求されています。
2024年も生成AIに関して話題が尽きませんが、本記事ではrobots.txtファイルを使用してAIクローラーをブロックする方法について記載しています。
OpenAI
OpenAIでは、Webクロールとブラウジング用に2つのユーザーエージェントが存在し、それぞれ独自のCIDRとIPアドレス範囲があるため、ご注意ください。
Bot
GPTBotのユーザーエージェントによって、クロールされたWebページは、将来のモデルを改善するために使用される可能性があります。
ChatGPT-Userについては、プラグインによって使用されます。このユーザーエージェントは、ChatGPT ユーザーに代わって直接アクションを実行するためにのみ使用され、自動的にWebをクロールするためには使用されません。
GPTBotのIPアドレス範囲は、gptbot-ranges.txtから確認できます。ChatGPT-Userについては、IP egress rangesをご参照ください。
以下は、筆者が運用しているWebサーバのアクセスログよりGPTBotからアクセスされた出力例です。
52.230.152.148 - - [04/Jul/2024:11:26:52 +0900] "GET /robots.txt HTTP/1.1" 200 77 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)"
robots.txt
OpenAIをブロックするためには、robots.txt
ファイルに以下の設定を追加します。
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
Perplexity
Perplexityは、Webクローラーを使用してインターネットから情報を収集し、検索エンジン用にインデックスを作成します。
Bot
PerplexityBotの情報を基に識別できます。
IPアドレス範囲は、perplexitybot.jsonから確認できますが、Perplexityはrobots.txt
ファイルを無視してファイアウォールを回避していたとのことです。
perplexitybot.jsonで公表していないIPアドレスを持つサーバ上で稼働している自動Webブラウザーを使用していたと言われています。
robots.txt
Perplexityをブロックするためには、robots.txt
ファイルに以下の設定を追加します。
User-agent: PerplexityBot
Disallow: /
2023年9月28日、Webパブリッシャー向けに、コンテンツへのアクセスを制御する機能として、Google-Extendedが提供されています。
Bot
Googleクローラーとフェッチャーが使用するユーザーエージェントは、Google クローラーとフェッチャーの概要(ユーザー エージェント)から確認できます。
Googleについては、BotをブロックするためのCIDRやIPアドレス範囲の情報を提供していません。
robots.txt
GeminiアプリとVertex AIをブロックするためには、robots.txt
ファイルに以下の設定を追加します。
User-agent: Google-Extended
Disallow: /
おわりに
生成AIを使うことも大事ですが、許可なくデータを使用してモデルをトレーニングされないようにするための知識を身に付けておくことも重要です。
なお、robots.txtはクローラーの巡回を制御するための方法になるため、クローラーによってはPerplexityの様に無視するクローラーも存在するため、必要によってはファイアウォールの設定などの検討が必要です。