OSS ベクトルは、Alibaba Cloud の Object Storage Service (OSS) が提供する、ベクトルストレージおよび検索機能です。専用のベクトルバケットタイプを使用して、ベクトルデータの格納、クエリ、管理を行います。OSS ベクトルは、低コスト、大規模、かつ使いやすいソリューションとして、マルチモーダル検索、ナレッジベース、検索拡張生成 (RAG)、AI エージェントなどの AI アプリケーション向けに、ベクトルストレージとクエリ機能を提供します。OSS ベクトルは、標準モードと Fusion モードの 2 つのインデックスモードを提供します。同じベクトルバケット内に両方のモードのインデックスを作成し、各ビジネスシナリオに適したモードを選択できます。サードパーティのサービスで生成されたベクトルデータをベクトルバケットに書き込むことができます。また、OSS ベクトルは、大規模な生データとベクトルデータの両方に対する統一されたガバナンスも実現します。たとえば、標準バケットとベクトルバケットの両方に同じ Bucket ポリシーを設定したり、監査のために統一された形式でログをエクスポートしたりできます。
基本概念
-
ベクトルバケット:大規模なベクトルデータを管理するためのクラウドリソースとして機能する、新しいバケットタイプです。
-
ベクトルインデックス:ベクトルバケット内にベクトルインデックスを作成できます。ベクトルインデックスは、ベクトルデータを格納するためのインデックステーブルです。1 つのベクトルバケットに複数のベクトルインデックスを作成して、さまざまなビジネスニーズに合わせてデータを整理できます。検索クエリを実行すると、指定されたベクトルインデックス内のベクトルデータの類似性に基づいて結果が返されます。
-
インデックスモード:ベクトルインデックスは、標準モードまたは Fusion モードの 2 つのモードのいずれかを使用できます。2 つのモードは、インデックス構造、スキーマ機能、および検索方法が異なります。ベクトルインデックスを作成するときにモードを指定する必要があります。同じベクトルバケット内に異なるモードのベクトルインデックスを作成できます。
-
ベクトルデータ:画像、動画、ドキュメントなどの非構造化データから、ベクトル埋め込みモデルを使用して生成される高次元の数値配列です。これらの配列は、データのコンテンツ特徴を表します。ベクトル検索は、これらのベクトル間の類似性に基づいて結果を返します。Elastic Compute Service (ECS)、PAI、Model Studio などの任意のベクトル化サービスを使用してベクトルを生成し、OSS API、SDK、または ossutil ツールを使用して指定されたベクトルインデックスに書き込むことができます。データを書き込む際に、後続のスカラーフィルタリングのためにメタデータを付加することもできます。
-
スカラーメタデータ:ベクトルデータを書き込む際に、後続のスカラーフィルタリングのためにスカラーメタデータを付加することもできます。
ベクトルインデックスモード
OSS ベクトルは、コスト、パフォーマンス、検索の複雑さに関するさまざまな要件を満たすために、2 つのインデックスモードを提供します。同じベクトルバケット内に両方のモードのインデックスを作成できます。
|
項目 |
標準モード |
Fusion モード |
|
可用性 |
サーバーレス、商用利用可能 |
サーバーレス、招待制プレビュー (現在、インドネシア (ジャカルタ) リージョンでのみ利用可能) |
|
ユースケース |
企業のマルチメディア資産管理と検索、コストに敏感な RAG ナレッジベース、AI データセットの検索と管理、AIGC データ管理、マルチメディア資産の検索と管理、コンテンツ推奨など、ウォーム/コールドベクトルデータのストレージと検索 |
複雑な検索方法やハイブリッド検索を含む、より高いパフォーマンス要件を持つウォーム/ホットベクトルデータのストレージと検索。たとえば、アプリ内での高頻度のオンラインマルチモーダル検索、クラウドドライブ向けのマルチモーダルコンテンツ検索、多数のテナントを持つオンライン RAG ナレッジベース、アプリ内コンテンツ推奨、AI アシスタントなど |
|
スキーマ |
スキーマレスメタデータ、デフォルトではインデックスごとに 1 つのベクトルフィールド |
明示的なスキーマ、インデックスごとに最大 3 つのベクトルフィールド、ベクトルフィールドとスカラーフィールドの合計は 100 以下 |
|
スカラーフィールドタイプ |
String、Number、Boolean、List |
string、long、double、bool、ip、geoPoint |
|
検索方法 |
シングルパスのベクトル類似性検索、スカラー後フィルタリング付きベクトル類似性検索 |
シングルパスのベクトル類似性検索、マルチパスのベクトル類似性検索、スカラー事前フィルタリング付きベクトル類似性検索 (ハイブリッド検索)、全文検索、スカラー検索 |
|
結果の並べ替え |
スコアベース (距離ベース) の並べ替え |
スコアベース (距離ベース) の並べ替え、カスタムフィールドによる並べ替え、ランク融合 (RRF および重み付け)、ページネーションのサポート |
|
ベクトル機能 |
単一列ベクトル |
複数列ベクトル |
|
距離メトリック |
ユークリッド距離、コサイン距離 |
ユークリッド距離、コサイン距離、最大内積 |
利点
-
低コスト:ベクトルデータは、さまざまな AI アプリケーションにとって不可欠なインフラストラクチャとなり、指数関数的に増加しています。OSS ベクトルは、ベクトルデータのストレージと検索時のスキャンデータ量の 2 つの項目のみを課金対象とする、シンプルで透明性の高い課金モデルを採用しています。これにより、従来の方法と比較してコストを 90% 以上削減できます。
-
大規模:OSS ベクトルは、膨大な量のベクトルデータを格納および管理するように設計されています。スケーリングを自動的に処理するサーバーレスフレームワーク上に構築されているため、キャパシティプランニングは不要です。
-
使いやすさ:OSS ベクトルは、包括的な API、SDK、および ossutil コマンドラインツールを提供します。OSS コンソールで、検索、挿入、一括挿入などの操作でベクトルデータを管理することもできます。
-
統一された管理:ベクトルバケットと、生データを格納する標準バケットを、一貫した方法で管理できます。たとえば、アクセス制御のために同じ Bucket ポリシーを適用したり、監査のために共通のログエクスポートパスを設定したりできます。
-
セマンティック検索:QueryVectors API を使用してインデックス内のベクトルデータをクエリし、類似度で並べ替えられた結果を受け取ることができます。OSS ベクトルは、スカラーメタデータに基づくフィルタリングも可能です。ベクトルデータをベクトルバケットに書き込む際に、後フィルタリング用のメタデータを付加できます。ベクトルインデックスを作成する際に、フィルタリング不可のメタデータを定義することもできます。このタイプのメタデータはフィルタリングには使用できませんが、ベクトルに説明情報を提供するために検索結果とともに返されます。
-
ハイブリッド検索 (Fusion モード):Fusion モードでは、1 つのインデックスに複数のベクトルフィールドとさまざまなスカラーフィールドタイプを設定し、複数のリトリーバーを介して同時に検索できます。その後、RRF または重み付けランクを使用して、すべてのリトリーバーからの結果を融合し、ランク付けします。これにより、複雑な条件を持つマルチモーダルシナリオでの高精度な検索のニーズに対応します。
ユースケース
低コストな RAG アプリケーションの構築
AI サービスが拡大するにつれて、ベクトルデータの指数関数的な増加により、ストレージと検索のコストに対する圧力が高まっています。ナレッジベース、AI アシスタント、医療画像検索などのマルチモーダル検索シナリオでは、ユーザーは数十から数百ミリ秒の範囲の検索レイテンシを許容する傾向があります。このような場合、OSS ベクトルの標準モードを RAG アプリケーションのストレージ基盤として使用することで、非常に低いコストでビジネス要件を満たすことができます。
階層型検索による AI エージェントの構築
AI エージェントごとに、検索パフォーマンスのニーズは異なります。コスト効率に優れた OSS ベクトルバケットの標準モードにすべてのベクトルデータを一元化できます。高いパフォーマンスと低いレイテンシを必要とするビジネスシナリオでは、OSS ベクトルバケットの Fusion モードにデータを格納できます。これにより、階層型検索を備えた AI エージェントアプリケーションアーキテクチャを構築できます。
統一された AI コンテンツプラットフォームの構築
AI アプリケーションは、大量の非構造化コンテンツ (ユーザー生成コンテンツ、内部ドキュメント、AI 生成コンテンツなど) とそれに対応するベクトルを生成し、ストレージシステムと検索システムの断片化につながる可能性があります。生データを標準の OSS バケットに、ベクトルデータをベクトルバケットに格納することで、AIGC データ管理などのユースケース向けに効率的な AI データ管理プラットフォームを構築できます。単一の API と SDK セットで生ファイルとベクトルインデックスの両方を管理できるため、統一された AI コンテンツプラットフォームの作成が簡素化されます。
セマンティック検索とマルチモーダルハイブリッド検索
e コマースの製品検索、動画や画像のコンテンツ理解、企業のナレッジベース Q&A など、より高いリコール率と低いレイテンシを必要とするオンラインシナリオでは、Fusion モードを使用できます。このモードは、複数列ベクトル、全文検索、および複数のリトリーバーにわたるハイブリッドランキングをサポートしています。ベクトル類似性、テキストキーワード、スカラーフィルタリング、地理空間データなど、複数の検索シグナルを柔軟に組み合わせることで、複雑なクエリの検索結果を大幅に向上させます。
エンタープライズ機能
エンドポイントアクセス
OSS ベクトルは、標準の OSS バケットから分離された、個別のパブリックエンドポイントと内部エンドポイントを提供します。
-
パブリックエンドポイント:
$bucketname-$uid.regionID.oss-vectors.aliyuncs.com -
内部エンドポイント:
$bucketname-$uid.regionID-internal.oss-vectors.aliyuncs.com
注:ListVectorBuckets を除くすべての操作で、第 3 レベルドメインを使用する必要があります。
セキュアな転送
HTTPS は転送中のすべてのデータを暗号化します。
アクセス制御
-
Bucket ポリシー:ベクトルバケットレベル、または 1 つ以上のベクトルインデックスに対して権限を制御できる、リソースベースの認可ポリシーをサポートしています。
-
RAM ポリシー:ベクトルバケット、ベクトルインデックス、およびデータ操作に対するきめ細かな権限制御のための、ID ベースの RAM 認可ポリシーをサポートしています。これらのポリシーは、クロスアカウントのアクセス認可もサポートしています。
ロギング
-
アクセスログのエクスポート:アクセスログを、指定されたバケットにリアルタイムまたはほぼリアルタイムでエクスポートすることに対応しています。
-
統一されたログ形式:ログ形式は、標準の OSS ログと完全に互換性があります。ベクトルバケットリソースを一意に識別するための追加の
BucketARNフィールドが含まれており、これにより統一されたログ分析が簡素化されます。
クォータと制限
OSS ベクトルには特定のクォータと制限があります。ベクトルストレージおよび検索ソリューションを設計および実装する際には、以下の制限に基づいて、バケット数、インデックスの規模、メタデータ構造、および API 呼び出し戦略を計画してください。以下のクォータの引き上げをリクエストするには、テクニカルサポートにお問い合わせください。
-
1 つの Alibaba Cloud アカウントで、1 つのリージョンに最大 100 個のベクトルバケットを作成できます。
-
1 つのベクトルバケットには、最大 100 個のベクトルインデックスを含めることができます。
標準モードの制限
-
1 つのベクトルインデックスには、最大 20 億行のベクトルデータを格納できます。
-
ベクトル次元:1~4,096
-
ベクトル検索リクエストの TopK 範囲:1~500 (デフォルト)
-
単一ベクトルのメタデータ (フィルタリング可能およびフィルタリング不可) の合計最大サイズ:200 KB
-
単一ベクトルの単一フィルタリング可能メタデータフィールドの最大サイズ:2 KB
-
単一ベクトルのメタデータフィールド (フィルタリング可能およびフィルタリング不可) の最大数:100
-
スカラーメタデータは、String、Number、Boolean、および List の 4 つのデータ型をサポートしています。
-
メタデータを使用してベクトルをフィルタリングする場合:
-
単一のフィルター命令におけるフィルタリング可能なメタデータの累積長は 20 KB を超えることはできません。
-
単一のフィルター命令におけるフィルタリング可能なメタデータ項目の数は 1,024 を超えることはできません。
-
フィルター条件は、最大 8 レベルのネストをサポートしています。
-
-
QueryVectors または ListVectors API を使用してスカラーフィルタリングを行う場合、次の演算子を使用できます:
-
等価性:$eq、$ne
-
範囲:$gt、$gte、$lt、$lte
-
包含:$in、$nin
-
存在:$exists
-
論理:$and、$or、$nor
-
-
単一バケットの場合、PutVectorIndex API の呼び出しは 1 秒あたり 5 回に制限されます。
-
単一インデックスの場合、PutVectors API の QPS (1 秒あたりのクエリ数) の上限は 1,000 です。1 つの同時リクエストでバッチあたり最大 500 エントリを書き込むことができます。すべての同時リクエストの合計スループットは、1 秒あたり 2,500 エントリを超えることはできません。たとえば、各同時リクエストがバッチで 100 エントリを書き込む場合、サポートされる最大書き込み QPS は 25 (2,500 / 100) です。
-
PutVectors API の最大リクエストボディサイズは 20 MB です。
-
単一インデックスの場合、QueryVectors API の QPS の上限は 100 です。
-
注:検索 QPS は、単一インデックス内のベクトル数、ベクトル次元、TopK 値、クエリ内のスカラーメタデータ条件などの要因に依存します。1,024 次元のベクトルが 1,000 万行存在し、TopK 値が 100 の一般的な設定では、クエリ QPS は通常 100 に達することがあります。インデックスサイズまたは TopK 値が増加すると、実際の検索 QPS は低下する可能性があります。OSS ベクトルは、QPS が 100 に達することを保証するものではありません。実際のパフォーマンスを確認するには、ワークロードでテストしてください。
-
-
QueryVectors API の最大レスポンスサイズは 8 MB です。
-
ListVectorIndexes API は、1 ページあたり最大 500 個のインデックスを返します。ページネーションを使用して、次のバッチのインデックスを取得できます。
-
ListVectors API の最大同時実行数は 16 です。
Fusion モードの制限
-
フィールド名は、1 つのインデックス内で一意である必要があり、長さは 1~63 文字です。大文字と小文字、数字、アンダースコア (_) を含めることができ、先頭は文字である必要があります。
-
フィールド数の制限:合計で 100 フィールド以下、ベクトルフィールドは 3 つ以下、トークン化されたフィールドは 8 つ以下。他のスカラーフィールドは残りのクォータを使用します。少なくとも 1 つのベクトルタイプのフィールドが必要です。
-
スカラーフィールドは、string、long、double、bool、ip、および geoPoint のタイプをサポートしています。
-
数値および IP フィールド (double、long、ip) の場合、isArray フラグはデフォルトで false です。配列モードが有効になっている場合、単一の配列には最大 128 個の要素を含めることができます。
-
string フィールドの場合、配列モードが有効になっている場合、単一の配列には最大 512 個の要素を含めることができ、各 string 要素は最大 4 KB、配列内のすべての要素の合計は最大 64 KB です。カスタムトークナイザーは、区切り文字としてスペース、|、-、_、および , 文字を使用できます。トークン化後、各トークンは 4 KB 以下である必要があります。超過分はインデックス作成前にサーバーによって切り捨てられます。string フィールドの制限の詳細については、インデックス作成のスキーマドキュメントをご参照ください。
-
Fusion モードの PutVectors API の最大リクエストボディサイズは 20 MB で、QPS の上限は 1,000 です。1 つの同時リクエストでバッチあたり最大 500 エントリを書き込むことができ、すべての同時リクエストの合計スループットは 1 秒あたり 2,500 エントリを超えることはできません。たとえば、各同時リクエストがバッチで 100 エントリを書き込む場合、サポートされる最大書き込み QPS は 25 (2,500 / 100) です。
-
Fusion モード固有のベクトル検索操作 (QueryVectorsFusion) の制限:
-
この操作は 3 つのクエリメソッドをサポートしています:
-
knn フィールドは、純粋なベクトル検索と、事前フィルタリングを組み合わせたベクトル検索をサポートしています:
-
シングルパスまたはマルチパスのベクトルクエリをサポートしており、リクエストごとに最大 3 つの KNN クエリを実行できます。
-
topK パラメーターは最大 500 です。
-
numCandidates パラメーターは最大 1,000 です。
-
-
query フィールドは、純粋なスカラー検索と全文検索をサポートしています:
-
各 $and、$or、または $nor 論理演算子は、最大 512 のサブ演算子と最大 8 レベルのネストをサポートしています。
-
$in および $nin は、最大 1,024 個の要素をサポートしています。
-
$textMatch および $textMatchPhrase のクエリテキストは最大 512 バイトです。
-
$geoPolygon は最大 16 ポイントをサポートしています。
-
-
retriever フィールドは、結果の融合を伴うマルチパスハイブリッドクエリをサポートしています:
-
retriever が存在する場合、indexName、limit、partitionKeys、returnMetadata、および returnMetadataFields の 5 つのトップレベルパラメーターのみが許可されます。他のすべてのパラメーター (knn、query、sort、nextToken を含む) は禁止されます。
-
retrievers 配列には、少なくとも 1 つ、最大で 3 つの要素を含める必要があります。
-
複合リトリーバー (RRF Retriever および Weight Retriever) の場合、windowSize は最大 500 です。
-
-
-
この操作のその他の制限:
-
limit は最大 500 です。
-
1 つのリクエストで最大 3 つの sort フィールドをサポートしています。スコアベースのソートは降順 (desc) のみをサポートしています。
-
nextToken を使用したページネーションは、リクエストに query (スカラー検索および全文検索) のみが含まれている場合にのみ許可されます。ベクトル検索 (knn) およびマルチパス検索 (retriever) はページネーションをサポートしていません。
-
partitionKeys は最大 512 個の要素をサポートしており、すべての要素の合計は最大 4 KB です。
-
returnMetadata はデフォルトで false であり、フィールドは返されません。true に設定すると、すべてのフィールドが返されます。
-
returnMetadataFields は、returnMetadata が true の場合にのみ有効です。ベクトルタイプのフィールドを返すことはできません。[] に設定すると returnMetadata=false と同等になり、フィールドは返されません。null に設定するとパラメーターを指定しない場合と同等になり、すべてのフィールドが返されます。
-
最大レスポンスサイズは 8 MB です。
-
-
-
Fusion モードは現在、招待制プレビュー中で、インドネシア (ジャカルタ) リージョンでのみ利用可能です。一部のクォータと API の制限は、標準モードとは異なる場合があります。詳細については、API ドキュメントをご参照ください。
課金
OSS ベクトルは、2026年6月10日 (UTC+8) に正式に商用課金を開始します。請求にご注意ください。課金方法の詳細については、「ベクトルの課金項目」をご参照ください。Fusion モードは現在、招待制プレビュー期間中は無料です。