Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Vector Database

ベクトルデータベースは、埋め込みベクトルをIDやメタデータとともに保存し、高速な最近傍探索のためにインデックス化します。RAGや画像検索の検索レイヤーです。

ベクトルデータベースは、モデルがテキスト、画像、音声、動画から生成する数値ベクトルである埋め込みを、各アイテムのIDやメタデータとともに保存し、数百万から数十億個のアイテムを対象に「保存済みベクトルのうち、これに最も近いものはどれか」というクエリにミリ秒単位で回答します。ベクトルデータベースは、ベクトル検索インデックスを、挿入、更新、削除、メタデータによるフィルタリング、永続化、アクセス制御、マシン間のレプリケーションといったデータベース機能で拡張します。ベクトルデータベースは、検索拡張生成(RAG)、セマンティック検索、レコメンデーションシステムの検索処理を提供します。

ベクトルデータベースの仕組み#

書き込み処理では、データベースの外部または内部にある埋め込みモデルが各アイテムをベクトルに変換し、データベースはそのベクトルを、ソースファイル、日付、カメラ、顧客などのIDやメタデータペイロードとともに保存します。保存済みのすべてのベクトルとクエリを比較する方法は正確ですが、大規模では低速なため、データベースは近似最近傍(ANN)インデックスを構築します。HNSWは、各ベクトルを階層グラフ内の近傍と結び、検索時に貪欲法でグラフをたどります。転置ファイル(IVF)インデックスは、k-meansクラスタリングでベクトルをグループ化し、クエリに最も近いクラスターだけを検索します。また、プロダクト量子化などのベクトル量子化手法は、各ベクトルを数バイトに圧縮します。読み取り処理では、同じモデルでクエリを埋め込み、コサイン類似度、内積、ユークリッド距離などの指標で比較し、データベースは上位k件のID、スコア、ペイロードを返します。多くのシステムでは、これらをキーワード検索の結果とハイブリッド検索で統合します。

この例では、Pythonプロセス内でメモリ上に動作するオープンソースのベクトルデータベースChromaを使用します。

import chromadb

# メモリ内クライアント。chromadb.PersistentClient(path="db")を使うと、データはディスクに保存されます
client = chromadb.Client()
collection = client.create_collection("inspection_notes")

# Chromaは、デフォルトの埋め込みモデルで各ドキュメントを埋め込み、ベクトルをインデックス化します
collection.add(
    ids=["n1", "n2", "n3"],
    documents=[
        "Hairline crack found near the weld on bracket B7",
        "Paint scratch on the left door panel",
        "Porosity in the weld seam of the frame rail",
    ],
    metadatas=[{"line": "A"}, {"line": "B"}, {"line": "B"}],
)

# 1つの生産ラインに限定した最近傍検索
results = collection.query(query_texts=["welding defects"], n_results=1, where={"line": "B"})
print(results["ids"][0], results["documents"][0])

クエリはメモ n3 を返します。これはラインBの溶接部の気孔です。メタデータフィルターにより、ラインAの亀裂に関するメモは検索対象から除外されますが、そのテキストは「溶接欠陥」に同じくらい近いものです。

  • FAISSなどのベクトル検索ライブラリ:HNSW、IVF、プロダクト量子化を含むプロセス内インデックスを提供しますが、サーバー、メタデータストレージ、レプリケーションはありません。複数のベクトルデータベースがこれらを基盤にしています。
  • 専用ベクトルデータベース:マネージドサービスのPineconeや、オープンソースプロジェクトのMilvus、Qdrant、Weaviate、Chromaなどがあり、当初から埋め込みを中心に設計されています。
  • pgvectorなどのベクトル拡張機能:HNSWおよびIVFFlatインデックスを備えたベクトル列をPostgreSQLに追加し、埋め込みをリレーショナルデータの隣に保存します。Elasticsearch、OpenSearch、MongoDB Atlas、Redisも、キーワード検索と並ぶ同様のベクトルフィールドを提供します。
  • 特徴量ストア:トレーニングと推論のために、エンティティキーを使ってモデル入力特徴量を提供します。類似度ではなく、IDでレコードを検索します。
  • データレイク:画像やログなどの生ファイルを保持し、ベクトルデータベースはIDまたはパスでそれらを参照します。

実際のアプリケーション#

  • AIエージェントのメモリ:RAGパイプラインとエージェントは、ドキュメントのチャンクや過去の会話を保存し、大規模言語モデルが必要に応じて取得できるようにします。
  • 小売のビジュアル検索:「類似商品を探す」機能では、すべての商品写真を埋め込み、閲覧中の商品に最も近いアイテムを返します。
  • 異常検知:最近傍の保存済みデータがすべて遠く離れている新しいサンプルを、取引やセンサーの読み取り値などの異常として検出します。

画像コレクションでは、ベクトルを生成するためのビジョンモデルが必要です。Ultralytics YOLO26はmodel.embed()を通じてこの機能を提供します。各画像にモデルを実行し、最後から2番目の層からプーリングした特徴ベクトルを返すため、画像パスや撮影メタデータとともに保存して、近似重複検出や類似画像検索に利用できます。これは、Ultralytics Platformの類似画像を検索のような検索を支える機能です。

サイズ設定とチューニング#

インデックス設定では、再現率と推論レイテンシの間でトレードオフが生じます。HNSWの検索幅(ef_search)とIVFで検索するクラスター数(nprobe)は、どちらもクエリを遅くする代わりに、正しい近傍をより多く見つけます。そのため、チームはサンプルクエリでの厳密検索と比較しながら設定を調整します。メモリ使用量がハードウェアコストを左右します。768次元のfloat32埋め込み100万件には、インデックスのオーバーヘッドを除いて3.07 GB(1,000,000 x 768 x 4 bytes)が必要です。ベクトルをint8スカラー量子化すると768 MBに減り、Matryoshka埋め込みは次元数を切り詰めて、さらに容量を削減できます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう