导航


HTML

CSS

JavaScript

浏览器 & 网络

版本管理

框架

构建工具

TypeScript

性能优化

算法

UI、组件库

Node

业务技能

针对性攻坚

AI

软实力


RAG 原理

一、RAG 架构

RAG(检索增强生成)模型结合了语言模型和信息检索技术,当回答问题或生成文本时,首先从大量文档中检索相关信息。随后,利用这些检索到的信息来生成响应或文本,从而提高预测质量。一个通用的RAG管道 它主要由3个步骤组成:

  1. 索引:文档被分割成块,编码成向量,并存储在向量数据库中;
  2. 检索:根据语义相似性检索与问题最相关的前 k 个块;
  3. 生成:将原问题和检索到的词块一起输入大语言模型中,生成最终答案。

image.png

RAG 工作流程图

image.png

二、开源 LLMOPS 平台对比

Dify 安装部署

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

使用 Docker Compose 部署

# Clone Dify 源代码至本地
git clone <https://github.com/langgenius/dify.git>

进入 dify 源代码的 docker 目录


cd dify/docker
cp .env.example .env
docker compose up -d

部署结果:

[+] Running 7/7
✔ Container docker-web-1       Started
✔ Container docker-redis-1     Started                                                                                                                                                                                       1.1s

✔ Container docker-weaviate-1  Started                                                                                                                                                                                       0.9s

✔ Container docker-db-1        Started                                                                                                                                                                                       0.0s

✔ Container docker-worker-1    Started                                                                                                                                                                                       0.7s

✔ Container docker-api-1       Started                                                                                                                                                                                       0.8s

✔ Container docker-nginx-1     Started
                                                                                                                                                                                   1.0s

最后检查是否所有容器都正常运行:

docker compose ps

image.png

包括 3 个业务服务 api / worker / web,以及 4 个基础组件 weaviate / db / redis / nginx。

Fastgpt 安装部署

专注于知识库问答系统,支持数据处理和工作流编排。提供可视化界面,适合快速搭建智能客服等应用。

# 1.一键安装
mkdir fastgpt
cd fastgpt
curl -O <https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json>

# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml <https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-pgvector.yml>

# 2. 访问 FastGPT
  可以通过 <http://localhost:3000> 直接访问(注意开放防火墙),首次运行,会自动初始化 root 用户,密码为 1234(与docker-compose.yml环境变量里设置的 DEFAULT_ROOT_PSW。),日志可能会提示一次MongoServerError: Unable to read from a snapshot due to pending collection catalog changes;可忽略。

Ragflow 安装部署

仅做知识库及知识图谱调研

# 1.在 /etc/sysctl.conf 设置 vm.max_map_count ,否则会报错:Can't connect to ES cluster
$vi  /etc/sysctl.conf
vm.max_map_count=262144
$ sysctl -p         #配置生效

# 2.使用docker-compose安装ragflow

$ git clone <https://github.com/infiniflow/ragflow.git>
$ cd ragflow/docker
$ git checkout -f v0.17.2
$ docker compose -f docker-compose.yml -p ragflow up -d       #同一主机如安装多个服务,为避免冲突可以用-p 指定项目空间

安装配置主要事项:

  1. 版本要求

Docker 建议24以上,

docker-compose建议 V2.20以上

2. 修改docker国内镜像源( swr.cn-north-4.myhuaweicloud.com):

sed -i 's|image: |image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/|g' docker-compose.yaml

3. 参数调优:(配置文件.env一般在安装包的docker目录下)

上传限制改300M: NGINX_CLIENT_MAX_BODY_SIZEUPLOAD_FILE_SIZE_LIMIT

三、模型选择

3.1 对比分析

以下是对 GLM-4-9B-Chat、Qwen-Qwen-32B 和 DeepSeek-R1-Distill-Qwen-32B 的对比分析

对比维度 GLM-4-9B-Chat Qwen-Qwen-32B DeepSeek-R1-Distill-Qwen-32B
开发团队 智谱AI (Zhipu AI) 阿里云 (Alibaba Cloud) 深度求索 (DeepSeek)
模型架构 基于GLM-4架构优化 基于Transformer架构 基于Qwen-2.5 32B的蒸馏版本
参数量 9B 32B 32B (蒸馏后参数量可能压缩)
训练数据 多领域混合数据(中英文为主) 大规模多语言、多模态数据 基于Qwen-32B蒸馏,可能优化特定任务数据
上下文窗口 支持长上下文(如128K tokens) 长上下文支持(如32K tokens) 继承Qwen长上下文能力,可能优化推理效率
多语言支持 中英文为主,部分多语言能力 中英文和多语言支持更广泛 依赖蒸馏源模型(Qwen-32B的多语言能力)
推理速度 轻量级(9B参数),适合实时交互 较大模型(32B),推理速度较慢 蒸馏后推理速度提升,优于原生Qwen-32B
适用场景 对话系统、轻量级任务 复杂NLP任务(文本生成、代码、数学推理等) 平衡性能与效率,适合企业级部署和特定任务
开源情况 部分开源(社区版) 开源(Apache 2.0协议) 部分开源或商业授权
计算资源需求 较低(适合中小型GPU部署) 较高(需大显存和高算力) 中等(蒸馏后资源需求降低)
特点 对话优化,低延迟响应 多任务通用性强,支持复杂推理 轻量化部署,推理效率与性能平衡

补充说明:

  1. 模型定位:
    1. GLM-4-9B-Chat:垂直领域技术问答,适合需要快速响应的应用(如客服、聊天机器人),多模态分析(需 GLM-4V 版本)。
    2. Qwen-32B:通用性强,多语言交互,实时客服,适合复杂推理任务(如代码生成、数学问题解答)。
    3. DeepSeek-R1-Distill-Qwen-32B:基于Qwen蒸馏,在保持性能的同时兼顾推理效率(适合高负载推理任务 和决策)
  2. 性能与效率权衡:
    1. Qwen-32B参数量大,综合能力更强,但资源消耗高。
    2. DeepSeek-R1-Distill-Qwen-32B通过蒸馏技术压缩模型,会牺牲少量性能以换取效率。
    3. GLM-4-9B在轻量化场景下更具性价比。
  3. 应用建议:
    1. 若需低成本实时交互及超长上下文,优先考虑 GLM-4-9B-Chat。
    2. 追求复杂任务和多语言交互表现,选择 Qwen-32B。
    3. 追求推理与决策分析,可尝试 DeepSeek-R1-Distill。

模型总结与资源准备:

模型参数与 GPU 显存计算

LLM模型