1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ブラウザ完結のページ内AI検索を検証してみた

1
Last updated at Posted at 2026-07-09

はじめに

きっかけは、下記記事でした。

ブラウザのページ内で文字を検索するとき、普段は Ctrl+Fのような部分一致検索 で検索します。

しかし部分一致は、文字が一致していないとヒットしません。
できれば、下記はすべて同じものがヒットしてほしいです。

  • 「動作が重い」
  • 「反応が悪い」
  • 「遅い」

それがこの記事いわく、ブラウザ完結で実現可能とあるではありませんか。

そこで今回は、ブラウザだけで動作するページ内検索を検証してみました。
記事のモデルと合わせて下記4種類を比較しています。

  • キーワード検索
  • 日本語Embeddingモデル
  • 多言語Embeddingモデル
  • 記事のEmbeddingモデル

結果として、それぞれに違いが見えたので紹介します。

作ったもの

今回作った検証用はこちらです。

image.png

同じ検索語を4種類の検索へ同時に投げ、下記を横並びで比較します。

  • 検索結果
  • 検索時間
  • 初回ロード時間
  • Embedding生成速度
  • メモリ使用量

比較した対象は次の4つです。

方式 概要
ternlight mini 記事のモデル。英語専用
ruri-v3-30m 日本語特化モデル。transformers.jsを使用
multilingual-e5-small 多言語対応モデル。transformers.jsを使用
Keyword Search 通常の部分一致検索

比較に使用したもの

各モデル、意味で検索できるのは分かっていますが、
実際にはどれくらい検索できるのか、触ってみないと分かりません。
サンプル文章を用意し、様々な検索ワードで比較してみました。

※用意した文章は下記です。

[
  "ロトムくんは、家庭内のさまざまな機器と連携して動作する小型の会話デバイスです。電源を入れると自動的にWi-Fiへの接続を試みます。",
  "箱から取り出したら、まず底面のUSB-C端子に付属のケーブルを差し込み、コンセントに接続してください。電源ボタンは背面上部にあります。",
  "初期設定では、アプリの案内に従ってお使いの無線ネットワークのパスワードを入力します。接続がうまくいかない場合はルーターの近くでお試しください。",
  "反応が遅い、あるいは声をかけても返事をしないことがあります。多くの場合、本体の再起動で改善します。電源ボタンを10秒間押し続けると強制的に再起動します。",
  "音声がまったく認識されないときは、マイク部分がふさがれていないか、周囲がうるさすぎないかを確認してください。掃除機やテレビの音が大きいと聞き取りに失敗します。",
  "アプリ上で「オフライン」と表示され続ける場合は、通信環境に問題がある可能性があります。別のネットワークに切り替えるか、時間をおいて接続し直してください。",
  "商品が到着してから14日以内であれば、未使用にかぎり返品を受け付けています。送り返す際の配送料は、初期不良を除いてお客様のご負担となります。",
  "支払いはクレジットカードのほか、コンビニ払い、各種QRコード決済に対応しています。分割払いをご希望の場合は決済画面で回数を選択してください。",
  "購入から1年間はメーカー保証の対象です。自然故障の場合は無償で修理または交換します。落下や水濡れなどお客様の過失による破損は保証の範囲外です。",
  "録音した音声データは、応答の生成に使われたのち、既定では端末内でのみ処理されます。会話の内容が外部のサーバーに送られることはありません。",
  "小さなお子様の手の届く場所での使用にはご注意ください。ケーブルが首に巻きつく事故を防ぐため、配線は壁沿いにまとめてください。",
  "本体が汚れたときは、乾いたやわらかい布で軽く拭いてください。アルコールや研磨剤入りの洗剤は表面を傷めるため使用しないでください。",
  "スピーカーの網目にほこりがたまると音がこもることがあります。エアダスターなどで優しく吹き飛ばすときれいになります。",
  "The device pairs with home appliances over Wi-Fi. On first boot, set it up from the smartphone app.",
  "If it responds slowly or ignores your voice, restart it by holding the power button for ten seconds.",
  "You may return an unused item within 14 days of delivery. Return shipping is paid by the customer except for defects.",
  "Recorded audio is processed on-device by default and is never sent to an external server."
]

検証① 「反応が遅い」

まずは素直な検索です。

検索語

反応が遅い

結果はこちら。

image.png

ruri

期待通り

反応が遅い、あるいは声をかけても…

を1位表示。日本語モデルだけあって非常に自然です。
そして英語も候補にあげており優秀です。

e5

こちらも同じ文章を1位表示。十分高精度です。

Keyword

文字列が一致しているため当然ヒット。

ternlight

英語専用モデルなので日本語検索は苦手です。
関係ない文章が上位に出てしまいました。

比較結果

このケースでは 日本語検索なら Ruri が一番自然 という印象でした。

検証② 「動作が重い」

次はこちら。

動作が重い

image.png

ここからが今回の見せどころです。

本文には 動作が重い という文字列は存在しません。
書かれているのは 反応が遅い だけです。

それでもRuriとe5は 反応が遅い の文章を1位に表示しました。

つまり

動作が重い
≒
反応が遅い

という意味を理解できています。

※一方で、Keyword検索は当然0件です。

検証③ "Slow to respond"

今度は英語です。

Slow to respond

image.png

ここでついにternlightの出番です。英語専用モデルである ternlight

If it responds slowly...

を正しく1位表示しました。
英語だけを見るなら、5.5MBとは思えない精度です。

検証④ "It's running slowly"

最後はこちら。

It's running slowly

image.png

この検索も本文には

running slowly

という単語はありません。

存在するのは

responds slowly

だけです。
ここでもternlightが活躍するか..?と思いましたが、残念ながら0件でした。

まとめ

今回比較した印象をまとめました。

モデル 評価
ruri-v3-30m ★★★★☆ 日本語なら最有力。サイズ37M
multilingual-e5-small ★★☆☆☆ 日本語の次点。でもサイズ470Mはデカすぎ
ternlight ★★★☆☆ 英語検索なら優秀。でも日本語はだめ
Keyword ★★☆☆☆ 完全一致では最速

実際に比較してみると、それぞれに特徴があることがよく分かりました。
英語の検索であれば、ternlightとKeywordを組み合わせることで、軽量かつ優秀な検索を作れそうです。

今回のようにページで意味の近いものを検索できるようにすることで、
従来の部分一致検索だけでは拾えなかった領域をカバーでき、
検索体験を大きく改善できます。
サーバー側への問い合わせなく実現できるのも大きな魅力です。

ただ、日本語での精度が高いモデルのファイルサイズは、ブラウザ完結にするにはまだまだ大きいサイズです。
これからに期待だな..と思いました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?