本周系统设计复习:
- 7 个系统设计概念(10 分钟)
- RAG vs. 代理式 RAG
- Kubernetes 速查表
- 6 种节省存储的数据结构
- 每个开发者应该知道的 5 个数据库范式
- 现在招聘
RAG vs. 代理式 RAG
RAG(检索增强生成)
RAG 是一种结合信息检索与大型语言模型以生成答案的方法。以下是 RAG 如何在高层面工作:
模型从数据源检索相关数据 然后提取到向量数据库从预索引模型。
通过检索信息并与查询提示合并来增强提示
大型语言模型(如 GPT、Claude 或 Gemini)理解组合查询 并生成最终响应。
传统 RAG 具有简单检索、有限适应性,并依赖静态知识,使其对动态和实时信息不够灵活。
代理式 RAG(Agentic RAG)
代理式 RAG 通过引入可以做出决策、选择工具,甚至细化查询以获得更准确和灵活响应的 AI 代理来改进这一点。以下是代理式 RAG 如何在高层面工作:
用户查询定向到 AI 代理进行处理
代理使用短期和长期记忆跟踪查询上下文 它还制定检索策略并为工作选择适当工具。
数据获取过程可以使用工具 如向量搜索、多个代理和 MCP 服务器,从知识库收集相关数据。
代理然后结合检索数据与查询和系统提示 它将此数据传递给 LLM。
LLM 处理优化的输入以回答用户查询
Kubernetes 速查表
Kubernetes(K8S)是一个开源容器编排平台,最初由 Google 开发,现在由云原生计算基金会(CNCF)维护。
开发和操作
使用 Kubernetes 工作的开发者创建描述其应用的清单文件,并指定实例数量、资源需求和其他配置。
Kubernetes 使用控制平面和一组节点操作
控制平面部署在主节点上 管理集群的整体状态。它由 API 服务器、Etcd、控制器管理器和调度器等组件组成。
节点是 Kubernetes 集群中的 worker 每个节点包含如 Kubelet 和 Kube-proxy 的组件,负责运行容器化应用。
一些顶级 Kubernetes 资源
Pods 封装一个或多个容器。
Deployment 管理 Pod 的更高级抽象。
Service 提供稳定方式暴露和访问一组 Pod 的抽象。
Volume 帮助在 Pod 重启或重新创建之间保留数据的存储资源。
水平 Pod 自动扩展器 基于观察到的 CPU 利用率、内存使用或自定义指标帮助扩展 Deployment、ReplicaSet 或 StatefulSet 中的 Pod 数量。它监控资源使用并调整副本数量以匹配期望资源目标。
6 种节省存储的数据结构
1. 布隆过滤器(Bloom Filter)
概率数据结构,用于测试元素是否是集合的成员。
2. HyperLogLog
使用最小内存近似多集中唯一元素数量的算法。
3. 布谷鸟过滤器(Cuckoo Filter)
布隆过滤器的节省空间替代方案,支持删除并具有更好的查找性能。
4. Minhash
使用压缩哈希签名快速估计大集之间相似性的技术。
5. 跳表(SkipList)
分层链表结构,允许快速搜索、插入和删除操作。
6. Count-Min Sketch
近似大数据流中项频率的概率数据结构。
5 个数据库范式
规范化旨在通过组织数据到逻辑、依赖驱动的形式来消除冗余并强制数据完整性。
1. 第一范式(1NF)
移除重复组并确保每列中的原子值。
2. 第二范式(2NF)
通过确保所有非键列依赖于完整主键来移除部分依赖。
3. 第三范式(3NF)
消除传递依赖,确保非键列仅依赖于主键。
4. Boyce-Codd 范式(BCNF)
通过移除由于重叠候选键存在的异常来加强 3NF。如果一列依赖于其他列,那么该”其他列”必须足以唯一标识每行。
5. 第四范式(4NF)
确保表不为同一实体混合多个独立的一对多关系。
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP169: RAG vs Agentic RAG。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。