AI 的浪潮席卷而来,各行各业都在积极探索 AI 的落地应用,无论是为了提升工作效率,还是为了在同事和领导面前展现技术实力,技术先行者们都跃跃欲试。在众多 AI 落地场景中,**知识库(Retrieval Augmented Generation, RAG)**因其技术成熟且能快速发挥 AI 价值的特点,成为企业优先考虑的方案。

什么是 RAG 知识库?

简单来说,RAG 知识库就是让 AI 针对用户提出的特定知识问题,给出准确的回答。其应用场景广泛,例如:

  1. 内部员工问答:解答企业规章制度、工作流程等问题。
  2. 智能客服:为客户提供产品或服务咨询。
  3. 产品文档助手:帮助用户快速查找产品使用说明、常见问题等。
  4. ...

市面上有许多关于如何搭建 RAG 知识库的技术方案,本文将不赘述具体实现细节。今天,我们重点讨论 RAG 实践中一个最令人头疼的问题:如何设计切片方案才能最大限度地提升问题回答的准确率? 我将免费分享一个我们团队在实践中探索出的高效技术设计方案,它几乎可以申请专利!

为什么传统知识库方案回答不够准确?

目前主流的知识库切片方案是将帮助文档切分成多个小块,然后将这些小块内容输入给 AI 进行学习,再由 AI 根据学习到的内容回答用户问题。这种方式存在诸多问题,影响回答的准确性:

  • 版本管理难题:文档往往有多个版本。新旧版本用户可能期望 AI 基于不同版本的文档进行回答。如果所有版本都进行切片,不仅存储成本高,更容易导致 AI 混淆,给出不准确的答案。例如,老版本的客户需要老文档的答案,而新版本的客户则需要新文档的答案,一旦版本错误,回答的准确性就会大打折扣。
  • 跨页知识点割裂:当一个知识点的内容恰好位于切片边界时,比如跨越第 10 页和第 11 页,就会被分割到两个不同的切片中。这种割裂会导致 AI 无法完整地理解该知识点,从而给出不准确的答案。例如,AI 单次读取内容有限(假设只能一次存储 10 页内容),一个关键知识点被拆分到两个切片后,AI 难以将其关联起来,导致回答不准确。

解决方案:告别文档切片,直接存储“问答对”

我们的解决方案颠覆了主流做法:不要直接对文档进行切片,而是将知识库中的内容直接存储为“问答对”!

设想一下,用户使用知识库的方式就是提问。如果我们向量数据库中存储的内容本身就是经过提炼的问答对,AI 在进行语义匹配时将更容易找到相关信息。

这种方案有以下显著优势:

  • 更高的匹配度:用户提问时,直接与预设的“问答对”进行匹配,极大提升了匹配的精准度。
  • 避免内容割裂:一个问答对通常不会长到需要被分割成多个切片,从而避免了传统切片方案中跨页知识点被割裂的问题。
  • 完美的版本管理:我们可以为每个问答对设置版本号,从而完美解决了文档版本管理的问题。当用户指定版本时,AI 可以精准地调用对应版本的问答对进行回答,显著提升回答准确率。

RAG 落地实践中的“坑”与我们的解决方案

尽管问答对切片方案显著提升了问题回复的准确率,但在实际落地 RAG 项目中,我们仍然遇到了一些常见难题。下面将分享这些潜在的“坑”以及我们的具体解决方案:

  1. 图片和附件如何保存?

这可能是许多人容易忽视的问题。传统文档切片方案中,图片和附件都随文档一并处理。但当我们转为存储“问答对”时,这些非文本资料应该如何安放呢?

答案非常简单:在存储问答对到向量数据库时,可以利用其备注字段来保存这些图片、附件等资料的链接或标识。

为什么不要直接存到问答对中?

  • 保证回答质量和准确度:问答对是 RAG 回答质量和准确度的核心。我们的所有设计都应尽量避免“污染”问答对,保证其相对独立和精炼。
  • 方便后期维护:将截图、附件等内容与问答对本身分离,后续更新图片或附件时会非常方便,只需更新备注字段,而无需 AI 重新学习或更新问答对内容。
  1. 如何让大语言模型帮你生成问答对?

这是一个关键步骤。我们的做法是:

首先,向大语言模型清晰地说明你提供的技术文档内容。然后,指示它根据这些文档内容,为你生成问答对。

不传之秘: 节省 50% 成本的对话优化技巧 在实际操作中,你可能会觉得需要和大语言模型进行多次对话才能完成问答对的生成。然而,我们发现一个技巧可以立省 50% 的成本:如图所示,对话看似进行了两次,但实际上我们只进行了一次对话。这是怎么做到的呢?秘密在于,我们可以伪造与大语言模型的对话历史记录。例如,截图中大语言模型回答的“好的,我将在后续任务参考上述文档。请告诉我你的具体任务”,这其实是我们自己伪造的历史记录。这让大语言模型误以为这是第二次对话,但实际上,这仍是与大模型进行的第一次有效对话,从而避免了重复的上下文传输成本。 注意看大模型回答的 Summary 信息! 在生成问答对时,我们故意让大模型也创建了 Summary 信息。这个 Summary 非常有用,它能让大模型在最终给用户回复时,更快更好地理解和回答问题,提高响应效率和准确性。
  1. 问答对的保存结构

一个问答对我们保存的内容大致如下,涵盖了问答的核心信息以及有助于检索和理解的元数据:

我们的实践经验与技术架构

技术架构

在技术架构层面,我们的 RAG 方案围绕以下三个核心环节构建:

  • 构建 - ETL(数据提取、切片、向量化)
  • 检索 - Retrieval(混合检索 + RRF排序)
  • 生成 - Generation(问答模式 + 思考模式)

部署方案

我们的知识库部署方案采用了以下数据库:

  • Qdrant 向量数据库:用于存储和检索向量化的问答对。
  • MySQL 数据库:用于存储问答对的元数据以及其他结构化信息。

部署方案概览如下图所示:



效果评估与总结

可能有人会觉得“回答准确率从 60% 飙至 95%!AI 知识库救命方案”这个标题有些标题党嫌疑。但事实上,这是我们方案落地后,通过我们以及客户评估得出的真实效果。虽然具体的产品对比视频涉及我们独有的知识,不便直接公开展示,但我相信通过上述详细的方案分享,内行的朋友们自然能够理解其价值和效果。

我们的经验证明,通过将知识库切片方案从传统文档切片转变为问答对存储,并结合上述优化技巧,能够显著提升 AI 知识库的回答准确率,真正发挥 AI 在知识管理中的巨大潜力。

回答准确率从60%飙至95%!AI知识库救命方案的更多相关文章

  1. 花十分钟,让你变成AI产品经理

    花十分钟,让你变成AI产品经理 https://www.jianshu.com/p/eba6a1ca98a4 先说一下你阅读本文可以得到什么.你能得到AI的理论知识框架:你能学习到如何成为一个AI产品 ...

  2. AI中台——智能聊天机器人平台的架构与应用(分享实录)

    内容来源:宜信技术学院第3期技术沙龙-线上直播|AI中台——智能聊天机器人平台 主讲人:宜信科技中心AI中台团队负责人王东 导读:随着“中台”战略的提出,目前宜信中台建设在思想理念及架构设计上都已经取 ...

  3. 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退

    AI早期成就,相对朴素形式化环境,不要求世界知识.如IBM深蓝(Deep Blue)国际象棋系统,1997,击败世界冠军Garry Kasparov(Hsu,2002).国际象棋,简单领域,64个位置 ...

  4. MOBA英雄AI设计分享

    转自:http://www.gamelook.com.cn/2018/07/333877 文/wataloo 1  设计概要 1.1  设计原则和目的 英雄AI的目的主要有: 1.新手过渡局,让玩家刚 ...

  5. 游戏AI的生命力源自哪里?为你揭开MOBA AI的秘密!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由wataloo发表在专栏wataloo的试验田 1 设计概要 1.1 设计原则和目的 英雄AI的目的主要有: 1.新手过渡局,让玩家刚 ...

  6. 百度AI开发平台简介

    AIstudio https://aistudio.baidu.com/aistudio/index 关于AI Studio AI Studio是基于百度深度学习平台飞桨的一站式AI开发平台,提供在线 ...

  7. 博客与AI

    最近AI自动生成技术文章和答案在圈子里面引起了很大轰动,Stack Overflow暂时拒绝接收GPT生成的结果.我也经常性地浏览或者编写博客,但是最近我使用new bing或者ChatGPT的过程中 ...

  8. Ficow 的 AI 平台快速上手指南(ChatGPT, NewBing, ChatGLM-6B, cursor.so)

    本文首发于 Ficow Shen's Blog,原文地址: Ficow 的 AI 平台快速上手指南(ChatGPT, NewBing, ChatGLM-6B, cursor.so). 内容概览 前言 ...

  9. 释放至强平台 AI 加速潜能 汇医慧影打造全周期 AI 医学影像解决方案

    基于英特尔架构实现软硬协同加速,显著提升新冠肺炎.乳腺癌等疾病的检测和筛查效率,并帮助医疗科研平台预防"维度灾难"问题 <PAGE 1 LEFT COLUMN: CUSTOM ...

  10. 2021北航敏捷软工Beta阶段评分与总结

    概述 Beta 阶段评分,按照之前的规则,主要组成部分为: 博客部分,基于 Beta 阶段博客的评分(每篇正规博客 10 分,每篇 Scrum5 分,评定方式类比往年) 评审部分,基于 Beta 阶段 ...

随机推荐

  1. 请详细描述 MySQL 的 B+ 树中查询数据的全过程

    MySQL 的 B+ 树中查询数据的全过程 在 MySQL 中,B+ 树被广泛用于实现索引,特别是 InnoDB 存储引擎中的聚簇索引.B+ 树是一种平衡树,具有良好的查询性能.本文将详细描述在 B+ ...

  2. Nacos源码—1.Nacos服务注册发现分析一

    大纲 1.客户端如何发起服务注册 + 发送服务心跳 2.服务端如何处理客户端的服务注册请求 3.注册服务-如何实现高并发支撑上百万服务注册 4.内存注册表-如何处理注册表的高并发读写冲突 1.客户端如 ...

  3. Java中的位运算符、移位运算符

    目录 1 概述 2 位运算符 2.1 $(与) 2.2 |(或) 2.3 ^(异或) 2.4 ~(非) 3 移位运算 3.1 左移运算符:<< 3.2 右移运算符:>> 3.3 ...

  4. FastAPI与Tortoise-ORM开发的神奇之旅

    title: FastAPI与Tortoise-ORM开发的神奇之旅 date: 2025/05/05 00:15:48 updated: 2025/05/05 00:15:48 author: cm ...

  5. HMM - (补充) 参数求解之 F/B 算法细节

    回顾 上篇通过EM算法思想来求解 HMM 的参数 \(\theta=(\pi, A,B)\) 即 初始状态概率(向量), 状态转移概率(矩阵), 发射概率矩阵. 在上帝视角, 即已知隐变量 Z , 则 ...

  6. WindowsPE文件格式入门06.手写最小PE

    https://bpsend.net/thread-346-1-1.html 实现目标 实现目标:手写实现不大于 200 Byte大小的PE文件(又名:畸形PE/变形PE),要求MessageBox弹 ...

  7. File与IO流之File练习

    创建文件夹,并在其中创建文件 package Java_test; import java.io.*; public class Test { public static void main(Stri ...

  8. post 报头注入

    1.user-agent 注入: 使用情况:万能密码无法绕过安全验证,用户名无法注入,通过查看源代码分析执行的动作. bp抓包修改user_agent的数据如下 User-Agent: ' or ud ...

  9. 我们不可能永远都在救火 ——Scrum中技术债务“偿还”指南

    技术债务是指开发人员为了加速软件开发,在应该采用最佳方案时进行了妥协,改用了短期内能加速软件开发的方案,以至于未来给自己带来额外的开发负担. 软件工程师 Ward Cunningham首次将技术的复杂 ...

  10. cpp零碎知识点小记

    字符串读取方法记录 记录 个人小结: 按整行读到string ,推荐用 方法2 getline(cin, string) 按整行读到char[] ,推荐用 方法4 cin.getline(cin, c ...