#daiizメモ

Cosenseに夢中

Phonno史(前編)

金曜日、社内のイベントでLTして個人開発の進捗を披露した。

scrapbox.io

Phonno史(前編)

2年くらい細々と開発を続けてきて知見が溜まってきている。ここまで長期なプロジェクトは自分にしては珍しいので歴史を簡単に振り返っておきたい。

  • 自分のための写真検索システムとして開発開始
    • Google Photosの写真を取り込んでスタート
    • 写真に対して漠然とコメントを書くのは粒度の統一が難しいけれど、好きな場所をアノテーションして説明を書くといい感じに捗ることに気づいた。
    • クロップした領域の画像をサーチボックスでクエリとしてサジェストする(画像IMEとも呼べる?)ことで商品や風景を言葉にすることなく検索できるようになった。
      • 最近はGoogle Lensという強敵がいる。これよりも先に実用化できていたのは自慢できるかもしれない。
  • 写真以外の画像も混ぜる
    • スクリーンショットも取り込むと予想通り面白い
      • 書籍のページ画像から実世界の写真を探せたりする
      • 画像そのものがリンクとして機能しているような感覚がある
    • 事実上、写真のみならず任意の画像に対応できた
      • PDFファイルもバラせばページ画像の集まりとみなせるので対応できるということ
    • 自分が所有する画像を定期的に取り込むスクリプトを書いてCloud Run jobsで動かす
  • LLMの台頭
    • ここまでは古典的な自然言語処理で実現していた。ようやくElasticsearchの扱いに慣れてきたところで、世間では大規模言語モデルとベクトル検索が盛り上がり始めた。まだキャッチアップしきれていない。題材としては絶対に向いているので早く移行を完了させたい。
    • 画像を検索して提示するだけでなく、サマリーを生成できるようになった。やはり情報を文字として摂取できると満足感がある。たくさんの画像がヒットする賑やかさと文章で表現する知的さ、情報密度の高さのバランスを考え始めた。
  • ここまでの開発記を本にまとめた
  • 閲覧中のウェブページに関連する知識を探す
    • すでに自然言語と画像をクエリにできるようになっているが、もっと検索の接点を広げたい
    • 「いま見ているもの」をトリガーにして過去に見たものを発見できたらいいのではないか
    • Bookmarkletを使った実験
      • ウェブページ全体をクエリとして解釈する
    • Chrome拡張機能のsidePanelを使った実験
      • ウェブのドキュメントをきっかけとして現実世界でGeminiと出会った瞬間がわかる例