【ErnieRAG】用 ErnieBot 打造通用企业级RAG应用

ErnieRAG:用ErnieBot打造企业级RAG应用

项目背景

随着人工智能技术的深入发展,大语言模型(Large Language Model,LLM)已如狂潮般席卷了各行各业,其在自然语言处理、计算机视觉、推荐系统等诸多领域展现出了惊人的实力。然而,当面对特定行业或专业领域的深入应用时,通用大模型往往会遇到专业知识不足的挑战。针对这一问题,相对于成本高昂且效果不稳定的SFT或Lora微调方法,基于检索增强生成(Retrieval-Augmented Generation,RAG)的技术方案正成为越来越多企业的优选。
RAG架构是一种创新性的解决方案,它通过将大模型的生成能力与外部知识库的检索能力相结合,实现了在回答问题或执行任务时能够引入最新、最准确的专业知识。具体而言,当用户提出问题或需求时,RAG架构首先会在外部知识库中进行向量搜索,通过语义相似度匹配找到相关的专业知识,然后再将这些知识融入到大模型的生成过程中,从而得到更加专业、准确的回答或结果。

本文将基于文心大模型ErniebotMilvus向量数据库,从零开始搭建一个通用的RAG企业级应用。

项目演示

RAG原理

如上图所示,我把一个RAG拆成了知识数据流用户数据流。首先,先讲解知识数据流。

  • 知识数据流:首先需要准备行业知识文档,可以是word、pdf、excel等容易被编程语言读取的格式文件,因为文档都是连续的长文档,为了匹配和计算方便,需要对长文本进行分块,分成若干个短文档,文本分块有自动分块(参考langchain的文本处理和截断),也有人工分块(工作量大,但因为人工对语义分块有优势,后期输出效果会更好),本项目采用人工分块的方式,提前将回答整理成了逐行的文档。分块后,将若干分块分别输入embedding模型中进行编码,将分块原文本存入关系型数据库,embedding编码向量存入向量数据库(本文为了方便演示,直接将原文本存入向量数据库内,但产业落地时建议将原文本存入关系型数据库,用id进行映射对应,获得更快的读取速度和方便知识管理)。
  • 用户数据流:用户输入一个问题,对用户的问题进行embedding编码得到语义向量,将向量与向量数据库里存的数据向量进行计算比对,取相似度最大的值,通过id对应找到知识原文本,再将用户问题与知识原文本交给大语言模型进行理解、提取、修饰等二次加工,输出专业准确的回答。

环境安装

RAG应用环境主要包括两部分,一部分是大模型LLM,即文心Erniebot;另一部分是向量数据库,在这个案例中我们使用Milvus的轻量级版本Milvus Lite,方便在Jupyter notebook中给大家运行展示。

In [ ]

!pip install "milvus[client]" --user
!pip install --upgrade erniebot --user

Erniebot配置

请注意,这一步需要把erniebot.access_token替换成自己的Token。
Token获取链接 -> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

军哥说AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值