【值得收藏】从零开始构建RAG评估体系:让知识库建设从“凭感觉“到“可度量“

让知识库变得可度量:RAG知识库评估框架探索实践

一、背景与目的:知识库建设不能再「凭感觉」了

过去半年我们花了很多工夫来建设企业内部研发知识库,除了智能体的搭建,在知识输入上,我们梳理导入了包含研发架构管理制度与规范、各类内部平台操作与引导的知识内容,但始终不好回答一个关键问题:

内部知识库到底建设得好不好?有没有真正帮助到研发?

以前的评判方法非常粗糙:

  • 看访问量?有人点了不代表有用
  • 看采纳率?人工抽样能覆盖的问题太有限,而且采不采纳完全看抽样人主观判断
  • 问一线同事?夸你两句你还当真了

最终只能靠「感觉」来判断效果,而这在一个科技团队内显然不那么「工程」与「科学」。

所以我们希望知识库的评估能够:

  • 可量化(给出明确的分数)
  • 可复现(能重复执行)
  • 可对比(知道新知识有没有提升效果)

因此,我们构建了一套知识库评估框架,系统地评测量化我们的知识库与智能体回答能力。

二、指标体系:用三项核心算法量化知识库效果

要评价一个RAG知识库,业内已经有了比较成熟的评估框架,在探索中我们先选了三个核心指标:

1. Recall Score(检索召回率)

Recall Score 指标主要用来衡量系统是否检索到了正确的知识。构建知识库的第一步是检索,检索不准,后续生成就无从谈起。我们采用了余弦相似度(cosine similarity)来作衡量:

余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。

其中emb代表文字经过向量模型后的向量值,retrieved是检索到的文档内容,ground_truth是我们写的基准答案,如果知识库能够正确检索出与真实答案语义一致的内容,RecallScore 就会更高。

2. Correctness(答案正确度)

Correctness 指标用来衡量模型回答是否正确。即便检索正常,模型仍可能出现表达偏差或理解不准。我们使用同样的余弦相似度,将模型回答与标准答案比较:

上一个RecallScore指标是用来衡量找得对不对,而Correctness是用来衡量如Qwen3、Deepseek等大模型是否正确利用了检索出来的材料做出回答。直观区别就是Correctness中的answer是经过了大模型后的输出答案。

有四个场景可以进一步加深理解:

  • 场景 A:RecallScore低,Correctness

反映的是检索错了,但模型乱答出了正确内容(就是蒙对)。要么是问题非常简单,要么是模型本身能力很强,这种情况说明知识库白建了,而且还会让我们误以为自己做得很好。

  • 场景 B:RecallScore高,Correctness

检索对了,但模型回答错了。这说明知识库建设没问题,问题出在模型生成阶段,可以考虑换模型。

  • 场景 C:RecallScore高,Correctness

这就是我们想要的场景,知识库建设得好,模型回答得也好。

  • 场景 D:RecallScore低,Correctness

这说明知识库检索链路错误 ,导致模型没有拿到正确文档 ,并且模型也没办法推理出正确答案。好好回炉重建吧。

3. Groundedness(基于知识库程度)

Groundedness 指标用来衡量模型回答是否引用了知识库,而不是瞎编。简而言之就是用来衡量是否有「幻觉」,大模型是否自己加戏了。我们将模型回答与检索文档进行相似度匹配:

Groundedness说明回答基于知识库,可信度高;低Groundedness说明有幻觉风险,需要调整。

仔细看就会发现,这三个指标就是对retrievedanswerground_truth这三个向量值C32求余弦,总结如下:

指标衡量什么反映什么
RecallScore检索是否找到正确知识RAG是否准确
Correctness回答是否正确大模型对问题理解与表达是否准确
Groundedness回答是否基于知识大模型是否有幻觉

三、系统建设:一套轻量可扩展的评估Pipeline

整个评测系统采用Python编写,在内网运行。总体架构沿用了知识系统自身的基础能力,因此非常轻量、易维护。(一句话就是,接口现成的,代码AI写的,vibe coding我谢谢你)

有四个核心模块:

1. retriever.py:向量检索

在向量模型上,用与内部知识库一致的bge-m3向量模型,确保评估一致性。

2. generator.py:调用 Dify 知识库问答接口

实际就是用Dify走一遍和真实用户一致的流程,都是标准接口。

3. evaluator.py:基于向量的三项指标计算

每个问题都会输出三项评分,算三个余弦值,代码就不贴了。

4. main.py:跑一遍完整测试集

也不赘述了。有需要可以去搂一眼:https://github.com/dumbray/rag_eval

四、评估结果与优化方向

我们先梳理了20道内部研发平台的高频问题,作为第一版benchmark,实际跑下来的平均分:

  • Recall Score:0.54
  • Correctness:0.75
  • Groundedness:0.59

整体表现只能说还行吧,提升空间还是很大的,而且这个分数跟人工抽样采纳率和用户的实际体验感受也差不多。

  • 检索准确率(0.54)说明检索还需要增强
  • 回答正确率(0.75)说明模型生成能力相对稳定,回答质量是可以了
  • Groundedness (0.59)说明还是有少量幻觉存在的

未来我们计划从以下几方面持续演进:

1. 扩充基准问题集

当前20道题还属于「小样本」,未来会持续扩展:

  • 问题数量起码要到100+
  • 问题覆盖范围要扩展至平台、工具链、流程规范等全范围
  • 从实际日志、问答群中收集真实问题

还有就是现有问题是人工写的,后续也可以让大模型自动从知识库中抽取问题扩充问题集

2. 扩展评估指标

目前是纯向量相似度,但未来可以考虑:

  • 引入 LLM-based 的一致性判断(如 GPT-Score)
  • 引入 NLI(自然语言推理)判断回答是否“逻辑正确”
  • 使用更适合评估的 Ranking 模型

(这些都是大模型跟我说的,有没有可行性之后再说吧)

五、呆瑞说

通过这套测评体系,我们可以把知识库建设效果从「我们觉得还不错」变成可度量、可追踪、可优化的工程能力。当然这个体系才刚运行,后续还有很多路要走,而且知识库这个形式也在不断发展,后续有了新的成果再跟大家汇报。

普通人如何抓住AI大模型的风口?

为什么要学AI大模型

当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!

DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

在这里插入图片描述

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
在这里插入图片描述

AI大模型开发工程师对AI大模型需要了解到什么程度呢?我们先看一下招聘需求:

在这里插入图片描述

知道人家要什么能力,一切就好办了!我整理了AI大模型开发工程师需要掌握的知识如下:

大模型基础知识

你得知道市面上的大模型产品生态和产品线;还要了解Llama、Qwen等开源大模型与OpenAI等闭源模型的能力差异;以及了解开源模型的二次开发优势,以及闭源模型的商业化限制,等等。

img

了解这些技术的目的在于建立与算法工程师的共通语言,确保能够沟通项目需求,同时具备管理AI项目进展、合理分配项目资源、把握和控制项目成本的能力。

产品经理还需要有业务sense,这其实就又回到了产品人的看家本领上。我们知道先阶段AI的局限性还非常大,模型生成的内容不理想甚至错误的情况屡见不鲜。因此AI产品经理看技术,更多的是从技术边界、成本等角度出发,选择合适的技术方案来实现需求,甚至用业务来补足技术的短板。

AI Agent

现阶段,AI Agent的发展可谓是百花齐放,甚至有人说,Agent就是未来应用该有的样子,所以这个LLM的重要分支,必须要掌握。

Agent,中文名为“智能体”,由控制端(Brain)、感知端(Perception)和行动端(Action)组成,是一种能够在特定环境中自主行动、感知环境、做出决策并与其他Agent或人类进行交互的计算机程序或实体。简单来说就是给大模型这个大脑装上“记忆”、装上“手”和“脚”,让它自动完成工作。

Agent的核心特性

自主性: 能够独立做出决策,不依赖人类的直接控制。

适应性: 能够根据环境的变化调整其行为。

交互性: 能够与人类或其他系统进行有效沟通和交互。

img

对于大模型开发工程师来说,学习Agent更多的是理解它的设计理念和工作方式。零代码的大模型应用开发平台也有很多,比如dify、coze,拿来做一个小项目,你就会发现,其实并不难。

AI 应用项目开发流程

如果产品形态和开发模式都和过去不一样了,那还画啥原型?怎么排项目周期?这将深刻影响产品经理这个岗位本身的价值构成,所以每个AI产品经理都必须要了解它。

img

看着都是新词,其实接触起来,也不难。

从0到1的大模型系统学习籽料

最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师(吴文俊奖得主)
在这里插入图片描述

给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。

图片

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。
在这里插入图片描述

AI大模型系统学习路线

在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

  • 基础篇,包括了大模型的基本情况,核心原理,带你认识了解大模型提示词,Transformer架构,预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门AI大模型
  • 进阶篇,你将掌握RAG,Langchain、Agent的核心原理和应用,学习如何微调大模型,让大模型更适合自己的行业需求,私有化部署大模型,让自己的数据更加安全
  • 项目实战篇,会手把手一步步带着大家练习企业级落地项目,比如电商行业的智能客服、智能销售项目,教育行业的智慧校园、智能辅导项目等等

img

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。

AI大模型入门到实战的视频教程+项目包

看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

在这里插入图片描述
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

海量AI大模型必读的经典书籍(PDF)

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
在这里插入图片描述

600+AI大模型报告(实时更新)

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

AI大模型面试真题+答案解析

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
在这里插入图片描述

在这里插入图片描述

AI时代,企业最需要的是既懂技术、又有实战经验的复合型人才,**当前人工智能岗位需求多,薪资高,前景好。**在职场里,选对赛道就能赢在起跑线。抓住AI这个风口,相信下一个人生赢家就是你!机会,永远留给有准备的人。

如何获取?

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

### 构建RAG系统初学者指南 #### 定义RAG系统 检索增强生成(Retrieval-Augmented Generation, RAG)是一种结合了密集向量索引和自然语言处理模型的技术,用于提高文本生成的质量和准确性。通过利用外部知识库中的信息来补充训练数据集的信息不足之处。 #### 准备工作环境 为了从头开始创建一个简单的RAG系统,首先需要安装必要的软件包并设置开发环境。对于Python用户来说,可以依赖Hugging Face Transformers库以及Faiss或其他相似的矢量化搜索引擎来进行实现[^2]。 ```bash pip install transformers faiss-cpu datasets torch ``` #### 数据收集与预处理 构建有效的RAG应用之前,获取高质量的数据源至关重要。这些资源可能包括但不限于网页抓取的内容、百科全书条目或是特定领域内的文档集合。接着要对原始素材执行清洗操作去除噪声,并将其转换成适合后续使用的格式。 #### 创建语料库索引 一旦拥有了经过清理后的文本片段列表,则可以通过编码器将它们映射到高维空间里的稠密表示形式——即所谓的嵌入(embeddings),之后再把这些嵌入存储在一个高效的近似最近邻(Near Neighbor Search,NNS)结构里以便快速查找最相关的项。 ```python from sentence_transformers import SentenceTransformer import numpy as np import faiss # 使用预训练的语言模型作为编码器 encoder = SentenceTransformer('all-MiniLM-L6-v2') # 假设有如下一些句子组成的语料库 corpus_sentences = ["Example document one.", "Another example text."] # 获取每篇文档对应的embedding embeddings = encoder.encode(corpus_sentences) # 初始化FAISS索引并向其中添加所有的embeddings dimensionality = embeddings.shape[1] index = faiss.IndexFlatL2(dimensionality) index.add(np.array([emb.tolist() for emb in embeddings])) ``` #### 集成查询接口 最后一步就是设计能够接收输入问题并将之转化为潜在匹配答案的过程。这通常涉及到先计算询问字符串相对于整个数据库内各个项目的相似度得分;随后挑选出排名靠前的结果返回给调用方。 ```python def retrieve_top_k(query: str, k=5): query_embedding = encoder.encode([query]) distances, indices = index.search( np.array(query_embedding).astype("float32"), k=k ) top_results = [(distances[0][i], corpus_sentences[idx]) for i, idx in enumerate(indices[0])] return sorted(top_results, key=lambda x:x[0]) print(retrieve_top_k("Find me something interesting")) ``` 以上代码展示了如何基于已有的工具链搭建起基本框架,在此基础上还可以进一步探索优化策略比如微调编码组件或者引入更复杂的评分机制等方法提升性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值