简介
Open AI CLIP 模型 ViT-L/14 生成。每个嵌入向量的
维度均为 768。
该数据集可用于对大规模真实世界向量搜索应用的设计、容量规划和性能进行建模。该数据集既可用于文本到图像搜索,也可用于
图像到图像搜索。
数据集详情
S3 bucket 中提供了包含 1000 万个向量的子集。
该子集存储在一个 Parquet 文件中。
我们建议用户先参考文档进行容量评估,以估算该数据集所需的存储和内存。
步骤
1
创建表
2
加载数据
要加载数据集,请执行以下 SQL 语句:将 1000 万行数据加载到该表中需要几分钟。
3
运行穷举向量相似性搜索
KNN (k 近邻) 搜索或暴力搜索需要计算数据集中每个向量
与查询嵌入向量之间的距离,然后对距离进行排序以找出最近邻。我们可以使用数据集中的某个向量
本身作为查询向量。例如:记下该查询的延迟,以便与使用 ANN (向量索引) 的查询延迟进行比较。
在 1000 万行数据的情况下,上述未使用向量索引的查询可能需要数秒至数分钟才能完成。
Query
4
构建向量相似度索引
运行以下 SQL,在 有关索引创建和搜索的参数及性能注意事项,请参阅文档。
上述语句中,HNSW 超参数
laion_5b_10m 表的 vector 列上定义并构建向量相似度索引:M 和 ef_construction 分别设置为 64 和 512。
您需要通过评估索引构建时间和相应的搜索结果质量,谨慎选择这些参数的最优值。对于包含 1000 万行的子集,构建和保存索引可能需要较长时间,具体取决于可用的 CPU 核心数量和存储带宽。5
执行 ANN 搜索
构建向量相似度索引后,向量搜索查询会自动使用该索引:首次将向量索引加载到内存中可能需要几秒到几分钟。
Query
6
为搜索查询生成嵌入向量
LAION 5b 数据集的嵌入向量使用 OpenAI CLIP 模型 ViT-L/14 生成。下面提供了一个 Python 示例脚本,演示如何通过 CLIP API 以编程方式生成
嵌入向量。随后,将搜索嵌入向量作为参数传递给 SELECT 查询中的 cosineDistance() 函数。要安装 clip 包,请参阅 OpenAI GitHub 仓库。