模型按Token计费但分块库按字符操作,两者映射不固定(英文约4字符≈1Token,但代码、数字、稀有词偏差大),需用真实Token计数做成本预算。
模型和定价都以 token 为单位,但分块库通常以字符数为单位——两者并不能干净地一一对应。粗略的规则是英文 prose 大约每 4 个字符一个 token,但具体数值会因内容、代码和语言的不同而有所差异。
字符数会误导人,因为 600 个字符的分块并不等同于固定数量的 token。要精确地规划上下文和成本,你需要的是 token 数,而不是字符数。
下游所有重要的度量都是按 token 来的:模型能容纳的上下文窗口、embedding 成本、生成成本。但分块这一步通常基于字符操作,因为这是最容易做切分的方式。这种错位是一个静默的惊喜来源——你设了一个字符大小,但 token 层面的实际结果却和你想象的不同。
对于英文 prose,一个 token 大约是四个字符——所以约 600 个字符约等于 150 个 token,上下略有浮动。这是一个有用的经验法则,但在你恰恰关心的那些场景下就会失效。代码的分词方式与 prose 不同。数字、标点和生僻词会被切分成更多 token。其他语言与英文的比率完全不同。这条规则是起始估计,而非保证。
~4 个字符每 token——直到它不是。
上下文预算 — 如果你假设 600 个字符的 token 数比你以为的少,就可能溢出你规划的上下文窗口。
成本估算 — embedding 和生成都是按 token 定价的,所以基于字符的估算可能偏差很大。
检索调优 — "top-k = 5 个分块" 根据实际分块的 token 大小,意味着截然不同的 token 负载。
Free RAG Chunk Visualizer — 在浏览器中查看你的分块、token 计数和质量标志。免费试用。
精确的答案来自你模型使用的精确 tokenizer。但对于规划来说,一个好的 subword 估计——考虑词长、标点和数字,而不只是用字符除以四——与真实 tokenizer 的吻合程度足以支撑自信地做预算。关键是摆脱原始字符计数,这是最不准确的信号。
RAG Chunk Visualizer 为每个分块和整个文档估算 token,使用的是 subword 启发式方法而非粗暴的字符除法。你可以立即看到你的分块是否落在 token 目标附近,以及总量如何映射到 embedding 和生成成本——消除了字符到 token 的猜测。
更进一步:Full Edition 添加了 overlap 控制、成本模型预设、top-k 建模、策略比较、JSON 导出和向量数据库记录预览。获取 Full Edition。作为 RAG: The Complete Guide 的配套工具构建。
对于英文 prose,大约每四个字符一个 token——所以 600 个字符的分块约 150 个 token。但具体因内容而异:代码、数字、标点和其他语言的 tokenize 方式不同,所以字符数只是粗略估计。
因为模型和定价都按 token 运转,字符并不能干净地映射到 token。基于字符的估算可能让你的上下文预算超标或使成本估算偏差,特别是在代码、数字或非英文文本的情况下。
使用考虑词长、标点和数字的 subword 启发式方法,而不是用字符除以四。它与真实 tokenizer 的吻合程度足以支撑上下文和成本的预算规划。
作为一个经验法则,英文 prose 大约每 token 四个字符。它在代码(tokenize 密度高)、数字、标点和其他语言上会失效,所以把它当作起始估计,而非固定比率。
分块可视化工具可以使用 subword 启发式方法估算每个分块和整个文档的 token,展示分块是否落在 token 目标附近以及总量如何映射到成本——无需字符到 token 的猜测工作。