🗒️面试记录
2024-8-22
| 2024-9-28
字数 1081阅读时长 3 分钟
type
status
date
slug
summary
tags
category
icon
password
comment
update_time
Sep 28, 2024 10:49 AM
create_time
Sep 26, 2024 10:16 AM
昨天面试结束,还是有几个问题回答不到位,对概念和使用过的工具没有深入了解,特此记录。

向量数据库和传统数据库的区别

向量数据库和传统数据库的区别主要在于数据存储和检索方式。
向量数据库:专注于处理高维向量数据,通常用于机器学习和推荐系统,通过计算向量之间的相似度来进行查询。
传统数据库:主要处理结构化数据,依赖于表格和行列结构,使用SQL(Structured Query Language,结构化查询语言)进行查询。

FAISSLanceDB 的区别

FAISS(Facebook AI Similarity Search)和LanceDB都是用于处理向量数据的工具,但它们有不同的侧重点。
FAISS:专注于高效的相似性搜索,优化了大规模向量的检索速度,特别适合高维数据。它提供了多种索引类型和算法,以满足不同的性能需求。
LanceDB:注重于数据库的管理和查询,结合了向量搜索和关系数据的特点,支持更复杂的查询和多样化的数据操作。

FAISS 和 LanceDB 的原理和机制

  • FAISS:主要基于高维空间中的聚类和量化技术,通过构建倒排索引和使用向量量化(如PQ、IVF等)来加速相似性搜索。它通过将高维向量映射到低维空间,减少计算量,提高检索速度。
  • LanceDB则结合了传统数据库的结构和向量数据库的能力,支持基于向量的检索和关系查询。其机制在于将向量数据与元数据结合,允许复杂的查询,例如基于属性筛选后再进行向量相似度搜索。
    PQ、IVF
    PQ 和 IVF 是FAISS中常用的两种向量索引技术,用于加速相似性搜索。
    • PQ(Product Quantization):乘积量化/产品量化
      • 原理:将高维向量分成多个低维子向量,对每个子向量进行量化,生成一组代表每个子向量的“码字”。通过这种方式,整个向量被表示为码字的组合,从而大幅减少存储空间。
      • 优点:显著降低了内存占用,同时在搜索时可以快速计算相似度,因为只需比较码字而不是原始向量。这种方法适合处理大规模数据集。
    • IVF(Inverted File Index):倒排文件索引
      • 原理:首先将向量数据划分成多个簇(cluster),每个簇对应一个“中心”向量。然后,对于每个查询向量,FAISS会找到与之最相近的几个中心向量,进而只在这些相关的簇内进行详细的相似性搜索。
      • 优点:可以有效减少需要计算的向量数量,从而加快搜索速度。特别适合于数据量很大的场景,因为它减少了比较的复杂性。
      • 传统倒排索引的区别:传统倒排索引主要用于文本检索,将文档和词汇之间的关系存储在一起,以便快速找到包含特定词汇的文档,而 IVF 更侧重于高维向量数据的管理。

    Java 如何实现断点续传

    贴两个大佬的文:
    具体思路:
    上传:前端可以选用 webUpload 组件利用多进程并发进行文件分片上传,后端获取到每个文件后进行合并
    下载:文件分片后多线程返回每一个分片范围的内容,并在前端拼接整个文件
     
  • 文字
  • Java
  • 向量数据库
  • 思考
  • US.KG 域名注册记一次面试
    Loading...