向量检索

最近的工作开始偏向于底层向量检索算法的开发上面,但是对我而言有壁垒需要突破。

从新造轮子效率太低,一个是C++基本N多年没写过了,出来校园之后就还给老师了。所以打算先从一些开源系统找一下灵感并同步学习C++的开发。

当前用的比较广泛的向量检索lib是facebook的faiss,纯C++实现,所以如果要做一些深层次的工作C++开发绕不开,甚至上层的RPC/Rest服务框架为保证性能也要考虑用C++。

调研了一下,对faiss封装最近有个新开源的解决方案milvus,看了一下代码规范以及整体设计,感觉比较符合我这种入门级选手,并且项目处于前期,还在不断的完善中,在这个过程中学习一下被人的设计和思路也是一件很有趣的事情。

所以暂时计划后面会写一些对已有开源系统的学习系列文章,包括Faiss、Milvus、索引算法、搜索引擎、C++开发等。希望在这个过程中能够厘清各种概念,加深理解,并能够最终为自己造“轮子”做准备。

先列一下大纲

向量检索:Faiss

  • Get Started
  • 整体设计
  • 索引算法

索引服务:Milvus

  • Get Started
  • 整体设计
  • 服务接口

C++开发