文章标签:万物皆可向量化, QCon 全球软件开发大会, Zilliz 合伙人, 技术总监
万物皆可向量化。
近期,在QCon全球软件开发大会北京站点,Zilliz合伙人兼技术总监栾小凡先生,带来了一场名为《万物皆可向量化——Milvus的过去与未来》的精彩演讲。
在本次活动中,我们的嘉宾栾小凡从向量数据库的基础理论、Milvus 2.0的特性与应用、向量数据库云原生的实践以及向量数据库的发展前景等四个维度,引领现场听众踏上一场向量数据库与云技术的未来之旅。特别是Milvus的用户应用场景、向量数据库云原生的实践以及向量数据库的发展前景这三个部分,引发了现场听众的高度关注和热烈讨论。
以下是这三部分的精彩集锦:
Milvus & ChatGPT
在开源社区中,Milvus 已经获得了众多企业级用户的高度信任,其中包括 eBay、Shopee、Walmart、快手以及宜家等知名企业。此外,Milvus 的最大部署规模已超过 10 亿向量,充分展示了其在开源领域的强大实力与广泛应用。
在许多实际应用中,Milvus 的 QPS 性能表现卓越,超过了 10K。这使得 Milvus 在各种场景中都展现出了强大的处理能力。例如,在处理长文本时,Milvus 可以提供翻译、问答、语义检索和情感分析等服务。其中,语义检索和问答功能可以与 ChatGPT 相互配合,进一步提升回答的准确性。在图片领域,Milvus 能够执行去重、目标检测、图片检索以及多模态的图文搜索等任务。此外, Milvus 在视频领域也有着出色的表现,可进行推荐、合规检测和分类等操作。这些应用场景充分展示了 Milvus 高性能的特点,使其成为一款不可或缺的工具。
诚然,我们有诸多新兴应用场景等待挖掘。在生物制药领域,将生物分子转化为向量,从而评估生物小分子与蛋白质的结合可能性;在音频领域,执行去重和情感分析任务;在风控领域,发掘潜在风险;在自动驾驶领域,借助向量检索,助力自动驾驶系统在实时判断过程中发现被忽略的物体。这些新兴应用场景都为我们提供了广阔的发挥空间。
以问答机器人为例,在实际应用过程中它是如何通过 Milvus 来实现的?
在这篇文章中,我们将讨论如何将数据分为两部分:问答数据集(Question Dataset)和问题数据集(Ask Question)。接下来,我们将介绍如何使用文本嵌入技术生成向量,并将其存储在Milvus中。在实际应用中,我们会将用户的查询通过相同的算法转化为向量,然后查询向量数据库,找到与查询向量相似的一组ID。最后,我们可以利用这些ID去查找更多相关信息。在这个过程中,我们还可以运行一个精排模型,例如使用ChatGPT提示的方式来归纳或总结查询结果。这种方法不仅提高了查询效率,而且可以帮助我们更好地理解和分析数据。总之,通过将数据分为两部分、生成向量、存储在Milvus以及运行精排模型,我们可以有效地处理大规模的文本数据,从而提高我们的工作效率和准确性。
具体教程可参考:Towhee
云上的心得与思考
Milvus 对于云的心得和思考其实可以从四个方面概括,即:微服务化设计、接口即服务、调度、跨云。
首先,我们需要探讨的是 Milvus 架构中的微服务化设计。作为一个高度复杂的分布式系统,Milvus 选择了微服务化和存储计算分离的策略,这使得其具备了更强大的灵活性和可扩展性。为了满足各种需求,Milvus 提供了丰富的接口抽象,支持三种不同类型的存储,包括元信息存储、流存储和批存储。而这三种存储类型又涵盖了多种实现方式,如对象存储,它可以采用开源的 Minio 或云 S3;对于元信息存储,则可以选择开源的 Etcd 和云的 RDS。这些多样化的选择为用户提供了广泛的灵活性,可以根据实际需求选择最适合的存储方案。
其次,我们来探讨一下“接口即服务”这一设计理念。这是 Milvus 至关重要的一环,它将每个微服务都视为一个独立的接口,而这些接口的背后则隐藏着各种不同的实现方式。这些实现方式包括但不限于嵌入式引擎、分布式集群,以及 Severless 服务等。通过这样的设计,我们可以将资源进行池化处理,实现开源与云的统一,并最终达到与接口的分离。这种设计方式不仅提高了服务的灵活性和可扩展性,同时也为整个系统带来了更好的可靠性和稳定性。
再者,调度,不仅仅是任务。在过去的大数据领域,调度通常会和任务调度结合,而在一个云原生的环境下,调度的复杂度大大提升,不仅调度任务本身,它还在调度 resource、数据。
云上有一种说法,即在线下环境中完成一项任务,也许需要用一个 CPU 跑 100 分钟,在云上则可以用 100 个 CPU 跑 1 分钟来完成。Milvus 团队将其称为“云的资源交换律”。
当然,资源交换律并不是在任何情况下都成立的。为实现这个定律,Milvus 进行存储计算分离以降低调度 Resources 的成本;尽可能动态调度计算资源以满足当前的算力要求;调度数据本身,借助 caching、冗余、locality 等策略降低计算调度成本。
最后,跨云。多云/混合云的优势很多,包括安全合规、有更高的议价空间、可用性更高以及 No Vendor Lock in。
当然,多云本身也带来了很多额外的复杂度,对此,Milvus 有自己的四大哲学:
一是基于开源或云标准接口(S3,SQL)构建服务;二是利用抽象能力解耦 – Terraform、 Crossplane;三是区分管控面与数据面,实现统一的管理能力;四是基于多云实现 CI/CD。
向量数据库的挑战与未来
向量数据库的大趋势是什么?当前行业面临怎样的挑战?Milvus 对此有哪些应对方式?对于这些问题,栾小凡将六大挑战作为切入点进行了回应:
其一,可运维性。如何在 AI 领域部署及运维向量数据库是整个行业面临的一大挑战。为此,团队在 Milvus 上做了一系列的工作。从云原生的角度来看,尽可能地复用基础设施;从开源用户的角度来看,尽可能降低系统对外部组件的依赖,使部署和运维向量数据库变得更加简单。
其二,性能成本。目前,我们看到了 GPU 加速向量检索的可能,也看到了在很多的数据集底下 GPU 能够提供 5-10 倍以上的 CPU 的性能。所以,在下一个大的 Roadmap 里面 Milvus 也会去支持 GPU。
此外,过去在做向量检索时,必须要把数据加到内存里面,这限制了整个向量检索的数据量。目前,Milvus 已经实现支持基于磁盘内存混合的索引,正在通过 MMap 实现内存和磁盘换进换出的查询能力,能够进一步降低向量检索的内存使用。
其三,离在线一体化。这包括解决当前元信息的存储瓶颈、百亿规模超大规模的向量召回,都对整个系统的负载均衡能力、资源使用能力提出了较高的要求。Milvus 希望能够变成一个离在线一体化系统。
其四,智能化。很多人都在高呼“AI for DB”,但真正将其应用在 Relational database 的概率却比较低。由于向量数据库的一些特性,我们较早地进行了尝试,进行动态参数调整、引入模型处理精排。例如,做一些动态的剪枝算法,根据用户的数据模型动态选择是否帮他们做 FP16 或者 BF16 以及 SQ/PQ 等各种量化的优化。
其五,易用性。Milvus 计划在下半年将增加支持 SQL,成为全球第一个支持 SQL 的向量数据库。同时,团队也将对接一些大模型生态如 Hugging face、OpenAI、Spark 等。此外,Milvus 与 Paddle 社区也有非常紧密的合作。
其六,标量数据处理能力。标量和向量的混合查询是未来几年的趋势,这一点毋庸置疑。为此,团队也做了很多准备,包括新一代标量的执行引擎的研发、对 Json,list/set 等更多复杂数据类型提供支持。
最后,我们通过 Zilliz Cloud 提供全托管的 SaaS 服务,这也将大大降低大家使用向量检索的成本与门槛。如果想要体验 Zilliz Cloud 的更多功能,欢迎访问 https://zilliz.com/cloud 。
点击链接即可了解更多现场细节:【QCon】万物皆可向量化:Milvus 的现状与未来 – Zilliz 合伙人 栾小凡_哔哩哔哩_bilibili
如果你觉得我们分享的内容还不错,请不要吝啬给我们一些鼓励:点赞、喜欢或者分享给你的小伙伴! 活动信息、技术分享和招聘速递请关注:
如果你对我们的项目感兴趣请关注:
用于存储向量并创建索引的数据库 Milvus用于构建模型推理流水线的框架 Towhee万物皆可向量化, QCon 全球软件开发大会, Zilliz 合伙人, 技术总监