数据集详情
Parquet 文件。文件名分别为 0.parquet、1.parquet、…、25.parquet。如需查看该数据集的部分示例行,请访问此 Hugging Face 页面。
创建表
dbpedia 表,用于存储文章 ID、标题、文本和嵌入向量:
加载表
dbpedia 表中有 100 万行数据:
语义搜索
- 接收用户以自然语言提出的搜索查询,例如 “给我介绍一些风景优美的铁路旅行”、“以欧洲为背景的悬疑小说” 等
- 使用 LLM 模型为搜索查询生成嵌入向量
- 在数据集中查找与该搜索嵌入向量最接近的最近邻
执行暴力向量相似度搜索
dbpedia 数据集,
一种快速且直观地观察语义搜索的方法,是直接使用数据集本身的嵌入向量作为搜索
向量。例如:
Query
Response
max_threads=1 条件下的查询延迟,以便识别实际的计算资源
使用量和存储带宽占用 (将其外推到包含数百万向量的生产数据集!)
构建向量相似度索引
vector 列上定义并构建向量相似度索引:
执行 ANN 搜索
Query
Response
为搜索查询生成嵌入向量
dbpedia
表中的现有向量之一作为搜索向量。在实际应用中,搜索向量必须
根据用户输入的查询生成,而该查询可能是自然语言。搜索向量
应使用与为数据集生成嵌入向量时相同的 LLM 模型来生成。
下面列出了一个 Python 示例脚本,用于演示如何通过编程方式调用 OpenAI API
并使用 text-embedding-3-large 模型生成嵌入向量。然后,搜索嵌入向量
会作为参数传递给 SELECT 查询中的 cosineDistance() 函数。
运行该脚本需要在环境变量 OPENAI_API_KEY 中设置 OpenAI API 密钥。
注册 https://platform.openai.com 后即可获取 OpenAI API 密钥。
问答演示应用
- 接收用户输入的主题
- 调用 OpenAI API,并使用模型
text-embedding-3-large为该主题生成 嵌入向量 - 在
dbpedia表上使用 向量相似度搜索 检索高度相关的 Wikipedia 文章/文档 - 接收用户用自然语言提出的、与该主题相关的自由形式问题
- 使用 OpenAI
gpt-3.5-turboChat API,基于第 3 步检索到的文档中的知识回答该问题。 第 3 步检索到的文档会作为上下文传递给 Chat API,这是生成式 AI 中的关键环节。
OPENAI_API_KEY 中设置 OpenAI API 密钥。注册 https://platform.openai.com 后即可获取 OpenAI API 密钥。