检索术语表

这一页解释站内其他地方反复出现的术语:检索与排序、模型格式与运行时、浏览器里的存储,以及每一步各自的失效方式。每条都会说明本站是怎么用这个词的,数值取本站实际发布的值。

最后更新:

这份术语表按你在本地跑检索工具时遇到它们的顺序,定义 21 个词:检索增强生成是什么、文本如何变成数字、两种检索结果怎么合并、哪些文件格式与浏览器接口在承担这件事,以及每一步会在哪里出错。定义描述的是本站如何用这些词,数值就是实际发布的值。

怎么读每一条

每条包含一句定义、它在实战中为什么重要,以及它最容易被和什么概念搞混。凡是本站特有的数字都直接给出而不是形容,所以这一页上你无法核对的描述很少。

按你遇到它们的顺序排列

RAG(检索增强生成)

RAG 是先从语料里找出相关段落、再基于这些段落生成回答的做法,而不是只靠模型权重作答。这里的检索是在你自己的文本块上做混合搜索,回答则由两步之一完成:抽取命中的句子,或用可选的本地小模型生成。它常和微调混淆:RAG 不给模型增加知识,它在提问时提供文本,所以删掉一份文档,它马上就不在回答范围里了。

embedding(向量嵌入)

向量嵌入是一串固定长度的数字,用来代表一段文本,语义相近的文本在空间里彼此靠近。本站用句向量模型为每个文本块算一个向量,所以一个问题能和几乎没有共同词汇的段落匹配上。它常和关键词匹配混淆:嵌入抓住的是语义,丢掉的是精确字符串,而精确字符串正是 BM25 负责补上的那一块。

chunking(分块)

分块是把解析后的文档切成既足够小、能被嵌入,又足够具体、能被引用的段落。本站按结构分块,约 700 字符、相邻块之间保留 15% 重叠,所以跨在边界上的一句话至少会在某一个块里完整出现。它常和按页切分混淆:页码在这里是引用的锚点,不是分块的单位。

向量维度

向量维度是每个文本块存多少个浮点数,由嵌入模型决定:bge-small-zh-v1.5 是 512 维,all-MiniLM-L6-v2 和 multilingual-e5-small 是 384 维。它决定了每个块的存储开销,也决定了两个模型能不能共用同一个索引。它常和精度混淆:维度多不代表更准,而且两个不同模型的向量无法互相比较,因为 512 维和 384 维之间不存在共享的坐标含义。

余弦相似度

余弦相似度衡量两个向量之间的夹角,忽略各自的长度,取值在 -1 到 1 之间,1 表示方向完全一致。这里的向量检索就用这个分数给文本块排序。它常被当成概率:分数 0.8 并不意味着有 80% 的概率是对的,而且不同嵌入模型的分数之间不可比。

BM25

BM25 是一种词法排序函数,按查询词在段落中出现的次数打分,出现得越稀有权重越高,再按段落长度做衰减。它是这里混合搜索的关键词一侧,专门救回精确字符串:错误码、零件编号、人名,以及从合同里复制过来的中文术语。它常和单纯数词频混淆,而稀有词的权重正是它的实质。

RRF(倒数排名融合)

RRF 用 1/(k + 名次) 给两条排序列表里的每一项打分再相加,这里的 k 固定为 60。它基于名次而不是分数,所以向量检索和 BM25 检索可以合并,而不必去校准两套本来就不可比的分数尺度。它常和原始分数加权平均混淆,后者需要归一化,一旦某一侧的分数量纲变化就会失准。

MMR(最大边际相关)

MMR 重新排序候选段落,在相关性与新鲜度之间取舍:每个新段落的得分等于 λ 乘它的相关度,减去 (1-λ) 乘它与已选段落的相似度,本站 λ 取 0.7。实际效果是交给阅读环节的 6 条覆盖文档的不同位置,而不是同一段话的 6 次复述。它常和去重混淆:近似重复的段落只是被往后排,并没有被删掉,调低 λ 才会主动引入差异更大的内容。

top-k

top-k 是交给回答环节的段落数量,这里 k=6。调大它等于同时给阅读环节更多材料和更多噪声,如果开了可选的生成模型,还会消耗上下文窗口。它常和候选池大小混淆:检索阶段打分的段落远多于最终通过 MMR 的那 6 条。

量化(q4 / q8)

量化是用更少的位来存模型权重,q8 是每个权重 8 位、q4 是 4 位,代价是一些精度,收益是下载体积和内存占用。这里的嵌入模型以 int8 的 ONNX 版本发布,可选的 Qwen2.5 生成模型是 4-bit 仅权重量化,正是它把体积压到 400MB–1.0GB 这个区间。它常和普通文件压缩混淆:量化之后的数值就是模型实际参与运算的数值,加载时并不会还原成完整精度。

ONNX

ONNX 是一种描述神经网络计算图的开放文件格式,本站下载的 .onnx 文件就是这种格式的嵌入模型和生成模型权重。它存在的意义是让在一个框架里训练出来的模型能被另一个运行时执行,包括跑在浏览器里的运行时。它常和运行时混淆:ONNX 描述计算图,onnxruntime-web 负责执行它。

WebGPU

WebGPU 是让网页使用图形处理器做通用计算的浏览器接口,在浏览器支持的情况下,本站在可选的生成模型上使用它。它重要是因为 GPU 路径和 CPU 路径的每秒 token 数差一个数量级。它常和 WebGL 混淆,而 WebGL 是面向图形的接口,并不为这类计算设计,这也是本站的回退路径是 CPU/WASM 而不是 WebGL 的原因。

WASM(WebAssembly)

WebAssembly 是浏览器能以接近原生速度执行的紧凑二进制指令格式,在没有 WebGPU 时,两个模型都走这条路。它跑在 CPU 上,所以通过它生成回答大约只有每秒 3 到 8 个 token。它常和 JavaScript 混淆:整个管线是 JavaScript,其中的张量运算以 WebAssembly 执行。

上下文窗口

上下文窗口是生成模型一次能关注的最大 token 数,涵盖指令、检索到的段落以及已经生成的回答。它决定了生成的回答一次能读多少材料,也是 top-k 不能简单调到二十的原因之一。它常和你的资料库大小混淆:进入窗口的只有被检索到的段落,绝不会是整个库。

幻觉

幻觉是模型说出的、给定材料并不支持的一句流畅陈述。这里的抽取式回答不可能编出没有检索到的文字,因为它返回的就是带引用的原文句子;可选的本地生成模型则有这个风险,所以生成的回答应当对照引用去读。它常和检索失败混淆:一条引用什么都对不上的回答是搜索出了问题,不是模型编造了事实。

抽取式回答

抽取式回答由检索到的段落本身拼成,每一句都能追溯到某份文档、某一页、某个文本块。它是本站的默认方式,因为它编不出内容,也不需要生成模型,这也是手机或没有 WebGPU 的笔记本上依然可用的原因。它常和高亮关键词混淆:句子是被挑选并组织成回答的,不只是被标记在原文里。

严格度

严格度决定回答环节可以做多少解释,它有两个状态:「仅依据文档」在检索内容里找不到答案时直接拒答而不猜;「允许推理」会组织可能超出原文的句子,并把这些句子标出来。回答不对时最先该动的就是它,因为它把「检索到了什么」和「推断出了什么」分开。它常和被当成质量分数混淆:它是你选的策略,不是对这一次回答的测量。

IndexedDB

IndexedDB 是浏览器里的数据库,本站用它按知识库和文档保存文本块及其向量。它让索引在刷新后仍然存在,也让清除站点数据时索引一起消失,同时是没有网络时工具仍能工作的原因。它常和本地存储或 Cookie 混淆:后两者容量小得多,也都不适合存放以 MB 计的向量。

Service Worker

Service Worker 是站点可以注册的后台脚本,用来拦截网络请求并从缓存中回应,这也是网页断网还能打开时的常见机制。本站的模型权重存在 Cache Storage 里,而 Service Worker 读的正是同一套缓存接口;本地问答在离线状态下仍能工作,是因为检索本来就不需要网络。它常和服务器混淆:除了缓存它没有别的存储,也不能自己回答问题,并且会随站点数据一起被删除。

OCR(光学字符识别)

OCR 是把文字从图像里读出来,也就是把扫描件或翻拍页面变成可搜索字符的那一步。它不在本工具里:没有文字层的扫描件 PDF 会被拒绝,而不是当成空文档索引进去,因为内置一个 OCR 模型会让下载体积多出几百 MB。它常和解析混淆:解析提取的是本来就存在的字符,OCR 需要先识别它们,而一次糟糕的 OCR 会产出能被检索到、并被错误引用的文本。

文本层

文本层是数字 PDF 里与页面图像并存的隐藏文本,选择、复制、搜索都靠它。它的有无直接决定一份 PDF 在这里能不能被导入。它常和「文件看起来正常」混淆:一份扫描版报告在屏幕上可以显示得非常清楚,却完全不含文本层,所以导入器去检查文件本身,而不是相信外观。

本站反复出现的数字

表 1 — 上面这些词汇背后的数值
数值出处
512 与 384向量维度:bge-small-zh-v1.5 为 512,all-MiniLM-L6-v2 与 multilingual-e5-small 为 384
约 700 字符,15% 重叠文本块大小,以及相邻块之间保留的重叠
k = 60RRF 公式里的常数,用来融合向量与 BM25 两套排序
λ = 0.7MMR 中相关性相对新鲜度的权重
6交给回答环节的 top-k 段落数
25MB / 23MB / 120MB三个嵌入模型的下载体积:bge-small-zh-v1.5、all-MiniLM-L6-v2、multilingual-e5-small
400MB–1.0GB可选的 Qwen2.5 0.5B–1.5B 生成模型,4-bit 版本
3–8 token/sCPU/WASM 路径上的生成速度
40 份 / 200MB / 20,000 块单库上限,手机端文件上限为 10 份
int8 与 4-bit嵌入模型与生成模型分别使用的量化方式

权威说明在别处

这一页写的是这些词在本站的用法,而不是提出者的定义。模型的参数量、量化方式与许可,以模型页面里列出的上游模型页为准;IndexedDB、Cache Storage、WebGPU、WebAssembly 这类浏览器接口,以平台文档为准。如果这里的某个数字与原始出处冲突,原始出处是对的、这一页是错的:写信到 guweiicy@gmail.com,我们会改正。

这里的定义是可操作的定义。 它们是为了让你能对着工具逐条核对而写,不是为了追求大而全。凡是你在界面上核不对的术语,都是我们没写清楚,值得来信指出。