はじめに
Open AI CLIP モデル ViT-L/14 を使用して生成されました。各
埋め込みベクトルの次元は 768 です。
このデータセットは、大規模な
実運用のベクトル検索アプリケーションにおける設計、サイジング、性能面の検討に利用できます。また、テキストから画像への検索と
画像から画像への検索の両方に使用できます。
データセットの詳細
npy ファイルと Parquet ファイルが混在する形で the-eye.eu から入手できます。
ClickHouse は、1億件のベクトルのサブセットを S3 バケットで公開しています。
この S3 バケットには 10 個の Parquet ファイルが含まれており、各 Parquet ファイルには 1,000 万行が含まれています。
このデータセットに必要なストレージ容量とメモリ要件を見積もるため、まず ドキュメント を参照してサイジングを行うことを推奨します。
手順
データを読み込む
すべてのParquetファイルからデータセットを読み込むには、次のSQLステートメントを実行してください。ブルートフォースによるベクトル類似度検索の実行
KNN (k最近傍法) 探索またはブルートフォース探索では、データセット内の各ベクトルと検索用の埋め込みベクトルとの距離を計算し、その距離を並べ替えることで最近傍を取得します。データセット自体のベクトルの1つを検索ベクトルとして使用することもできます。例:Query
Response
ベクトル類似度索引を構築する
次の SQL を実行して、laion_5b_100m テーブルの vector カラムにベクトル類似度索引を定義し、構築します。M と ef_construction に、それぞれ 64 と 512 を使用しています。
これらのパラメータの最適値は、索引の構築時間と検索結果の品質を
各設定値に応じて評価しながら慎重に選定する必要があります。索引の構築と保存には、使用可能な CPU コア数とストレージ帯域幅によっては、1 億件のフルデータセットで数時間かかることもあります。ANN 検索を実行する
ベクトル類似度索引が構築されると、ベクトル検索クエリでは自動的にその索引が使用されます。Query
検索クエリ用の埋め込みを生成する
LAION 5b データセットの埋め込みベクトルは、OpenAI CLIP モデル ViT-L/14 を使用して生成されています。以下に、CLIP API を使用して埋め込みベクトルをプログラムで生成する方法を示す Python スクリプトの例を示します。生成した検索用の埋め込みベクトルは、その後 SELECT クエリ内の cosineDistance() 関数に引数として渡されます。clip パッケージのインストール方法については、OpenAI GitHub repository を参照してください。