书生浦语RAG智能助理搭建(茴香豆)

一、什么是RAG:

1.RAG技术概述

         RAG ( Retrieval Augmented Generation)是一种结合了检索(Retrieval)和生成(Generation)的技术,旨在通过利用外部知识库增强大型语言模型(LLMs)的性能。它通过检索与用户输入相关的信息片段,并结合这些信息来生成更准确、更丰富的回答。
优点:解决LLMs在处理知识密集型任务时可能遇到的挑战 。提供更准确的回答、降低成本、实现外部记忆。  解决生成幻觉(hallucination )   、过时知识    、缺乏透明和可追溯的推理过程等问题。

应用:问答系统、文本生成、信息检索、图片描述

2.RAG工作原理

(在基于internLM和LangChain的知识库搭建中有介绍)

3.RAG和Fine-tune对比

LLM模型优化方法的比较:

主要分为:提示工程(promt engineering)、微调(finetune)、检索增强生成(RAG)

图中:横坐标代表对模型的适配度需求,纵坐标代表对外部数据知识的需求。提示工程表现都很差,既不能适应新的知识又不能对专业任务进行处理。微调是x高y低,检索增强生成x低y高。

4.RAG架构

4.1RAG流程示例:

4.2RAG流程范式

2020年发表的“Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”中提出。现发展为了如下三种范式。

Naive RAG:只有索引、检索、生成的最基本范式。适用于问答系统,信息检索

Advanced RAG:对检索前后都进行增强,在检索之前对用户的问题进行拓展或重写等处理,对于检索到的信息进行融合、总结、重新排序等处理,使信息收集和处理效率更高。使得RAG可以应用在摘要生成、内容推荐等领域

Modular RAG:对基础部分和后续各种优化技术和功能模块化,可以根据实际业务需求定制,完成多模态任务和对话系统等更高级的应用

4.3RAG常见优化方法

前两种办法属于提高向量数据库的质量来实现,后两种是针对查询过程进行的优化,即前检索和后检索部分

(1)嵌入式优化embeding optimization:

       结合稀疏编码器密集解码器多任务的方式来增强嵌入性能。

(2)索引优化indexing optimization:

       增强数据颗粒度细粒度分割(chunk)、优化索引结构对齐优化等策略来提升索引质量。

(3)查询优化query optimization:

      通过查询扩展转换使用户的问题更加的清晰,更加适合查询。(例如采用多查询方法,通过大模型生成的提示工程来拓展查询)

(4)上下文管理context curation:

       通过上下文重排上下文选择/压缩等方式来减少检索的冗余信息并且提高大模型的处理效率。(可以使用小一点的语言模型来监测和移除不重要的标记、或者训练一个信息提取器和信息压缩器)

以下优化方式属于优化 RAG 中的“R”:retrieval

(5)迭代检索Iterative Retrieva

        根据初始查询和迄今为止生成的文本进行重复搜索(即在RAG过程中,根据检索结果多次迭代检索知识,为大模型提供全面的知识基础)

(6)递归检索Recursive Retrieval
        迭代细化搜索查询链式推理(Chain-of-Thought)指导检索过程(即迭代细化查询来改进搜索结果的深度和相关性)

(7)自适应检索Adaptive Retrieval
       Flare , Self-RAG使用LLMs主动决定检索的最佳时机和内容

前7种是对RAG模块的优化,最后这一种自己对大模型动手

(8)直接微调大模型LLM Finetune

        检索微调、生成微调、双重微调

5.向量数据库

5.1数据存储:

将文本及其他数据通过其他预训练的模型转换为固定长度的向量表示,这些向量能够捕捉文本的语义信息。

5.2相似性检索:

根据用户的查询向量,使用向量数据库快速找出最相关的向量的过程。通常通过计算余弦相似度或其他相似性度量来完成。


检索结果根据相似度得分进行排序,最相关的文档将被用于后续的文本生成。

5.3向量表示的优化:

面对大规模数据及高速响应需求时候向量数据库需要进行优化:

(和生成内容的准确性有极大关系 )

包括使用更高级的文本编码技术,如句子嵌入或段落嵌入,以及对数据库进行优化以支持大规模向量搜索。

6.评估和测试

有学术需求的可以深入了解RAG评测框架。

7.总结

二、茴香豆

1.什么是茴香豆

最典型的问题就是帮助群聊回复。

2.茴香豆核心特征

开源免费(BSD-3-Clasue开源协议)

高效准确(混合大模型模式,专为群聊)

领域知识(RAG技术快速获取领域知识)

部署成本低(可以调用远端的大模型API,本地算力需求小)

安全(本地部署,保证隐私需求)

拓展性强(兼容及时交流软件,可以利用其他模型的API)

3.茴香豆架构

3.1组成部分

茴香豆个人知识助手有四个组成部分:

(1)个人知识库:

企业or个人的专业文档或项目表等可实时更新数据,包含Word、markdown、PPT、Excel、txt格式的文本(及其有用)。

还包含了自己设置的接收问题和拒答问题来控制助手回答范围

(2)前端:

用户交互端

(3)LLM后端:

支持本地调用大模型或者调用远端大模型的API。本地大模型支持书生浦语和通义千问的模型格式,远端打通了ChatGPT等调用。

(4)茴香豆:

整合上述三部分,打通工作流,形成了智能领域的知识问答助手。

3.2工作流程

茴香豆并不是一款单独的RAG应用

它有完整的应对实际场景的工作流设置(经过了团队的实践验证,实践性较好,真牛!!!)

工作流分为三部分:preprocess(预处理)、拒答工作流(rejection pipeline)、应答工作流(response pipeline)

预处理会将用户的筛选转为合适的问询进入拒答工作流问询本身分析以及数据库示例问题比较给出相关性得分由得分判断是否进入解答环境确认回答就进入应答流程答案生成并回答

可以通过操控LLM scoring的阈值来限定应答助手的回答频次

完整的茴香豆工作流:

为了生成更加准确有效的回答,茴香豆的应答模块采用了多来源检索,混合模型以及安全评估的方式来保证自己回答内容的准确性。

本地文件生成的数据库-网络搜索-知识图谱形式

综合信息来源进行评分筛选,方便调整输出内容的严谨性。

生成部分:使用本地模型和远端模型,使用混合模式来共同处理任务。

安全监测模块:LLM检验、NLP检验、时间筛选、消息撤回等保证回答内容安全性。

三、实战演示

1.intern Studio 部署茴香豆助手:

具体的操作步骤见如下文档,这里仅展示对话截图:

https://github.com/InternLM/Tutorial/blob/camp2/huixiangdou/readme.md

对话1:

对话2:

对话3(拒答):

对话4(效果不好):

 

2.在茴香豆 Web 版中创建自己领域的知识问答助手

  • 29
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值