- 概述
RAG(Retrieval Augmented Generation)检索增强生成技术,解决了LLM(Large Language Model)的知识局限性、in-context learning(上下文学习)的token限制、重新进行模型微调成本高以及数据安全考虑等痛点,以已有知识库作为背景知识,让AI模型从基于记忆和理解进行答案编造考试,转换成基于垂直领域知识库的开卷考试。 - 架构
分为在线和离线两部分。- 离线
离线部分主要是实现知识库的向量化存储和索引构建。大致包含了文档解析、拆分、入库以及构建索引等步骤。 - 在线
在线部分主要是实现Query的意图识别和结果生成。大致包含了Query的解析、基于相似度的查询匹配、构造prompt以及通过LLM输出结果等步骤。
- 离线
- 为什么用向量数据库
一方面查询场景不能简单通过文本的精确匹配 来得到结果,而是通过语义匹配 来得到结果。向量Embedding能充分包含语义信息;
另一方面向量数据库在向量的存储和查询上有特有的优势。- 文档解析拆分
文档解析拆分包含了数据清洗、文本/图片/表格的识别、数据分段等过程。目前已有对应的机器学习和深度学习模型,如RagFlow。- Query解析
由于用户提问往往具有模糊性和复杂性,需要对问题进行改写、增强、分解。- 查询路由
理解用户query后,在查询路由步骤,通过定义查询路由器以及各个查询数据插件,将用户查询情况传给LLM,通过LLM决策,决定接下来要调用哪个查询插件,然后调用执行路由选择的插件,最后将各个插件预定义格式返回的结果汇总