智能 AI 应用为什么需要知识库

news2025/1/18 8:53:32

智能 AI 应用为什么需要知识库

上回我们讲到如何在 Dify 上搭建企业知识库,并引入大语言模型应用中,实现企业内部知识助手。 使用 Dify 快速搭建企业内部知识助手。

其中提到的企业知识库,正是 “检索增强生成(Retrieval-Augmented Generation)” 技术的一种具体实现方式。

在深入探讨 RAG 之前,我们先来了解一下大型语言模型 (LLM) 的一个特性,或者说局限性。

大语言模型 (LLM) 的局限性

大型语言模型 (LLM),是基于大量数据进行预训练的超大型深度学习模型。这些模型经过海量文本数据训练,能够理解和生成人类语言,执行各种自然语言处理(NLP)任务,如文本生成、翻译、问答和摘要等。

大型语言模型 (LLM) 有一个显著特点,对于训练数据之外的内容,它无法准确预测,因为它没有"学习"过这些知识。因此,AI 在面对这类问题时会回答"不知道"。

那么,我们该如何让 AI 模型掌握企业内部知识呢?难道只能重新训练一个大模型?对于大多数企业来说,这个方案的成本显然过高且没有必要。

尽管可以通过微调 (Fine-tuning) 大幅降低大模型训练成本,但相比 RAG,微调仍然具有较高的成本(高配置设备、微调技术、效果验证、时间成本等)。如果仅需要进行内容补充,而不要求模型具备特定的行为或输出模式,那么 RAG 是现阶段较为适合的解决方案。

RAG 检索增强生成

检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。在 LLM 本就强大的功能基础上,RAG 可将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。

让我们来看看 RAG 能实现什么效果,仍以上面的问题为例:“2024年欧冠冠军是谁?”

我们先关联一个简单的欧冠知识库:

然后再重新与 AI 对话:

可以发现 AI 通过知识库,“学习” 到了2024欧冠赛事的 “知识”。

RAG 是如何让 AI 完成 “学习” 的?

实际上很简单,通过上下文把知识告诉 AI。我们把两次对话记录列出来,大家就能明白了。

无 RAG (知识库)问答:
角色对话内容
用户2024年欧冠冠军是谁?
AI抱歉,我不清楚。
有 RAG (知识库)问答:
角色对话内容
上下文2024年欧冠联赛,代表西班牙的皇家马德里队在欧冠决赛中以2比0击败德国队多特蒙德,夺得冠军。
用户2024年欧冠冠军是谁?
AI2024年欧冠冠军是皇家马德里队。他们在欧冠决赛中以2比0击败了德国队多特蒙德,从而夺得冠军。

有 RAG (知识库)的问答记录,相比无 RAG (知识库)的问答记录,多了一条隐藏的(使用者看不见)的上下文消息。 在使用者提问之前,与使用者问题相关的知识内容被提取出来,并作为上文一并发送给AI模型。 这使得 AI 模型"学习"到了相关知识,并作出正确的回答。

至于具体如何完成检索,我们暂时先不深入探讨细节。

如何搭建高质量的 RAG 知识库

要搭建高质量的 RAG 知识库,文档的质量对增强检索的效果起到最直接最重要的作用。

我们仍然使用 Dify Cloud 上的知识库作为案例,知识库的其他配置暂且不谈,这次我们只聚焦于文本分段与清洗。 文本分段有自动分段和自定义分段两种方式,不熟悉的使用者建议采用自动分段。

使用自动文本分段时,对文档要求较高,上传文档前可对文档做以下检查:

  1. 1. 确保文档格式统一,结构简单,易于处理;

  2. 2. 移除不必要的格式信息,保留关键结构,移除特殊编码(多媒体、url等无意义或非文本信息);

  3. 3. 避免相似内容多次重复出现;

  4. 4. 避免超长自然段,较长段落可以预先分割成更小的分段,同时注意避免信息切割;

  5. 5. 删除不相关的内容(如页眉页脚、企业信息、联系方式等);

  6. 6. 删除敏感信息;

  7. 7. 避免超大文档,可先切分为多个小文档,更方便调整、检查与测试。

关于文本分段的个人理解:

1. 尽可能切分得足够细: 文本切分得越细,AI 模型预测(回答)得就越准确。大段的上下文会影响 AI 的回答,特别是在参杂了其他无效信息的情况下。 大段的上下文也会增加使用成本(消耗更多prompt tokens)。

2. 避免完整的信息被切割: 同时不能切分得太细,完整的信息应该尽量避免被切割。例如上面的案例,如果将文本这样分段,则可能无法得到准确的回答。

# 1
2024年欧冠联赛,冠军得主是代表西班牙的

# 2
皇家马德里队在欧冠决赛中以2比0击败德国队多特蒙德

第二段文本分段可能会因为文本内容不匹配而无法被成功检索。

大段内容特别容易出现这种情况,编辑文档时,应尽可能避免同一句话、段落被换行、换页、特殊符号等切割开。

3. 进行召回测试 / RAG 评估: Dify 提供了知识库的召回测试工具,可以准备好常见问题,对知识库进行命中测试。可以测试对应问题检索(命中)的知识库文档分段,以此快速判断检索效果。 通过测试结果,可及时调整文本分段。

然而,手动逐个问题进行召回测试并不符合程序员的风格。在下一篇文章中,我将分享如何使用 “Dify workflow 应用 + ragas” 实现 Dify 知识库自动化评估

总结

本文探讨了智能 AI 应用为什么需要知识库,主要围绕以下几点展开:

  1. 1. 大语言模型(LLM)的局限性:LLM 无法准确预测训练数据之外的内容。

  2. 2. RAG(检索增强生成)技术:通过引入外部知识库,使 AI 能够访问和利用特定领域或组织的内部知识,无需重新训练模型。

  3. 3. RAG 的工作原理:在用户提问前,将相关知识作为上下文提供给 AI 模型,使其能够"学习"并回答相关问题。

  4. 4. 高质量 RAG 知识库的搭建:强调了文档质量的重要性,并提供了文本分段与清洗的具体建议。

  5. 5. 文本分段的关键点:包括细致切分、避免信息切割、以及进行召回测试/RAG评估。

通过合理运用 RAG 技术和构建高质量知识库,可以显著提升 AI 应用的实用性,使其能够更好地服务于特定领域或企业的需求。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

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

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2207955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开放式耳机哪个品牌音质好?开放式耳机排行榜10强推荐!

耳机在我们的日常生活中扮演着重要角色,无论是上班路上还是运动时,它们都能帮助我们放松并增强安全感。选择一款合适的耳机很关键,开放式耳机因其设计,在不同场合都适用,特别是在运动时,它们提供了稳固而舒…

【笔记】Day2.2.1表设计说明

主键ID一般使用bigint类型 运送类型 使用比int更小的tinyint类型 eg:普快代表1 特快代表2(没写反) 关联城市 varchar 2代表京津冀 3代表江浙沪 4代表川渝 首重和续重都有小数点 故使用double 轻抛系数都为整数 故使用int 创建时间和修改…

基于SpringBoot+Vue的体育馆场地预约系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

【测试】自动化——概念篇

自动化测试 自动化概念 什么是自动化? 自动化操作在生活中处处可见,自动化洒水机、自动洗手液、超市自动闸门。 自动化测试——>自动的测试软件(减少人力和时间的消耗,提高软件的测试质量)。 人力:2…

自定义实现项目进度图

目录 0.背景 1. 演示效果 2.实现原理 2.1 处理表头数据(日期对应的是星期几) 2.2 获取项目数据 2.3 合并单元格 3.源码 0.背景 目遇到一个展示项目进度的需求,类似甘特图的效果,不同的是,每一个项目都有计划和实…

MySQL:基于Spring监听Binlog日志

binlog的三种模式 MySQL 的二进制日志(binlog)有三种不同的格式,通常被称为 binlog 模式。这三种模式分别是 Statement 模式、Row 模式和Mixed 模式。 Statement 模式: 在 Statement 模式下,MySQL 记录每个会更改数…

代码随想录训练营Day30 | 491.递增子序列 | 46.全排列 | 47.全排列 II

学习文档:代码随想录 (programmercarl.com) 学习视频:代码随想录算法公开课 | 最强算法公开课 | 代码随想录 (programmercarl.com) Leetcode 491. 非递减子序列 题目描述 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列…

AI赋能!0基础小白自媒体创业,成功率提升90%的秘诀?

本文背景 好多小伙伴也想写公众号文章,但是自己又没有写过,不知道如何开始。 今天分享个小方法,就算是写作新手,也能靠 AI 快速上手,写出好内容! 一起来看看怎么用 AI 工具 助力写作,提高效率&a…

STM32(十八):实时时钟

时间戳 Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒。 时间戳存储在一个秒计数器中,秒计数器为32位/64位的整型变量。 世界上所有时区的秒计数器相同,不同时…

一次性使用病毒采样管-保存运输呼吸道 肠道等多种病毒样本的有力工具!

远离了新冠病毒却又来了流感病毒、手足口、猴痘病毒、诺如病毒等多种病毒,对于众多病毒的检测诊断,确保病毒样本的高效采集、安全保存和准确运输是至关重要的。为了满足这一需求,一次性使用病毒采样管应运而生。 在研究、医学诊断和疫情监测…

10.12 标准IO

练习:针对fscanf和fprintf练习 有如下结构体: typedef struct Student { char name[20]; int id; float chinese;//语文成绩 float math; float english; float physical; float chemical; float biological; }stu_t; *Pstu_t//声明学生结构体类型 在栈区…

逆向思维的力量:Prolog在游戏编程中的应用与代码实践

在主流游戏开发语言如C++、Python和Unity统治的今天,Prolog作为一种基于逻辑编程的语言,似乎与游戏开发不太沾边。然而,Prolog的逻辑推理机制和简洁的语法在解决复杂逻辑问题上有着独特的优势,尤其是在人工智能(AI)决策和路径规划等领域。通过Prolog,我们可以以极简的代…

【C++】C++的引用

一.引用 1.引用的概念和定义 引用不是新定义⼀个变量,而是给已存在变量取了⼀个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同⼀块内存空间。 类型& 引用别名 引用对象; 2.引用的特征 a.引用在定义时必须初始化 …

从数据到结论:ChatGPT如何帮助你完成复杂的数据分析?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 在撰写学术论文时,数据分析往往是最具挑战性的部分之一。无论是定量研究还是定性研究,如何有效分析数据、得出合理结论都是关键所在。 ChatGPT的优势 1. 快速处理大量数据 在面对大…

Qt-窗口对话框QColorDialog的使用(52)

目录 描述 常用方法 使用 描述 颜⾊对话框的功能是允许⽤⼾选择颜⾊。继承⾃ QDialog 类。颜⾊对话框如下图⽰: 常用方法 1、QColorDialog (QWidget *parent nullptr) //创建对象的同时设置⽗对象 2、QColorDialog(const QColor &initial, QWidget *paren…

2024开放原子开源生态大会 | 麒麟信安携手openEuler共建开源生态,共塑产业未来

9月25日-27日,由开放原子开源基金会主办的2024开放原子开源生态大会在北京开幕,大会以“开源赋能产业,生态共筑未来”为主题。工业和信息化部党组书记、部长金壮龙,北京市委副书记、市长殷勇,工业和信息化部总经济师、…

Chromium HTML Tags与c++接口对应关系分析

一、HTML 标签(HTML Tags) <a> <head> <img>等等这些标签在c中的接口是如何定义和查找的呢&#xff1f; 更多标签参考&#xff1a; HTML <a> target 属性 (w3school.com.cn) 二、html_tag_names.json5 (third_party\blink\renderer\core\html\htm…

QD1-P10 HTML 超链接标签(a)下篇

本节学习&#xff1a;HTML a 标签实现大纲跳转&#xff08;锚点&#xff09;。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p10 本节实现大纲&#xff08;锚点&#xff09;跳转 ​​ 完整 HTML 代码 <!DOCTYPE html> <html><head><meta charset&…

python爬虫--某动漫信息采集

python爬虫--tx动漫 一、采集主页信息二、采集详情页信息三、代码供参考一、采集主页信息 略。 二、采集详情页信息 如上图所示,使用xpath提取详情页的标题、作者、评分、人气、评论人数等数据。 三、代码供参考 import csv import time import random import requests fr…

弧光保护装置的应用

长期以来&#xff0c;人们对中低压母线的保护一直不够重视&#xff0c;没有保护来快速切除配电站所内部发生的故障&#xff0c;往往使故障发展扩大造成开关设备被严重烧毁&#xff0c;有的甚至发展成“火烧连营”的事故。同时&#xff0c;变电站的变压器由于遭受外部短路电流冲…