一、RAG架构
RAG(检索增强生成)模型结合了语言模型和信息检索技术,当回答问题或生成文本时,首先从大量文档中检索相关信息。随后,利用这些检索到的信息来生成响应或文本,从而提高预测质量。一个通用的RAG管道 它主要由3个步骤组成:
索引:文档被分割成块,编码成向量,并存储在向量数据库中;
检索:根据语义相似性检索与问题最相关的前 k 个块;
生成:将原问题和检索到的词块一起输入大语言模型中,生成最终答案。
二、技术细节
三、主流LLMOPS平台功能对比
功能 | Dify.AI | Fastgpt | Flowise | OpenAssistantAPI | Ollama |
编排方法 | API+应用程序导向 | API+应用程序导向 | API+应用程序 | API导向 | API+应用程序 |
支持的LLMs | 丰富多样 | 丰富多样 | 丰富多样 | 仅限OpenAI | 丰富多样 |
Rag引擎 | ✅ | ✅ | ✅ | ✅ | ✅ |
Agent | ✅ | ✅ | ✅ | ✅ | ❎ |
工作流 | ✅ | ✅ | ✅ | ❎ | ❎ |
可观测性 | ✅ | ❎ | ❎ | ❎ | ❎ |
易用性 | 容易 | 一般 | 较复杂 | 一般 | 容易 |
Function Calling(工具) | 功能强大 | 处于实验阶段 | 功能强大 | 功能强大 | ❎ |
企业功能(SSO、访问控制) | ✅ | ✅ | ✅ | ❎ | ❎ |
本地部署 | ✅ | ✅ | ✅ | ❎ | ✅ |
四、知识库构建方案
2.1 部署方式
Dify+xinference 或fastgpt+xinference
2.2 基本架构
LLM模型对话+Embedding文本向量转化+Milvus向量数据库+rerank模型进行重排序
2.3 模型选择与说明
LLM模型(chatglm4):是通过深度学习技术训练出来的能够理解和生成自然语言文本的模型。 用于对话生成。文本抽取、内容创作、翻译等
Embedding模型(bge-large-zh或M3e): 是用于将高维数据(如单词、短语、句子、图像等)映射到低维连续向量空间的模型。在自然语言处理(NLP)和其他领域中,嵌入模型是一个关键技术,它可以将离散的符号表示转换为便于计算和分析的数值向量
Rerank模型(bge-large-reranker) :Reranker模型是一类用于重新排序初步检索结果的模型,其目的是提高检索结果的相关性和质量
向量数据库(Milvus):是一种专门用于存储和处理向量数据的数据库。向量是一种由数字组成的数组,通常用于表示文本、图像、音频等数据的特征。 向量数据库通常使用基于向量相似性搜索的算法,如 K-近邻搜索、欧几里得距离等。可以快速地搜索向量数据库中的相似向量,从而实现高效的相似性搜索和分析。
1)使用Dify+Xinference构建RAG知识库-CSDN博客