文章目录
前言
随着人工智能的不断发展,大语言模型这门技术也越来越重要,很多人和企业都开始将大语言模型投入生产之中,本文就将从理论知识介绍了如何构建一个以RAG技术为核心功能的基于自建知识库的本地大模型,并提供一些思路。
一、什么是RAG
检索增强生成RAG(Retrieval- Augmented Generation)在2020年Facebook AI Research(FAIR)团队所写的《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》中被首次提及。
RAG技术是一种在自然语言处理领域(NLP)的关键方法,通过改进问题表述来提升回答质量及效率。它广泛应用于问答系统、对话管理、机器人助手、在线教育、医疗健康、金融服务、法律咨询、学术研究等多个领域,能够帮助用户获取更准确和个性化的答案或解决方案。随着人工智能的发展,RAG的应用范围将持续扩展并深度影响这些领域的信息处理与决策支持过程。
二、为什么使用RAG
众所周知,训练一个通用大模型需要大量的数据并且消耗很大的算力和财力。这对于中小型企业尤其是非互联网企业来说并不具有性价比,且企业存在大量独有的知识资料,这使通用大模型在该领域的泛化能力较弱,存在严重的大模型幻觉问题。而RAG技术很好的缓解了这两个问题。打一个通俗易懂的比方,通用大模型就像接受了九年制义务教育的高中生,配合了RAG技术,他就变成了对每一领域有一定研究的大学生。
三、RAG流程
图片来自NVIDIA,相关链接: 大模型结合 RAG 构建客服场景自动问答系统
我将进行简单的展示具体的环境搭建和代码请看之后的实践部分
1. 数据处理
数据预处理
- 异常清洗
- 移除不可见字符
- 去除乱码
- 去除网页标识符
- 去除表情
- 过滤
- 检查文档字重复率
- 检查文档词重复率
- 检查文档的特殊字符率
- 检查文档的色情暴力率
- 检查文档困惑度
- 去重
- 去隐私
- 去除Email
- 去除IP地址
- 去除电话号码
推荐使用千帆大模型平台推出的数据清洗
文件录入
pdf文件
代码如下(示例):
from langchain_community