コンテンツにスキップ

Blog

CMScomLabの活動記録や技術記事などのブログです。

PyCon JP 2026でベクトル検索を発表し、対話から見えたこと

2026年8月21日から23日まで、広島で開催されたPyCon JP 2026に参加しました。カンファレンスでは、2.3万枚を超える写真を検索するシステムについて発表し、最終日のSprintでは初心者向けのベクトル検索レクチャーを行いました。

今回のPyCon JPは、これまで進めてきた画像検索、ANN、ベクトルの診断、検索品質の評価について、実際に動くものとともに紹介する機会になりました。それ以上に印象に残ったのは、質疑応答、個別相談、オープンスペースを通じて、参加者の皆さんが感じている疑問を直接聞けたことです。

登壇そのものについては、会社公式サイトのPyCon JP 2026登壇報告でも紹介しています。本記事ではCMScomLabとして、会場でどのような対話があり、そこから何が見えたのかを報告します。

ベクトルの特徴を知る「Vector Search Checkup」を公開しました

Embeddingモデルから生成したベクトルは、モデルやデータによって異なる特徴を持っています。その特徴を知らないままベクトルDBや検索方法を選び、量子化を進めてよいのでしょうか。

今回、手元のベクトルをブラウザー上で診断できるVector Search Checkupをβ公開しました。Embedding空間の分布や幾何学的な特徴を数値と図で確認し、次に何を検証するかを考えるためのツールです。

ここでいう「診断」は、ベクトルの良し悪しを判定するものではありません。まず特徴を知り、その結果を手がかりに、用途や制約に合った検索を一緒に作り、改善していくための出発点です。

ベクトルが近いだけでは、良い検索とは限らない

ベクトル検索では、検索文や画像をEmbeddingモデルでベクトルに変換し、近いベクトルを検索結果として取り出します。それでは、最も近いベクトルを正しく取得できれば、良い検索になったと言えるのでしょうか。

ベクトルの近さは重要ですが、それだけで利用者が欲しい結果になるとは限りません。良い検索を作るには、ベクトル空間での近さと、検索結果としての良さを分けて評価する必要があります。

今回は、画像検索を例に、この二つの違いと検索結果の評価方法を整理します。

ベクトル検索のPoCはデータ準備から始まる

前回の記事では、PyCon JP 2026の画像検索トークに向けて、Embedding、マルチモーダル検索、ANNの流れを紹介しました。

こうした技術を自社の検索へ取り入れるには、EmbeddingモデルやVector DB、検索方法の選択が重要です。一方で、実際のPoC(概念実証)では、もう一つ忘れてはいけないことがあります。それが、「何を、どのように探したいのか」と「評価できるデータがあるか」の整理です。

検索技術の検証に目が向くと、その土台となるデータの確認は後回しになりがちです。しかし、データの状態や評価方法によって、選ぶ技術やPoCの進め方も変わります。

今回は、ベクトル検索のPoCを始める前に整理したい5つのことを、実践的な例とともに紹介します。

PyCon JP 2026の画像検索トークを楽しむための予習ガイド

8月21日(金)、広島で開催されるPyCon JP 2026で、2.3万枚を超える写真の画像検索システムについて登壇します。トークのレベルは上級ですが、ベクトル検索を初めて知る方にも、実際に動くシステムへ至る流れを楽しんでもらいたいと考えています。

そこで今回は、トークを聞く前に知っておくと理解しやすい用語と、これまでに公開した記事を読む順番をまとめます。すべての仕組みを事前に理解する必要はありません。まずは、何をベクトルにして、どのように近いものを探しているのかをつかめれば十分です。

200を超える実験Notebookを支えるSAENMの実践

以前、実験の過程を時系列で積み重ねていく研究運用モデルとして、SAENM(セーンモデル)を紹介しました。その後も複数の研究やPoCで実践を続け、現在進めている非公開のベクトル検索研究では、Notebookが200を超えています。

今回は、SAENMを実際の研究でどのように使ってきたのか、公開しているプロジェクトの例も交えて紹介します。

NumPyのint8行列積をRustで高速化し、20環境で検証しました

ベクトル検索の研究では、検索精度だけでなく、量子化したベクトルをCPU上でどのように計算するかも重要になります。

現在進めているベクトル検索 ANNプロジェクトの一環として、NumPyでは期待した速度が出なかったint8行列積をRustで実装しました。さらに、CPUごとに適した命令を選ぶ仕組みと環境別のwheelビルドを整え、20の実行環境で動作と性能を確認しました。

VC/VPの考え方を参考に、独自の社員証アプリを作りました

Verifiable Credentials(VC)とVerifiable Presentations(VP)の考え方を参考に、本人承認と項目単位の情報開示を取り入れた独自の社員証アプリを作りました。

最初に明記しておくと、このアプリはW3C VC Data ModelやOpenID4VPに準拠した実装ではありません。VC/VPが目指している役割分担や提示の考え方から、私たちの社員証に必要な部分を取り出し、中央のバックエンドを信頼点とする独自方式で実装したものです。

PyCon JP 2026で画像検索システムの裏側を話します

2026年8月21日から、広島でPyCon JP 2026が開催されます。会場は広島国際会議場で、カンファレンスは8月21日(金)と22日(土)の2日間です。

私にとってPyCon JPは長く関わってきたホームともいえる場所です。今年はスピーカーとして、実際に構築した画像検索システムの裏側を紹介します。また、株式会社CMSコミュニケーションズとしてシルバースポンサーにもなっています。

800件から1,000万件へ、Voronoi分割の研究を続けています

ブログを再開するにあたって、3月に公開したPloneサイト実データでのベクトル検索アルゴリズム比較を読み返しました。

当時は約800件のデータを使った実験でした。それから研究を続け、現在は最大1,000万件、5種類以上のEmbeddingモデルを使った検証まで進んでいます。