收藏!小白程序员轻松入门大模型:从ChatGPT到Claude Code,一篇读懂RAG检索双塔与单塔架构

发布时间:2026/7/24 14:32:48

收藏!小白程序员轻松入门大模型:从ChatGPT到Claude Code,一篇读懂RAG检索双塔与单塔架构 本文探讨了RAG系统中双塔和单塔检索架构的原理、优缺点及配合使用方法。双塔结构通过分离编码Query和Doc实现快速召回但精度不足单塔结构通过联合编码捕捉细粒度语义精度高但计算成本高。实际应用中两者结合的两阶段检索架构兼顾效率与精度是提升检索质量的关键。文章适合对大模型和AI检索感兴趣的小白和程序员学习。在平时的学习过程中我都会将与 ChatGPT 之间的对话整理对应的知识文档但是这却给我带来了一个难题。本来是想研究 A 这个问题但是由此却衍生出了 B、C、D 等问题而对于每一个问题的探究几乎都可以梳理总结成一篇文章。以往都是让 ChatGPT 先总结成文章然后我自己再进行修改原因就是内容不成体系、逻辑不够严谨。但是久而久之这就变成了一种负担想着不整理吧又觉得可惜整理吧又太费时间。于是这两天开始下定决心要学习使用 Claude Code 来解决这个问题。在经过让它看我过去写的10篇文章总结我的行文风格100多轮交互以后终于调教了一个可用的 Skill。后续只需要将 ChatGPT 初步总结素材丢个它它就能生成与我风格相仿的文章。以下所有文本内容均由千问驱动 Claude Code 生成插图由 Gemini 根据 Claude Code 提供的文本生成。很多人第一次搭建 RAG 系统时都会有一个疑问既然 Embedding 模型能把文本变成向量为什么还要再加一个 Rerank 模型刚开始你可能觉得Rerank 模型大概就是锦上添花的东西有它没它区别应该不大。但真正用过之后你会发现加不加 Rerank检索结果的质量简直是两个世界。这背后的原因涉及到 RAG 检索架构中一个非常核心的设计。今天我们就来把它一次讲透。1 什么是双塔结构双塔Bi-Encoder是 RAG 系统中最常用的检索架构也是几乎所有向量数据库的底层基础。理解双塔的工作原理是理解整个 RAG 检索机制的第一步。1.1 双塔结构思想原理双塔的核心思想可以用一句话概括Query 和 Doc 分开编码最后在向量空间中计算相似度。例如在 RAG 应用开发中我们会先通过 Embedding 模型也就是 Encoder将所有的离线文档都转换成向量存入到向量库中。当用户提问时我们再将 Query 通过 Embedding 模型将其转换成向量然后同向量库中的向量进行相似度比较。离线阶段Doc → Encoder → 向量 d存入向量库查询阶段Query → Encoder → 向量 q → 与向量库比较 → 返回相似文档同时对于相似性的度量常用的有Cosine 相似度、Inner Product或L2 距离。你可以把整个过程想象成图书馆的图书检索系统每本书都有一个编号向量读者查询时先拿到查询词的编号然后在书架上找编号最接近的书。图 1. 双塔检索流程图【插图双塔检索流程图】左侧展示离线阶段多篇文档通过 Encoder 转换成向量后存入向量数据库右侧展示查询阶段用户 Query 通过同一个 Encoder 转换成向量与库中向量进行相似度比较最终返回最相似的文档。1.2 双塔结构的优势说完了工作原理我们自然要问为什么双塔结构能支撑百万级甚至更大规模的数据检索这得益于它的一个关键设计**文档向量可以提前离线计算好并存入向量数据库查询时只需计算一次 Query 向量然后在向量索引中做近似搜索ANN。**这意味着时间复杂度可以从线性的**O(N)降低到接近O(log N)**。举个例子如果你有 100 万篇文档使用双塔结构时系统可以在对数级别的时间内找到最相关的文档而不用逐一比较 100 万次。这也是为什么你的 RAG 系统能够秒级响应而不是等待几分钟。向量数据库天生适配双塔结构。Milvus、Chroma、Weaviate 等所有主流向量数据库的底层都是这个逻辑。1.3 双塔结构的不足不过双塔结构也有明显的局限性这也是为什么它不能单独使用的原因。问题在于**Query 和 Doc 在编码时彼此不知道对方。**换句话说没有交叉注意力机制。模型只能把整段文本压缩成一个固定长度的向量一旦压缩完成细粒度的匹配信息就会丢失。举个例子假设你的知识库中有一篇文档讲的是苹果公司 2024 年的财报数据当用户搜索苹果营收时双塔结构可能会把这篇文档排在后面因为它在编码时无法捕捉到苹果和苹果公司的细粒度对应关系它只能基于整体语义的粗略匹配。所以你会发现只用双塔检索时结果往往是看起来相关但不够精准。2 什么是单塔结构说完了双塔我们再来看单塔结构是怎么解决精度问题的。单塔Cross-Encoder是另一种常见的架构通常用于 Reranking 场景。它的做法与双塔完全不同。2.1 单塔结构思想原理双塔是分开编码而单塔是将 Query 和 Doc拼接在一起输入模型进行联合编码。具体来说我们会把 Query 和 Doc 的文本拼接成一个序列格式为[CLS] Query 文本 [SEP] Doc 文本然后通过 Embedding 模型进行编码最后输出一个相关性分数。输入[CLS] 用户问题 [SEP] 候选文档 [SEP] ↓ Transformer 联合编码 ↓ 相关性分数0 到 1 之间你可以把单塔理解成一个专业的审稿人它会仔细阅读问题和文档的每一个字然后判断这篇文档是否真的回答了问题。2.2 单塔结构的优势单塔结构最大的优势在于表达能力强能够捕捉细粒度的语义匹配。在 Cross-Encoder 中Query 的每个 token 可以关注 Doc 的每个 token这是完整的交叉注意力机制。这意味着模型可以学习到精确的短语对齐、细粒度的语义匹配、上下文的补全以及逻辑关系的判断。还是刚才的例子当用户搜索苹果营收文档中写的是Apple Inc.的年收入时单塔模型能够理解苹果和Apple Inc.是同一个实体营收和年收入是同一个概念从而给出更高的相关性分数。而双塔结构由于是分开编码很难捕捉到这种细粒度的语义对应。这种表达能力远强于双塔结构。2.3 单塔结构的缺陷然而单塔结构也有一个致命问题这导致它无法单独用于大规模检索。问题是计算成本过高不可扩展。假设有 100 万文档如果用 Cross-Encoder必须对每一个文档都跑一次完整的 Transformer 前向传播复杂度是O(N)。这意味着100 万次计算在工程上几乎不可用。想象一下每次用户发起查询你都要让模型跑 100 万次即使用上最好的 GPU响应时间也会达到秒级甚至分钟级这在实际应用中是完全无法接受的。图 2. 单塔与双塔计算量对比【插图单塔与双塔计算量对比】左侧双塔结构100 万文档只需计算 1 次 Query 向量右侧单塔结构100 万文档需要计算 100 万次用堆叠的 Embedding模型数量直观展示计算量差距。3 双塔单塔如何配合说到这里答案已经很明显了双塔和单塔各有所长也各有所短。那双塔能解决规模问题但精度不够单塔能解决精度问题但规模不行该怎么办工业界的标准答案是两者配合采用两阶段检索架构。3.1 两阶段架构思想这就是为什么你总会看到Embedding 加 Rerank的组合本质就是双塔加单塔。第一阶段的 Embedding 模型双塔负责从海量文档中快速召回一批候选保证不漏掉相关内容第二阶段的 Rerank 模型单塔负责对这批候选进行精确排序保证排在前面的真的是最相关的。这种设计思路和传统搜索引擎几乎一模一样先用倒排索引快速召回一批候选网页再用 PageRank 等算法进行精排。3.2 两阶段架构优势第一阶段100 万文档 → Top 50 候选双塔召回O(log N)第二阶段Top 50 候选 → Top 5 结果单塔精排O(50)第一阶段双塔召回从 100 万文档中快速筛选出 Top 50 候选目标是保证召回率并控制计算成本第二阶段单塔精排对 Top 50 候选进行精确排序输出 Top 5 最终结果目标是提升排序精度并修正语义偏差。这种架构兼顾了效率和精度既能秒级响应又能保证结果质量。图 3. 两阶段检索漏斗图【插图两阶段检索漏斗图】顶部宽口漏斗标注 100 万文档经过第一层双塔召回收缩到 Top 50 候选再经过第二层单塔精排输出 Top 5 结果。左侧标注时间复杂度从高到低的变化右侧标注从召回率优先到精度优先的转变。3.3 单双塔的本质差异从信息流的角度来看双塔和单塔的本质差异可以概括为两句话双塔是先压缩再比较。单塔是先交互再判断。双塔的本质是语义压缩匹配它将文本压缩成向量后再进行相似度计算单塔的本质是相关性函数学习它直接学习 Query 和 Doc 之间的相关性函数。压缩意味着信息丢失交互意味着表达能力更强。这就是两者精度差距的根源也是为什么必须两者配合的原因。3.4 实践指导理解了原理最后来回答一个实际问题你的 RAG 系统该怎么选如果你的文档规模超过1 万有向量数据库需要在线检索那么一定要用双塔做召回。这是毫无疑问的因为你不可能用单塔去处理百万级的文档。但如果你的系统出现以下情况说明该考虑加入单塔精排了检索结果看起来相关但不精准LLM 回答引用错 chunk相似度排序质量一般这些问题的根源都在于双塔的语义粗匹配特性无法做到精确判断。高质量 RAG 系统几乎都包含 Embedding 模型双塔和 Reranking 模型单塔两者缺一不可。4 总结双塔解决的是如何在海量数据中快速找到可能相关的内容。单塔解决的是这些候选内容里哪一个真的回答了问题。一句话带走双塔负责规模单塔负责精度双塔保证能找到单塔保证找得对。最后对于正在迷茫择业、想转行提升或是刚入门的程序员、编程小白来说有一个问题几乎人人都在问未来10年什么领域的职业发展潜力最大答案只有一个人工智能尤其是大模型方向当下人工智能行业正处于爆发式增长期其中大模型相关岗位更是供不应求薪资待遇直接拉满——字节跳动作为AI领域的头部玩家给硕士毕业的优质AI人才含大模型相关方向开出的月基础工资高达5万—6万元即便是非“人才计划”的普通应聘者月基础工资也能稳定在4万元左右。再看阿里、腾讯两大互联网大厂非“人才计划”的AI相关岗位应聘者月基础工资也约有3万元远超其他行业同资历岗位的薪资水平对于程序员、小白来说无疑是绝佳的转型和提升赛道。对于想入局大模型、抢占未来10年行业红利的程序员和小白来说现在正是最好的学习时机行业缺口大、大厂需求旺、薪资天花板高只要找准学习方向稳步提升技能就能轻松摆脱“低薪困境”抓住AI时代的职业机遇。如果你还不知道从何开始我自己整理一套全网最全最细的大模型零基础教程我也是一路自学走过来的很清楚小白前期学习的痛楚你要是没有方向还没有好的资源根本学不到东西下面是我整理的大模型学习资源希望能帮到你。扫码免费领取全部内容最后1、大模型学习路线2、从0到进阶大模型学习视频教程从入门到进阶这里都有跟着老师学习事半功倍。3、 入门必看大模型学习书籍文档.pdf书面上的技术书籍确实太多了这些是我精选出来的还有很多不在图里4、AI大模型最新行业报告2026最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5、面试试题/经验【大厂 AI 岗位面经分享107 道】【AI 大模型面试真题102 道】【LLMs 面试真题97 道】6、大模型项目实战配套源码适用人群四阶段学习规划共90天可落地执行第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容3、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻