Vector Database
ベクトルデータベースがセマンティック検索のために高次元埋め込みを管理する仕組みを解説します。Ultralytics YOLO26と類似度検索を活用してAIアプリを実現する方法を学びます。
ベクトルデータベースは、高次元のベクトルデータ(一般に埋め込みと呼ばれます)を管理、インデックス化、クエリ処理するために設計された専用ストレージシステムです。リレーショナルデータベースは、構造化データを行と列に整理してキーワードの完全一致を行うのに対し、ベクトルデータベースはセマンティック検索に最適化されています。これにより、インテリジェントシステムは同一のデータではなく、概念的に類似したデータポイントを見つけられます。この機能は、現代の人工知能 (AI)インフラストラクチャの基盤であり、画像、音声、動画、テキストなどの非構造化データ間の数学的な関係を分析することで、アプリケーションによる処理と理解を可能にします。これらのデータベースはインテリジェントエージェントの長期記憶として機能し、ビジュアル検索やパーソナライズされたレコメンデーションなどのタスクを支援します。
ベクトルデータベースの仕組み#
ベクトルデータベースの機能は、データ項目を多次元座標系上の点としてマッピングするベクトル空間の概念を中心に構成されています。プロセスは特徴抽出から始まり、ディープラーニング (DL)モデルが生の入力を数値ベクトルに変換します。
-
取り込み: データは、最先端のYOLO26などのニューラルネットワークによって処理され、埋め込みが生成されます。これらのベクトルは、入力のセマンティックな意味を浮動小数点数の密なリストに圧縮します。
-
インデックス作成: 検索時の推論レイテンシを低く抑えるため、データベースは専用アルゴリズムを使用してこれらのベクトルを整理します。階層型ナビゲーション可能スモールワールド (HNSW)や反転ファイルインデックス (IVF)などの手法により、すべてのエントリを1件ずつスキャンすることなく、システムは数十億のベクトルを効率的に探索できます。
-
クエリ処理: ユーザーが検索クエリ(例: 特定の靴のスタイルの画像)を送信すると、システムはクエリをベクトルに変換し、コサイン類似度やユークリッド距離などの距離指標を使用して、保存されているベクトルとの近さを計算します。
-
検索: データベースは、文脈的に最も関連性の高い結果を表す「最近傍」を返します。
次の Python スニペットは、ベクトルデータベースにデータを格納する前提手順となる、標準の ultralytics モデルを使用した埋め込みの生成方法を示します。
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Generate feature embeddings for an image file
# The 'embed' method creates the vector representation needed for the database
results = model.embed("https://ultralytics.com/images/bus.jpg")
# Output the shape of the resulting embedding vector
print(f"Embedding vector shape: {results[0].shape}")実世界での利用例#
ベクトルデータベースは、現在エンタープライズ環境で使用されている多くの高度なコンピュータービジョン (CV)および自然言語処理 (NLP)アプリケーションを支える基盤です。
- 検索拡張生成 (RAG): 生成AIの時代において、ベクトルデータベースにより、大規模言語モデル (LLMs)は膨大な非公開かつ最新のデータライブラリにアクセスできます。ユーザーのプロンプトのセマンティックな意味に基づいて関連文書を検索することで、システムはLLMsにおけるハルシネーションを低減し、事実に基づく文脈を考慮した応答を提供します。
- ビジュアルレコメンデーションエンジン: 小売業におけるAIでは、プラットフォームがベクトルデータベースを使用して「類似スタイルを探す」機能を実現しています。ユーザーが特定の夏用ドレスを表示すると、システムはデータベースに対して、類似したビジュアル埋め込みを持つ他の商品画像をクエリします。これにより、柄、カット、色を照合し、単純なタグベースのフィルタリングより優れたユーザーエクスペリエンスを提供します。
- 異常および脅威の検出: セキュリティシステムは、異常検知にベクトルデータベースを活用します。「正常な」行動や許可された人物の埋め込みを保存しておくことで、システムはベクトル空間内で想定されるクラスタの外側にある外れ値を即座に検出し、データセキュリティと施設監視を強化できます。
関連概念との違い#
これらのシステムを効果的に実装するには、機械学習運用 (MLOps)の領域におけるベクトルデータベースと関連テクノロジーの違いを理解しておくことが役立ちます。
- ベクトルデータベースとベクトル検索の比較: ベクトル検索は、類似したベクトルを見つけるための操作またはアルゴリズムプロセス(「どのように行うか」)です。ベクトルデータベースは、データを保存し、インデックスを管理し、これらの検索を大規模に実行するために構築された堅牢なインフラストラクチャ(「どこで行うか」)です。
- ベクトルデータベースとフィーチャーストアの比較: フィーチャーストアは、モデルのトレーニングと推論で使用する特徴量を一元管理し、一貫性を確保するためのリポジトリです。特徴量データを扱う一方で、ベクトルデータベースを特徴付ける類似度ベースの検索クエリに特化して最適化されているわけではありません。
- ベクトルデータベースとデータレイクの比較: データレイクは、大量の生データをネイティブ形式で保存します。ベクトルデータベースは、そのデータを処理した数学的表現(埋め込み)を保存し、類似度検索に特化して最適化します。
最新のAIワークフローとの統合#
ベクトルデータベースの実装では、多くの場合、効率的なYOLO26などのモデルが埋め込みエンジンとして機能するパイプラインを構築します。これらのモデルはエッジまたはクラウドでビジュアルデータを処理し、生成されたベクトルはPinecone、Milvus、Qdrantなどのソリューションに送信されます。
データキュレーションや自動アノテーションからモデルのトレーニング、デプロイメントまで、このライフサイクル全体を効率化したいチームに対して、Ultralytics Platformは包括的な環境を提供します。モデルのトレーニングと効率的なデプロイメント戦略を統合することで、開発者はベクトルデータベースに供給される埋め込みの精度を確保でき、検索結果の品質向上と、よりスマートなAIエージェントの実現につながります。









