当前位置: 首页 > ai >正文

OceanBase向量检索在货拉拉的探索和实践

货拉拉成立于2013年,成长于粤港澳大湾区,是从事同城跨城货运、企业版物流服务、搬家、零担、跑腿、冷运、汽车租售及车后市场服务的互联网物流商城。截至2024年,货拉拉在全球拥有1670万月活用户和168万月活司机,业务覆盖全球11个市场、400+城市,并在全球设有6个数据中心。

一、大模型应用场景的挑战

货拉拉基于自身在物流领域 AI 落地的深厚积累,已在 14+ 个业务或部门,50+ 个真实业务场景探索和落地大模型应用。在引入大模型的过程中,面临着其在垂直领域知识的缺乏、时效性不足以及数据安全隐患等挑战。为应对这些问题,采用了业界较为通用的解决方案的解决方案——检索增强生成技术(Retrieval-Augmented Generation, RAG),通过引入外部数据,让大模型的回答从原来的“闭卷”变为“开卷”。RAG 通过整合领域专有知识、私有数据以及实时数据,显著降低了答案生成的不确定性,增强了数据安全性,从而有效解决了大模型的固有问题,提升了回答的准确性和实用性。

RAG 的核心在于将强大的语言模型能力与向量数据库的能力相结合,企业在实施 RAG 方案的过程中,通常需要结合一个向量数据库。向量数据库在处理多模数据和语义检索方面具有独特的优势,具体体现在以下几个方面:

存储非结构化数据:向量数据库能够有效存储和管理多模态数据,如音频、视频、图片和文本等。这些数据通常具有规模庞大、信息密度高、处理成本高的特点。

向量化表示:通过神经网络提取数据特征,将其转换为高维空间中的坐标点。向量化表示赋予数据语义表达能力,使其适用于相似性检索。

检索非结构化数据:通过计算向量间的距离(如内积或欧氏距离),识别出最相似的向量。检索过程涉及近邻图的遍历,需要进行大量的浮点运算,以实现高效的相似性匹配。

二、向量数据库选型思考

(一)原有架构与痛点

现有的架构包含基础设施层(CPU 和 GPU 两种机型)、存储层(向量数据库、ES等)、检索层(以图索引为主,多种检索类型)、接入层与入口层。并且在国内外共有 5 个集群,单集群内存配置在 380 +GB,单表数据量最大为2000万。

痛点1:动态 schema

随着业务的快速发展,频繁的字段增删操作成为常态。目前的解决方案是通过新建表、导入现有数据并最终重建索引来实现,这一流程相对繁琐。对于某些数据量较大的表,索引重建的耗时可能长达十几个小时。此外,索引重建过程对 CPU 和内存资源消耗极大,容易引发线上业务抖动。

痛点2:混合检索

向量检索在相似语义检索和多模态数据理解方面具有显著优势,而全文检索则在精准匹配、短文本及低频词汇检索上表现优异。在企业应用中,仅依赖单一检索方式难以满足业务对检索精度的高要求。为了弥补全文检索的缺陷,引入了Elasticsearch来作为全文检索引擎,这也导致了整体架构的复杂性增加,同时提升了系统的维护难度。对于用户而言,需要在应用层实现复杂的reranking逻辑,并且得到的相似度得分难以统一,从而增加了使用成本。因此,业务希望引入一站式混合索引能力。

痛点3:运维难度大

稳定性能力弱:向量数据库本身存在不稳定性,BUG 较多;缺乏专家经验使得问题排查变得困难;监控指标有限,问题定位困难。

扩展性不足:节点的横向扩展能力较差,数据迁移依赖人工;数据分片的管理和运维过程复杂。

权限认证能力弱:现有的权限认证机制不够完善,容易引发数据泄漏和安全问题,需要自行实现权限管理,增加了开发和运维的复杂性。

社区活跃度差:虽然项目仍在维护,但更新频率较低,社区贡献和开发者参与度有限,且社区功能和生态发展缓慢,无法满足业务未来的需求。

http://www.xdnf.cn/news/14627.html

相关文章:

  • 【深度学习新浪潮】什么是上下文工程?
  • 大语言模型(LLM)初探:核心概念与应用场景
  • HarmonyOS 5分布式数据库有哪些性能指标?
  • 分布式系统 - 分布式缓存及方案实现
  • 【CUDA调优指南】合并访存
  • 基于R语言的亚组分析与森林图绘制1
  • 3 大语言模型预训练数据-3.2 数据处理-3.2.2 冗余去除——1.SimHash算法处理冗余信息的核心原理
  • Git常用操作详解
  • “Ubuntu 18.04.6 LTS“ 配置网卡静态IP
  • python的kivy框架界面布局方法详解
  • 【Pandas】pandas DataFrame asfreq
  • 【android bluetooth 协议分析 10】【AVRCP详解1】【PlaybackStateCompat类如何查看】
  • 系统性能优化-5 选择合适的锁
  • Golang单例实现
  • 如何将FPGA设计验证效率提升1000倍以上(1)
  • Vue 英雄列表搜索与排序功能实现
  • Python训练营-Day40-训练和测试的规范写法
  • 鸿蒙开发深入解析:Data Ability 数据共享机制全面指南
  • FPGA基础 -- Verilog 验证平台之 **cocotb 验证 `阶乘计算模块(factorial)` 的例子**
  • 攻防世界-MISC-MeowMeowMeow
  • PostgreSQL(知识片):查询/计算Selectivity(可选性)
  • 将两个mp4的文件合并在一起形成新的文件
  • 从0开始学习R语言--Day31--概率图模型
  • 【MV】编排8:基于时间线数据多层分段避免过度拟合特定歌曲
  • 《C++初阶之类和对象》【初始化列表 + 自定义类型转换 + static成员】
  • FunASR搭建语音识别服务和VAD检测
  • 飞算 JavaAI 插件炸场!一小时搭图书管理系统
  • Java并发编程中高效缓存设计的哲学
  • Word2Vec 原理是什么
  • vscode 插件