← すべてのガイド 内部構造

なぜ検出器をブラウザ内で実行するのか

40 MBのモデル、WebAssembly、そしてアップロード先エンドポイントを設けない理由。このアーキテクチャが何をもたらし、どのような代償を払い、なぜその取引が価値あるものなのかを説明します。

· 8 分で読めます · Best AI Image Detector

画像がデバイスの外に出ることはありません。モデルは一度ダウンロードされるとマシン上で実行されるため、アップロード、サーバーコスト、データ処理に関する懸念を同時に解消します。

実際のアーキテクチャについて

Vision TransformerをONNXに変換し、約40 MBに圧縮したものです。ホスティングプラットフォームのファイルサイズ制限内に収まるよう2分割されています。ブラウザ内で再構成され、実行前にチェックサムが検証されます。

推論はWebAssemblyを通じて行われます。これにより、コンパイルされたランタイムがブラウザタブ内でネイティブに近い速度で実行可能です。ランタイム自体は、重みと共に読み込まれる圧縮されたWASMバイナリです。

これ自体はもはや特殊なことではありません。2021年には研究レベルのデモだったものが、現在ではモデルを出荷する標準的な方法となっており、ブラウザがそのほとんどを支えています。

もたらされる利点

物件 ブラウザ内 サーバー上
画像はデバイスから出る No 不可能 Yes 必要
チェックあたりのコスト Yes ゼロ No 実際の計算負荷
データ処理契約が必要 No Yes
読み込み後はネットワークなしで動作 Yes No
モデルを非公開に保てる No ダウンロードされる Yes
最初のチェックは即座に行われる No モデルは一度だけダウンロードされる Yes
同じ製品を2つの方法で構築した場合の比較です。違いはポリシー選択ではなく、アーキテクチャ上のものです。

最初の行が、他のすべての理由です。アップロード先エンドポイントが存在しないため、他人の写真が集まることもなく、保存ポリシーを作成する必要も、漏洩の開示も、要求に応じてデータを差し出す必要もありません。

2行目は、なぜ使用量制限なしで無料にできるのかの理由です。チェックにサーバーコストがかからないため、画像ごとのコストを回収する必要がなく、価格設定のあり方が根本から変わります。

代償について

3つの現実的なトレードオフを率直に述べます。利点だけを並べるページは広告に過ぎないからです。

  1. 最初のチェックは遅いです。 何かが起こる前に40 MBのデータが到着する必要があります。高速接続なら数秒ですが、低速な環境ではそれ以上かかります。以降のチェックではキャッシュされたモデルを再利用するため、すぐに開始されます。
  2. 古いデバイスでは動作が困難です。 推論にはメモリと処理能力が必要であり、5年前のスマートフォンでは快適に動作しない場合があります。サーバーであればデバイスを問いません。
  3. モデルは公開されています。 ブラウザにダウンロードされたものは保存可能です。サーバー側のモデルは独自技術として保護できますが、このモデルはそれができず、重みデータはそもそもオープンな研究用チェックポイントです。

3点目は率直に述べる価値があります。モデルをクライアントに配布するということは、それを公開するということです。ここでは重みデータが既に公開されているため、このトレードオフは許容範囲です。このツールを有用にするのは、その周辺に構築されたキャリブレーション、タイル分割、解釈の技術です。

知っておくべきエンジニアリング上の課題

巨大ファイルの分割

静的ホスティングプラットフォームは個別のファイルサイズに制限を設けています。40 MBのモデルはその制限を超えるため、決定論的な2つのパーツに分けて出荷されます。これらはブラウザ内で再構成され、使用前にマニフェストハッシュと照合されます。破損や置き換えが発生した場合は、誤ったスコアを生成するのではなく、エラーとして通知されます。

必要になるまで何も読み込まない

モデル、ランタイム、認証情報リーダーは、ページ読み込み時には取得されません。最初の実行時に初めて到着するため、記事を読むだけのユーザーは何もダウンロードしません。これにより、チェックを行わない大半の訪問者にとってページは高速に保たれます。

扱いにくいフォーマットのデコード

iPhoneのHEIC、AVIF、TIFF、JPEG XLなどは、スコアリングの前にデコードが必要です。現在ではブラウザがこれらをネイティブで処理するため、この種のツールにおけるクライアントサイドの作業の大部分が不要になりました。

このアーキテクチャが不適切な場合

常に最適とは限りません。モデルが独自の機密技術である場合、出荷するには大きすぎる場合、人ではなくバックエンドパイプラインで結果が必要な場合、あるいはデバイスに関係なく応答時間を保証する必要がある場合は、サーバー型の方が理にかなっています。

怪しい写真を1枚チェックするために人が開くツールであれば、それらの制約は適用されず、プライバシーの利点がサーバーで得られるすべてを上回ります。

この選択肢が除外するもの

クライアントサイドでの実行を選択することにはプライバシー以外の結果も伴います。それらの中には、機能ではなく制限と呼ぶべきものもあります。

履歴は残りません。結果は生成されたタブ内にのみ存在するため、エクスポートしない限り後で確認することはできません。これはアカウントを持たないことの直接的な代償であり、このアーキテクチャにおいて最も多く要望される不便な点です。

共有状態はありません。2人が同じキューを見ることはできず、チームでチェックを確認し合うこともできません。共有リンクは単一の結果を示すのみであり、ワークフロー全体ではなく会話の断片を扱うものです。

APIはありません。ブラウザタブ内で実行されるものはバックエンドパイプラインから呼び出すことができず、大量処理が必要な用途は完全に除外されます。これらは現実の欠点ですが、最も重要な性質を得るための対価として受け入れるのが誠実な立場です。

よくある質問

画像は本当にアップロードされていないのですか?
はい。これについては信頼に頼る必要はありません。開発者ツールのネットワークタブを開いてチェックを実行してください。モデルとランタイムがダウンロードされる様子は見えますが、ファイルが送信されるリクエストは存在しません。これはユーザーが約30秒で直接検証できる数少ないプライバシー主張の一つです。
なぜモデルはこれほど大きいのですか?
数百万のパラメータを持つVision Transformerであり、精度を損なわない範囲で最大限に圧縮されています。より小さなモデルも存在しますが、特に人々が実際にチェックする圧縮されトリミングされた画像において、性能が著しく低下します。40 MBは精度の代償です。
オフラインでも動作しますか?
最初の読み込み後は、概ね動作します。モデルがキャッシュされれば、ネットワークなしでスコアリングが実行可能です。唯一接続が必要なのは、ペーストされたURLから画像を取得する場合だけで、ローカルファイルのチェックはネットワークなしで機能します。
スマートフォンのバッテリーを消耗しますか?
1回のチェックは重いWebページを読み込むのと同程度の数秒の処理です。25回程度のバッチ処理を行えば影響は感じられますが、常時稼働させるものではなく、時折使用する分には無視できるコストです。
WebGPUを使って高速化することはできませんか?
サポートしているデバイスでは可能ですが、サポート状況が依然として不均一なため、いずれにせよWASMパスを維持する必要があります。2つ目の実行パスを追加すると、ユーザー間で結果が乖離する可能性のある表面積が倍増してしまいます。これは、ほとんどの人が気づかない程度の速度向上のために払うには大きなコストです。
ブラウザは画像について何か送信していますか?
いいえ。ファイル名、サイズ、スコアなどのテレメトリは存在しません。結果はあなたのタブの中にしか存在しないからです。これは設定によるものではなく、アーキテクチャの必然的な結果であり、理解しておくべき点です。