见字如面,我是一臻

90后新手奶爸,探索Doris x AI
❝当 AI 浪潮席卷而来,如何让OLAP数据库不只是
存数据的仓库,而是变身AI的核心数据底座? 字节跳动基于 Apache Doris 打造的 DataMind 给出了满分答卷! 但直接读原文,担心太硬啃不动? 今天,一臻直接把混合搜索、GraphRAG、AI 函数、企业AI问数...这些硬核内容,画成趣味漫。6 章漫图带你秒懂字节跳动如何基于 Apache Doris 打破数据孤岛,实现 AI + Data 的一站式融合!

面对 AI 技术重构数据处理方式的浪潮,字节跳动亟需构建一款能够统一处理非结构化与结构化数据的AI + Data融合引擎。
在评估了市面上多种开源方案后,团队最终选择了功能完善且社区活跃的 Apache Doris 作为基座。
通过二次开发,基于 Apache Doris 的DataMind 引擎诞生了,它不仅继承了 Doris 卓越的 OLAP 性能,还深度融合了 Hybrid Search(混合搜索)、AI Function(AI 函数)及 GraphRAG 三大核心 AI 能力,并致力于将这些成果回馈给开源社区(如 Doris 4.0 版本)。

为了在 Doris 中实现高效的混合搜索,团队集成了向量检索与全文检索能力。
在向量侧,基于 Faiss 实现了 HNSW 与 IVF_PQ 索引,利用倒排索引的 Bitmap 结果进行预过滤,平衡了性能与成本。
在全文检索侧,针对传统 Segment 级别 BM25 算法在数据合并时评分波动的问题,创新性地实现了 Tablet-level BM25,通过聚合全局统计信息确保评分一致性。
最终,通过虚拟列投影下推的执行计划优化,实现一站式的混合搜索与统一排序。

DataMind 通过补齐 AI 函数极大地简化了开发体验。
AI_QUERY 允许直接调用大模型将非结构化文本转化为结构化数据,TEXT_EMBEDDING 则实现了数据清洗与向量生成的闭环。
更关键的是,为了支持 Rerank 模型及复杂的数据处理,团队实现了 Python UDF。该架构采用多进程设计解决 GIL 锁问题,并通过管道与 Marshal 序列化机制实现高效数据传输,同时将 Python 子进程生命周期与 Doris Pipeline Task 绑定,让用户仅需一条 SQL 即可串联起复杂的 AI 业务流程。

针对复杂的知识检索需求,字节跳动在 Doris 之上构建了 GraphRAG(结合图数据库与 RAG(Retrieval-Augmented Generation)的技术) 能力。
通过多层设计与 SDK 封装,业务团队无需关注底层的实体表与关系表逻辑,即可通过简单的接口调用实现深度推理,大幅缩短了 AI 应用的研发周期。

在落地企业级AI 问数场景时,团队面临数据湖海量数据无法全量同步,以及 Doris 内外表 Catalog 命名差异导致 AI 生成 SQL 适配困难的痛点。
为此,DataMind 实施了智能路由 + 统一鉴权的架构方案。

基于Apache Doris 的 DataMind 已在字节跳动内部的智能简历搜索、ByteRAG 平台及 CapCut 内容治理等多个核心业务场景中落地验证,显著提升了研发与审核效率。

未来,字节团队将继续基于 Apache Doris 深耕Data + AI领域,探索更完善的企业 AI 问数架构,如 PRD2Code 等提效场景。
同时,作为 Apache Doris 社区的活跃成员,字节跳动将持续把 DataMind 的技术成果(如 Doris 4.0 中的相关特性)回馈给开源社区,与开发者共建繁荣生态!

完