在DB4AI的道路上,VexDB走出的第一步似乎是对的
最近和不少国产数据库厂商都探讨过DB4AI的问题,前阵子我还梳理了最近一年里Oracle在DB4AI上的发展路径,从中体会DB4AI在传统关系型数据库上的发展路径。
图片
Oracle的23AI是从23C改名而来的,这说明Oracle刚开始的时候对于AI的爆发点也是准备不足的,在融合数据库刚刚起步的时候匆匆忙忙转向了AI方向。幸运的是,融合和AI的大方向是一致的,所以并没有走什么弯路。
和绝大多数其他关系型数据库类似,Oracle的DB4AI起点也是向量类型的支持,O记采用了先集成数据库的AI应用支持能力,再根据用户的需求完善相关能力的发展模式,通过大量UTL*工具为AI应用开发提供所需的能力。在最新的版本中,O记已经发展到为大规模 AI应用提供强大能力支持支撑的阶段,IVF索引在线重定义(解决大量UPDATE后IVF索引失效的问题),外部表支持(降低AI数据导入的复杂性),VECTOR_MEMORY_SIZE(自动优化性能),HNSW图的快照更新(针对修改量极大的表数据的HNSW索引的性能优化),JSON能力的融合(更方便地构建应用),向量索引中的覆盖字段(提高应用性能)等都是为了解决AI应用开发中的 难点和痛点的。
我也在感叹,在DB4AI这条路上,O记又在孤身挺近,也真心希望国产数据库也能尽快赶上来。前几天VexDB发布会,让我看到了一抹亮色,让我感受到了国产数据库追赶先进技术的身影。
在发布会上,国良老师作为数智引航的技术顾问,代表技术团队发布一款为AI而生的向量数据库产品——VexDB。我这两天也花了点时间研究了一下这个数据库,虽然还没有亲力亲为去使用VexDB做些小项目来进行验证,不过在探索VexDB的时候我收获了一丝惊喜。与国内的其他DB4AI产品相比,它在技术理念上有较大的差异,VexDB的产品定位和技术路线与O记十分相像,而我个人觉得目前O记的路线应该是比较合理的。
DB4AI的起点必然是关系型数据库中的向量支持或者向量数据库中的OLTP支持,纯粹的向量数据库的应用场景会受到很大的限制。虽然DB4AI应该从向量入手,但是不能像目前的绝大多数DB4AI功能那样围绕向量来做,而是应该围绕AI应用的实际需求来设计。下面我们来看看VexDB在DB4AI方向上的一些值得称道的点。
首先VexDB在初期版本就构建了完善的应用生态,在组件编排上支持了目前最为流行的AI应用框架,包括LangChain、Dify、MaxKB、RagFlow、OpenWebUI等。目前大量的AI应用都采用了这些框架,因此VexDB很容易将这些框架上开发的AI应用从其他专用向量数据库中平移过来,这为VexDB快速发展提供了有力的支撑。O记在23AI的第一个版本中也通过与CoHere等的集成打通了数据库与AI应用之间的管道。
既然DB4AI是为AI应用而生的,那么数据库厂商就需要了解目前用户都在开发什么样的应用。其实很多企业的第一个AI应用大多收都是知识库、知识问答之类的系统。围绕向量数据类型来提供知识库开发能力是向量数据库必须具备的能力,不过想要做好这一点并不容易。目前绝大多数国产数据库具有的向量数据库支持不外乎向量标量混合检索的能力。似乎大家努力方向都差不多,不过如果仔细看看内部细节,却差别很大。
VexDB在这个方向上做了一些微创新,比如在向量索引上,VexDB 支持多种基于磁盘的向量索引结构,提供了IVFFLAT/IVFPQ/Graph_index/DiskANN索引,其中后三种索引是目前绝大多数国产数据库没有涉及的。与传统的索引不同,向量索引不仅仅是提高检索速度的需要,更能够提高向量检索的能力,支持的索引种类越多,就能支持更多的应用场景。
除了向量索引之外,VexDB在索引上还有很多令人惊喜的能力,比如向标联合索引HybridANN,Oracle在23.6上开始支持向标混合索引,当时我看到这个功能后感觉到这是一个可以大大简化知识库多路召回效率的功能,没想到VexDB现在也提供了类似的解决方案。传统的向量检索的召回准确性不足的问题,其实是完全可以通过向标混合检索来解决的,不过如果没有向标混合索引的支持,这种检索就会被割裂为向量检索、标量检索和重排三个工作,把提升准确性的工作交给了应用开发人员去做,大大增加了知识库开发的难度。
VexDB在索引上的工作还不仅如此,BM25索引的支持让我感到很贴心,最近我们有一个项目想通过BM25来提高知识召回的准确性,BM25(Best Matching 25)是一种广泛应用于信息检索领域的概率相关性模型,用于衡量查询与文档之间的匹配程度,正好是对症下药的,但是目前我们使用的数据库中没有BM25索引的支持,所以做起来很纠结。
初步研究了一下VexDB的功能,从一些设计上可以看出,产品的研发人员是懂AI应用的,并没有闭门造车,而是真正在做一些帮助AI应用开发者解决一些现实问题的事情。我觉得在DB4AI的道路上,VexDB走出的第一步似乎是对的。