Upgrade to Pro — share decks privately, control downloads, hide ads and more …

VLMで2.3万枚のPyCon JP写真を検索!

VLMで2.3万枚のPyCon JP写真を検索!

VLMで2.3万枚のPyCon JP写真を検索!

「PyCon JP 2026」 2026年8月21日

– 無料クラウド枠で実用的なマルチモーダル&顔認識検索システムを構築した裏側 –
Python Asia Organization Founder and Board member / PSF Fellow

株式会社CMSコミュニケーションズ
代表取締役 寺田 学 (Manabu TERADA)

Avatar for Manabu TERADA

Manabu TERADA

August 21, 2026

More Decks by Manabu TERADA

Other Decks in Technology

Transcript

  1. 「PyCon JP 2026」 2026年8月21日 VLMで2.3万枚 PyCon JP写真を検索! – 無料クラウド枠で実用的なマルチモーダル&顔認 識検索システムを構築した裏側

    – Python Asia Organization Founder and Board member / PSF Fellow 株式会社CMSコミュニケーションズ 代表取締役 寺田 学 (Manabu TERADA) copyright © 2026 CMS Comunications Inc. all rights reserved.
  2. 自己紹介 寺田 学 (Manabu TERADA) • Pythonエンジニア -> ベクトル検索研究家 •

    Podcast 「terapyon channel」(https://podcast.terapyon.net) • 主な関連書籍(共著・監修・監訳) ◦ Python実践レシピ改訂新版 (技術評論社: 2026年3月) ◦ Pythonによるあたらしいデータ分析 ◦ Pythonデータ分析 実践ハンドブック (インプレス: 2023年9月) ◦ スラスラわかる Python第2版(翔泳社:2021年11月) ◦ 機械学習図鑑(翔泳社 : 2019年4月) copyright © 2026 CMS Comunications Inc. all rights reserved. 教科書第 3版(翔泳社:2025年5月)
  3. 主な役職 寺田 学 (Manabu TERADA) PyCon JP 2026シルバースポンサー 株式会社 CMSコミュニケーションズ

    代表取締役 • Python Asia Organization Founder and Board member • Python Software Foundation (PSF) Fellow • 一般社団法人Pythonエンジニア育成推進協会顧問理事 • 国立大学法人一橋大学 社会学研究科 元客員准教授(2022) • 元 PyCon JP Association理事 • NVDA日本語チーム理事 copyright © 2026 CMS Comunications Inc. all rights reserved.
  4. トーク 補助 ベクトル検索と • 理解を助ける薄い本 【なぜ「意味」でさがす か】 ◦ 本日、無料配布します。 2026年4月・5月ベクトル検索

    記事 • Pythonによるベクトル検索 基礎と実践: https://gihyo.jp/article/2026/04/monthly-python-2604 • Pythonマルチモーダル検索とANN: https://gihyo.jp/article/2026/05/monthly-python-2605 copyright © 2026 CMS Comunications Inc. all rights reserved.
  5. • PyCon JP 23,000枚 • 無料枠へ 写真を検索 こだわり • 技術的な工夫

    深掘り 3つ • 検索技術を再確認 • ベクトル検索 現状 課題 • ベクトル診断とそ 他 例 copyright © 2026 CMS Comunications Inc. all rights reserved.
  6. PyCon JP 写真を検索 • 画像共有サイト(Flickr)にある約23,000枚 写真 ◦ https://www.flickr.com/photos/pyconjp/albums ◦ ライセンス

    自由に使える (CC-BY PyCon JP) • テキスト文字列で検索できないか? copyright © 2026 CMS Comunications Inc. all rights reserved.
  7. PyCon JP Image Search 機能 • 自然言語で画像を検索 ◦ アノテーション文字列を検索していない(VLM利用) •

    画像から似た画像を抽出 • 顔認識し同一人物を検索 • イベント(開催年)など フィルタリング • PyCon JP運営/主催メンバー み利用可能 イベント広報やあ copyright © 2026 CMS Comunications Inc. all rights reserved. 時に写真にたどり着く
  8. PyCon JP Image Search 規模 • 利用者: 10人程度に想定(アカウント • 画像数:

    約23,000枚 • 顔認識: 約70,000個 100程度) 小規模なシステム アプリ コード 公開済み (実験コードも含めて) https://github.com/pyconjp/pyconjp-image-search copyright © 2026 CMS Comunications Inc. all rights reserved.
  9. 無料で提供したい • Python Web UIフレームワークで なく、 ◦ Gradio / Streamlit

    で最初作ったが・・・ ◦ Webアプリとして公開したい • コミュニティー向けであること • どれだけ使われるかわからない 制約条件を厳しく設定 copyright © 2026 CMS Comunications Inc. all rights reserved.
  10. Google Firebase無料枠 • • • • Google PaaS(クラウドサービス) Firebase Hosting:

    無料枠あり DB - Firestore: 無料枠あり Functionsが無料で 使えない copyright © 2026 CMS Comunications Inc. all rights reserved.
  11. Firebase Hosting無料枠 • 利用者が少なけれ 問題ない • 大きなファイル ダウンロードをすると無料枠を超える ◦ ベクトルをDuckDBなどで配布することができない

    ◦ (DuckDB WASMで NG) • 料金プラン ◦ ストレージ: 10 GB ◦ データ転送: 360 MB/日 ◦ https://firebase.google.com/pricing?hl=ja copyright © 2026 CMS Comunications Inc. all rights reserved.
  12. Firebase Firestore無料枠 • クエリ単位で課金 • ベクトル永続化が可能 • 料金プラン ◦ Stored

    data: 1 GiB total ◦ ドキュメント 読み取り: 50K reads/day ◦ https://firebase.google.com/pricing?hl=ja copyright © 2026 CMS Comunications Inc. all rights reserved.
  13. Firebase Functions無料枠 • 有料課金を登録しないと利用不可 • クエリベクトルをEmbeddingするに • Functions以外 選択肢を模索 クエリ側

    CPUリソース必要 Embeddingするリソース忘れがち copyright © 2026 CMS Comunications Inc. all rights reserved.
  14. 利用技術 ホスティング Firebase Hosting Embeddingモデル Google Siglip 2 データベース Firestore

    近似近傍検索(ANN) 独自工夫+Firestore 認証 Firebase Authentication データ整形 / ベクトル化 Python / CUDA copyright © 2026 CMS Comunications Inc. all rights reserved.
  15. 技術的な工夫 深掘り 3つ Embedding / ANN / DB copyright ©

    2026 CMS Comunications Inc. all rights reserved.
  16. 画像検索 Embedding (モデル選定 ) • VLMモデル 比較 ◦ OpenAI CLIP

    ◦ Google SigLIP ◦ 他 copyright © 2026 CMS Comunications Inc. all rights reserved.
  17. 顔認識及び Embedding (モデル選定 ) • InsightFaceフレームワーク 活用 • 十分な機能、認識力、ベクトル表現 •

    ArcFaceを使った https://github.com/cmscom/image-vector-poc/blob/main/notebooks/51-face-detection-insightface.ipynb • • • • InsightFace (buffalo_l) で顔検出・Embedding抽出・属性推定が正常動作 各カテゴリ 顔検出特性を把握 ArcFace 512次元 Embedding 正規化済み (ノルム ≈ 1.0) 同一人物 (terada) Embedding 高いコサイン類似度を示す copyright © 2026 CMS Comunications Inc. all rights reserved.
  18. Embedding をどこでやるか ? (リソース ) • • • • 画像が増えない(アップロード機能なし)

    ローカルGPUでEmbeddingし、parquetで管理 メタデータなどを含めてDuckDBを活用 クエリ 時が課題としてど リソースを使うか? ◦ ブラウザでEmbeddingできないか? copyright © 2026 CMS Comunications Inc. all rights reserved.
  19. ブラウザで Embedding • Transformers.js 活用 • ONNXモデル 存在確認 ◦ onnx-community/siglip2-base-patch16-224-ONNX

    • PythonでPyTorch ベクトルと同じになるか? • 両モデル(画像検索用と顔画像用)で問題ないことを確認 ◦ OpenAI CLIP ・・日本語がちょっと良くなかった ◦ Google SigLIP ・・ONNXでNG ◦ Google SigLIP 2 (google/siglip2-base-patch16-224 768次元) copyright © 2026 CMS Comunications Inc. all rights reserved.
  20. ブラウザで Embedding VLM 確認 別プロジェクトで検証: https://github.com/cmscom/image-vector-poc/blob/main/notebooks/31-js-setup-and-embedding.ipynb https://github.com/cmscom/image-vector-poc/blob/main/notebooks/64-siglip2-js-embedding.ipynb SigLIP 2 fp32

    • • Python-JS 類似度 0.924 で SigLIP 1 (0.906) より高い PIL (Python) と Sharp (JS) 画像前処理 差異があっても、0.924 高い類似度 CLIP-L (0.872) よりも大幅に高い互換性 → SigLIP 2 Python で事前計算、JS で検索というユースケースに適している …. SigLIP 1 と 速度差 • 小さい Python GPU (4.2 img/s) と比較しても差 copyright © 2026 CMS Comunications Inc. all rights reserved. 小さく、Node.js でも十分実用的
  21. FirestoreでkNN 費用 • コストが気になる・・・ ◦ 1回 検索コストがベクトル数 1 / 100

    reads ◦ 70Kベクトルあると、 70K / 100 -> 700 reads ◦ 1日 無料枠 50K reads ◦ つまり、約71回 検索で1日分を消費 ◦ (プラス実データ) copyright © 2026 CMS Comunications Inc. all rights reserved.
  22. Firestoreで独自 ANN • IVF / Voronoi分割をして、事前枝刈りできないか? ◦ 1/10程度にすれ コストも1/10になる •

    事前学習した256分割 セントロイド点を作る • Firestoreに、ベクトル毎に2個を点(ID)をアサインする • ブラウザでクエリベクトル セントロイド所属 ID取得 • 上位5までクエリベクトル セントロイドIDとOR検索 copyright © 2026 CMS Comunications Inc. all rights reserved.
  23. • PyCon JP 23,000枚 • 無料枠へ 写真を検索 こだわり • 技術的な工夫

    深掘り 3つ • 検索技術を再確認 • ベクトル検索 現状 課題 • ベクトル診断とそ 他 例 copyright © 2026 CMS Comunications Inc. all rights reserved.
  24. そもそも検索と • • • • • 検索って何やっている ? キーワード検索 場合

    ? ベクトル検索に置き換えると? 画像検索に置き換えると? そ 他 工夫 copyright © 2026 CMS Comunications Inc. all rights reserved.
  25. ANNとDB 関係 • ベクトルDBに 、ANN 機能が付いている • HNSW / IVF系などがある

    • Firestore 専用 ベクトルDBで ない で少量にしか使えな い ◦ 工夫をすることである程度 データ量まで対応できた ◦ IVF 考え方 別 DBへ 応用、超大規模10億件(1B)とか に応用可能 copyright © 2026 CMS Comunications Inc. all rights reserved.
  26. ベクトル検索で DBで行う2つが関連 • マッチング ◦ 探したい対象 物か? • ランキング ◦

    順位付けをどうするか? 完全一致 なく、マッチングとランキング バランス copyright © 2026 CMS Comunications Inc. all rights reserved.
  27. ベクトル検索で 、ベクトル 近傍をみる • ベクトルが数値的に近いとか似ているという評価 • そ 評価が目的 タスクと合っているか? •

    どうやって評価すべきか? 検索 ランキング タスクベースにするに copyright © 2026 CMS Comunications Inc. all rights reserved. 別 奥が深い。 評価指標も用いる
  28. ベクトル検索 メタデータフィルター • 事前フィルター出来るか? ◦ HNSW アルゴリズム的に事前に間引きにくい • 事後フィルターで良い か?

    ◦ フィルター条件が厳しい場合にTop-500に候補がある? 製品毎にさまざまな工夫がされている copyright © 2026 CMS Comunications Inc. all rights reserved.
  29. トーク 後 ディスカッション • 同様に画像検索や顔認識をやってみたいという人と話して、公 開コードを見ながらポイントを示したい • VLMモデル 選定方法や実際に行ったPoC前 事前検証方法

    を、別途個人で公開しているNotebookを元に紹介やディスカッ ションしたい • ベクトル検索 詳しい人とベクトル 近似最近傍検索 現状と 課題について、無料枠で 限界など 苦労話をしたい copyright © 2026 CMS Comunications Inc. all rights reserved.
  30. トーク 補助 ベクトル検索と • 理解を助ける薄い本 【なぜ「意味」でさがす か】 ◦ 本日、無料配布します。 2026年4月・5月ベクトル検索

    記事 • Pythonによるベクトル検索 基礎と実践: https://gihyo.jp/article/2026/04/monthly-python-2604 • Pythonマルチモーダル検索とANN: https://gihyo.jp/article/2026/05/monthly-python-2605 copyright © 2026 CMS Comunications Inc. all rights reserved.
  31. リファレンス • • • • • • GitHub コード: https://github.com/pyconjp/pyconjp-image-search

    GitHub PoC: https://github.com/cmscom/image-vector-poc 記事: https://gihyo.jp/article/2026/04/monthly-python-2604 記事: https://gihyo.jp/article/2026/05/monthly-python-2605 ベクトル診断アプリ: https://vectorcheckup.cmscom.jp/ 相談窓口: https://vector.cmscom.jp copyright © 2026 CMS Comunications Inc. all rights reserved.