用于嵌入系统的向量数据库

使用 OpenAI API 的 Embeddings 入门

Emmanuel Pire

Senior Software Engineer, DataCamp

当前方法的局限

  • 将全部嵌入加载入内存(1536 个浮点数 ~ 每个嵌入约 13kB
  • 每次新查询都重新计算嵌入
  • 对每个嵌入计算余弦距离并排序很慢,且线性扩展

一个图示,展示在无存储方案下,每次查询都会对文档和查询进行嵌入。

使用 OpenAI API 的 Embeddings 入门

向量数据库

  • 将嵌入后的文档存储并从向量数据库中查询

一个图示,展示如何使用向量数据库存储文档嵌入,并基于嵌入后的查询返回结果给用户。

使用 OpenAI API 的 Embeddings 入门

 

NoSQL 数据库
  • 结构更灵活,支持更快查询

NoSQL 数据库模式示例,包括键值、文档和图数据库。

 

SQL/关系型数据库
  • 将结构化数据组织为表、行与列

SQL(关系型)数据库中的表、列与行。

使用 OpenAI API 的 Embeddings 入门

需要存储的组件

 

  • 嵌入向量
  • 源文本
  • 元数据
    • ID 与引用
    • 用于结果过滤的附加数据

 

提示:不要把源文本存为元数据!

向量数据库图标。

使用 OpenAI API 的 Embeddings 入门

向量数据库概览

最流行的向量数据库解决方案,按是否开源与是否为专用向量数据库分类。

1 图片来源:Yingjun Wu
使用 OpenAI API 的 Embeddings 入门

哪种方案更适合?

 

  • 数据库管理
    • 托管 → 成本更高但降低运维负担
    • 自管 → 更便宜但需时间与专业能力
  • 开源还是商用?
    • 开源 → 灵活、性价比高
    • 商用 → 更佳支持、更多高级功能与合规

 

  • 数据模型:数据类型是否适合特定数据库类型?
  • 特定功能:是否依赖特性如多模态存储?

Chroma 标志。

使用 OpenAI API 的 Embeddings 入门

Let's practice!

使用 OpenAI API 的 Embeddings 入门

Preparing Video For Download...