AIを活用したスクレイピングを社内に導入してみた
AIでスクレイピング
AIを活用したスクレイピングというと、界隈ではFirecrawlが知名度を上げてきていますが、よりきめ細やかな制御を行いたかったこともあり、弊社LCLでは自前でAIスクレイピングの仕組みを作っています。
今回はその仕組みの説明はしませんが、導入に際して考えたことと導入後の所感・教訓を書くとします。
AI活用に対する疑念
AIを自社に導入する前に、「それってAIでやる必要ある?」、「精度は大丈夫?」という疑念がチーム内であり、それに対する私なりの考えを整理しました。
それってAIでやる必要ある?
この疑問に答える一つの方法は、AIを使用した場合とそうでない場合の「工数」や「コスト」を比較することです。
たとえば、生産量(スクレイピングするWebサイト数)と工数・コストの比例関係を、次のようなグラフで考えることができます。
AIを使用しない場合:工数は一貫したペースで増加し、コストも一緒に増大する。
AIを使用した場合:初期のコストは高いとしても、生産量が増えるにつれてコスト上のメリットが大きくなる。
このようにグラフで表すと、一定の生産量を超えたときにAIを使用する利点が明確になります。
ただし、この分岐点を細かい計算で算出するのは難しいこともあります。私の現場ではAIのコストと人的コストの見積もりを掛け合わせてアバウトにこの分岐点を算出しました。
コストを見積もる肌感を一番持っているのは開発者なので、開発者が主体的にコストを見積もってAIを活用する利点を提言していくのがスムーズかと思います。
精度は大丈夫?
結論から述べてしまうと、「100%を保証できるAIなんて存在しないが、従来の方法でやるよりマシ。」です。
スクレイピングでいう従来の方法とは、Webページをスクレイピングするコードを個別に書くことを指しますが、そもそもスクレイピングというのはWebページの仕様変更や想定外のケースに弱く、正確なデータの取得には不向きです。つまりAIを使わない場合でも100%の精度の保証は難しいものです。
もちろんAIでも100%の精度を保証できるわけではないですが、かなりケースバイケースなもので一元的にどちらが精度で勝るかを語るのは難しいと思います。
とはいえ精度の問題を蔑ろにすることはできず、以下のような仕組みを取り入れることで精度への不安感を軽減しました。
- スクレイピングした結果を事前に目視で検査する
- 明らかにおかしいデータはアラートする
- プロンプトの調整やモデルの変更を簡単にできるようにする
良かった点
工数削減効果
まずはスクレイピングの実装工数を大きく下げられた(90%減)のが一番良かったです。
初期の実装コストもそうですが、スクレイピングの調整もプロンプトを少しいじるだけでなんとかなるケースも多く、ストレスがとても少ないです。
データ抽出の網羅性アップ
また、従来の方法によるスクレイピングだと情報の抽出が難しいケースにもAIだと抽出できるケースもあり、取得可能なデータの幅が広がりました。
例えば、「八重洲中央口改札に7時20分に集合」という文字列から集合場所の駅名を取得したい場合、従来の方法だと上手くジオコーディングするなどの工夫が必要とありますが、AIだと何もしなくとも「東京駅」と判断することが可能になります。
AIに対する抵抗感軽減
AIを使って大量のデータを抽出するような仕組みは社内で初めての導入だったため、導入前はやはり精度やコストに関して結構な懸念がチーム内であったかと思いますが、今回のAIスクレイピングの導入が試金石となりAIを活用していくハードルが下がったのではないかと思います。
まだ実行できてはいませんが、他にもデータの名寄せやテキストからの情報抽出など、AIでできそうなアイデアを現実味を持って発言できる風土になってきていると感じます。
改善点
前述した精度の問題に対する、
スクレイピングした結果を事前に目視で検査する
この作業が想像以上に大変でした。
「目視確認 → 問題あり → プロンプトの調整 → スクレイピング再実行」 というサイクルをひたすらに行うのですが、コストの安いモデルだと問題ありのケースもそれなりに発生し、最終OKになるまで数日かかるケースもありました。
ここはAIモデルの進化と低コスト化が進めば、調整の回数も減ってくるのではと期待しています。(Gemini 2.0のGA待ってます)
最後に
AIを使った事例としてスクレイピングへの活用をご紹介しました。
ほんの1〜2年前までは精度とコストの問題からスクレイピングへのAI活用はまだ時期尚早と思っていたのですが、あっという間に時代は変わりましたね。
生成AIの精度向上も技術的革新がない限り近い内サチるとも思っていましたが、まだ全然そんな感じでもなくどんどん新しいモデルが登場し続けているので、今後更に活用可能な幅が広がっていくのを期待しています。
Discussion
とても興味深い記事でした。スクレイピングの実装方法の検討を私が行っており、AIを活用したスクレイピング経験談が共有されていて大変参考になりました。ありがとうございます。