どのモデルも、その裏にあるデータへの賭けです。ゼロからの事前学習であれ、特定分野へのファインチューニングであれ、検索用コーパスの構築であれ、評価セットの作成であれ、ウェブから収集するデータの質と広さが、モデルにできることの上限を決めます。そして、モデルが必要とする規模で、何百万ページ、多くの地域にわたってウェブデータを収集しようとすると、大規模クローラーが必ず直面する同じインフラ上の問題にぶつかります。IPごとのレート制限、地域によって変わるコンテンツ、そして自動クローラーらしきものを次々とブロックするサイトの増加です。レジデンシャルプロキシは、そのクロールを可能にする収集レイヤーであり、本稿ではそれがどこに当てはまるか、そしてそれだけでは解決しない部分、AI用データにおいては通常より重要になる部分について取り上げます。
AIチームが実際に収集しているもの
収集の形は目的によって変わります。事前学習および継続的事前学習用のコーパスは、公開ウェブの広い範囲にわたる、大量かつ幅広いテキストの取得です。分野特化のファインチューニングはより狭く深く、タスクにとって重要なサイトを対象に絞ったクロールになります。RAGシステム用の検索コーパスは、インデックスが古びないようにスケジュールに沿って厳選・更新されます。評価用およびベンチマーク用セットはより小規模ですが、代表性があり、かつクリーンである必要があります。マルチモーダルの作業では、テキストに加えて画像などのアセットも必要になります。これらすべてに共通しているのは、その下にある収集レイヤーです。実際に存在する場所から、多くの公開ページを確実に取得することです。このレイヤーは、その上に何を積むかにかかわらず同じであり、本稿の残りの部分はこのレイヤーについて述べます。
規模:なぜ1つのIPではウェブをクロールできないのか
ウェブは、単一のアドレスが何百万ページも取得することを望んでいません。ほとんどのサイトはIPごとのレート制限を課しており、すべてを1か所から送信するクローラーは数分以内にスロットリングされ、その後ブロックされ、クロールはモデルが必要とする量にはるかに届かないところで停止します。制限が緩やかな場合でも、1つの接続は、何百万件もの文書からなるコーパスに対してはボトルネックになります。
クロールを多数のレジデンシャルIPに分散させることで、細々とした流れがコーパスへと変わります。各IPは自身のIPごとの制限内に無理なく収まりつつ、合計スループットはプール全体でスケールします。これはあらゆる大規模収集者が依拠するロードバランシングのロジックであり、無制限の同時接続が存在する理由でもあります。ここでの狙いは、どこか単一のサイトを圧倒することではなく、大規模で礼儀正しいクロールを、どの1つのアドレスからも通常程度のトラフィックしか見えないよう十分な数のアドレスに分散させることです。
代表性:コーパスの広さは収集元の広さに等しい
ここは学習データに特有で、間違いやすい部分です。モデルは与えられたデータの分布を学習するため、単一の場所だけから収集されたコーパスは、その場所から見えるウェブの断片をそのまま引き継ぎます。多くのサイトは地域によって異なるコンテンツを提供します。ローカライズされたページ、異なる言語、地域固有のカタログ、価格、在庫状況、時にはまったく異なるトップページなどです。単一の国からウェブをクロールすると、その国からは見えないものすべてを体系的にサンプリング不足にしてしまい、その偏りはモデルに組み込まれてしまいます。
国単位、そして重要な場合には都市単位のターゲティングを用いることで、各地域の実際のユーザーが目にするページのバージョンを収集できます。これにより、コーパスはクローラーがたまたま動いていた場所の偶然ではなく、実際に望む地理的・言語的な広がりを反映するようになります。多言語カバレッジや地域的なバランスが目標であるなら、これはあれば良いというものではなく、代表性のあるデータセットと偏ったデータセットを分ける決定的な差です。地域によって異なるコンテンツに正当な形で到達するジオターゲティングこそが、データに最初から広がりを組み込む方法です。
サイトのクローラー対策が強化される中でアクセスを維持する
サイトは自動収集に対して明らかに防御を強めており、その強化のかなりの部分はまさにAIクローラーを標的にしています。既知のデータセンターIP帯や明らかなボットの兆候はすぐにブロックされ、最大手のサイトの一部は、通常の人間の訪問者に見えないトラフィックをチャレンジしたり拒否したりするようになっています。データセンターのアドレスから実行されるクロールは、コンテンツの代わりにブロックやチャレンジページを返すことがますます増えています。
レジデンシャルプロキシはリクエストを実際の家庭用グレードのIPを経由させるため、各リクエストはデータセンターのサーバーではなく通常の訪問者のように見え、良好なレピュテーションを持つクリーンなアドレスは、フラグの付いたものがチャレンジされる場面でも通過します。ただし、それは必要条件であって十分条件ではありません。IPは入口を通してくれますが、その後は本物のクライアントらしく振る舞う必要があります。つまり、妥当なリクエスト頻度、ブロックを引き起こす兆候への誠実な対処、そして可能だからといって対象サイトを叩き続けないことです。目標は、クロールされたくないと決めたサイトを力で押し通ることではなく、ブラウザがするようなやり方で公開データを収集することです。
新鮮さ:コーパスは古びる
データセットはスナップショットであり、ウェブは動き続けます。特に検索用コーパスは、インデックスがその出典元の現在の状態を反映するよう、定期的な更新クロールを必要とし、継続的事前学習は新しいものを取り込むことに依存しています。そのため収集は一度きりの作業ではなく継続的なパイプラインとなり、継続的なパイプラインは時間とともに劣化していく経路を乗り越えて生き延びる必要があります。あるIPでブロック、タイムアウト、チャレンジを検知したら、そのルートを退役させ、新しいルートで継続します。これは、長時間稼働するクロールを生かし続けるフェイルオーバーのパターンです。これらすべてを盲目的に運用してはいけません。パイプラインを監視し、成功率、カバレッジ、出典元ごとのエラーパターンを見れば、対象がその防御を変更したのか、クロールの一部が静かに失敗しているのかが、次回の学習実行でデータ欠落として表面化する前にわかります。
責任を持って収集する
正直な話をしましょう。AI用データにおいてこれは選択肢ではありません。レジデンシャルプロキシは収集インフラであり、許可証ではありません。責任あるコーパス構築とは、公開データのみを収集し、各サイトのrobotsディレクティブと利用規約を尊重し、レート制限とバックオフをもって礼儀正しくクロールし、依存しているサイトを決して劣化させないことを意味します。技術的にページを取得できるかどうかとは別に、それと同じくらい重要なのが権利の問題です。データを収集できる能力と、そのデータで学習する権利は同じではありません。著作権、ライセンス、個人データに関する規則は、収集レイヤーの上に存在する現実の制約であり、それを正しく扱うのはチームの責任です。個人データや機微なデータは、法の範囲内で慎重に取り扱ってください。プロキシは公開ページに大規模にアクセスする「どうやって」を解決しますが、「何を」「してよいか」は依然としてあなた自身が下すべき判断であり、それを真剣に扱うことこそが、正当性のあるデータセットと法的責任問題を分ける違いです。
最小限の礼儀正しいクロール
ローテーティングプロキシは、クローラーからすると普通のプロキシのように見えます。ターゲティングはゲートウェイのユーザー名内で指定されるため、セッション識別子を持たない米国出口はリクエストごとにローテーションし、クロールをプール全体に分散させます。
import timeimport requests
PROXY = "http://customer-USERNAME-country-us:PASSWORD@p.shifter.io:443"proxies = {"http": PROXY, "https": PROXY}
def fetch(url): r = requests.get(url, proxies=proxies, timeout=20, headers={"User-Agent": "research-crawler/1.0"}) r.raise_for_status() return r.text
for url in urls: # your queue of public pages try: html = fetch(url) store(html) # persist for the corpus except requests.HTTPError: retry_later(url) # on a block or timeout, back off and requeue time.sleep(1.0) # be polite; do not hammer a single originキューを分散させて、単一のサイトが1つのIPからの集中的なアクセスを見ないようにし、エラーが起きた際は強引に再試行するのではなくバックオフしてください。多言語対応や地域カバレッジが必要な場合は、同じクロールを異なる国のターゲットで実行します。一般的なクライアントのパターンは、Pythonでのレジデンシャルプロキシの使い方のガイドから引き継がれます。コーパスがセッションの一貫性を保った複数ページの取得を必要とする場合には、スティッキーセッションがそのシーケンスの間、1つのIPを保持します。
まとめ
AIおよびLLMの学習用にウェブデータを収集する際の制約は3つです。単一のIPでは到達できないモデルが必要とする規模、単一の場所では捉えられない優れたコーパスが求める代表性、そしてデータセンターのアドレスではますます通過できなくなっている高まりつつあるアンチクローラー防御の壁です。レジデンシャルプロキシはこの3つすべてに応えます。クロールを大規模なプールに分散させ、各IPを礼儀正しく保ちながら合計をスケールさせる。国や都市をターゲティングして、コーパスに実際に望む地理と言語を反映させる。クリーンな家庭用グレードのIPを経由させて、リクエストを通常の訪問者のように見せる。そして監視付きのフェイルオーバーによって、継続的な更新クロールを止めずに実行し続ける。そのうえで、プロキシが解決しない部分を自分で行います。公開データのみを収集し、robotsと利用規約を尊重し、礼儀正しくクロールし、ライセンスとプライバシーは収集レイヤーの上、それらが本来あるべき場所に保っておくことです。
その収集レイヤーこそがレジデンシャルプロキシの役目であり、国・都市ターゲティングと、シーケンスが必要な場合のスティッキーセッションを備えた実際の家庭用グレードIPの大規模プールです。GB単位の課金により、実際に取得したデータ分だけを支払うことになり、これは特定分野に絞ったクロールから、何百万ページにも及ぶコーパスまで、幅広いワークロードに適合します。