初步本地跑通RAG知识库(二)模型、运行流程、系统资源实时占用梳理

Updated on

前言

让我们不废话,不绕弯子,直接讲结果——成本极高1+效果为屎。

起步条件内存64G2。因为单单是部署完各种基础设施本身就快把32G占完了,更遑论推理。Alas!

本文大部分由GLM-5生成,我来组合整理3。Prompt可参考如下4

有人用这段文字解释embedding,讲的专业又直白。你要基于示例文字的风格解释说明涉及本地构建知识库的知识,如解释LLM、embedding、reranker(和其他可能相关的模型),讲解在单一用户、窗口下的对RAG知识库问答的模型运作流程: 在我们将自然语言处理为数据时会将文本转为向量,这个过程被称作 embedding。语义相似的文本的向量会位置相近,语义相反的文本的向量位置相反。LLM 使用这样的数据做训练,预测出后续的向量,从而生成文本。

避免使用比喻和抽象到一定程度造成空泛表达,而是用简单语言重述专业表达,让专家看了觉得清爽,小白看了能看懂且不通过“讨巧”的娱乐化理解走认知弯路。

根据如下embedding的解说范式,重新组织对reranker的解说。

模型

Embedding Model (双塔模型):快且大略

 在我们将自然语言处理为数据时会将文本转为向量,这个过程被称作 embedding。而Embedding Model 就是可以将输入转化为连续的向量表示的模型。语义相似的文本的向量会位置相近,语义相反的文本的向量位置相反。然后通过计算这两个向量之间的距离来判断相似度,给出输出。

但问题在于虽然它懂语义,它是分别给问题、文档生成向量,这就导致无法捕捉“词与词之间的交互”。比如问题问“苹果的口感”,文档里写“苹果公司的口感(比喻)”。Embedding模型把它们各自转化向量时,可能都包含了“苹果”和“口感”的语义,导致向量距离很近,但它不知道这两个词拼在一起在特定语境下是荒谬的。

Reranker Model(交叉编码器):慢但精准

Reranker是专门用于精准计算文本对相关性的模型,它直接分析问题和文档结合后的逻辑匹配程度,输出一个相关性概率分数。比方说分辨“苹果”是指水果还是公司。

LLM

接收经过筛选的文档和问题5。它通过注意力机制关注输入中的所有内容,基于统计规律预测下一个最合理的字词,从而将检索到的信息组织成通顺的回答6

RAG 运作流程

向量化粗检索

系统将用户问题通过 Embedding 转为向量,在数据库中检索距离相近的文档片段,快速召回了语义相关的候选集。

显存/内存占用:向量可以预先计算好存起来。因而各个平台会先让你导入知识库做向量化,查询时模型只需要算问题的向量。模型本身推理需要占多少资源就占多少资源。

精打分排序过滤

Reranker 将问题与每个候选片段拼接,通过内部的全交互机制进行逻辑判断,输出相关性分数。系统保留高分片段,剔除低分片段。

显存/内存占用:需要把问题和文档拼在一起实时计算。模型本身推理需要占多少资源就占多少资源,文档多了只会拉长推理时间。

生成回答

系统将高分文档、历史对话和当前问题拼接,构建成包含完整上下文信息的提示词。LLM 再基于其训练数据中的知识与逻辑,预测并生成自然语言回答。

显存/内存占用:吃资源重头,通常需要数GB到数十GB。此外,按道理上述几个模型都是挨个推理,推理完就会释放系统资源——一旦涉及并发,那会同时推理,会同时挤占系统算力!GGBOOM

相关链接

大模型GPU显存算力需求计算 | CHEGVA

备忘

Playwright MCP 专为 Claude Code 设计的基于 YAML 的 Playwright UI 自动化测试 - V2EX Browserwing

Footnotes

  1. 请见发文时间。

  2. 显存:怎么,在想我的事?

  3. Assistant竟是我自己?

  4. 示例文字来自使用知识库搭建智能客服机器人 - Dify Docs

  5. 除了Embedding Model和Reranker,还有Classification Model和Extraction Model有类似的功能。

  6. 本文仅针对文字环境。如果你的输入输出涉及图像、音频,需要找上述这些模型的多模态版。