# 分词器 规范地址:https://xstavern.com/wiki/usage/prompts/tokenizer/ 原文:https://sillytaverncn.net/usage/prompts/tokenizer/ 核对日期:2026-11-03 授权迁移,保留作者、上游许可与出处。 分词器 # 分词器 分词器是一个将文本分解成更小单位(称为 token)的工具。这些 token 可以是单个词,甚至是词的部分,如前缀、后缀或标点符号。一个经验法则是,一个 token 通常对应 3~4 个字符的文本。 SillyTavern 提供了一个"最佳匹配"选项,根据使用的 API 提供商使用以下规则尝试匹配分词器。 Text Completion API **(可覆盖)**: 1. NovelAI Clio:NerdStash 分词器。 2. NovelAI Kayra:NerdStash v2 分词器。 3. Text Completion:API 分词器(如果支持)或 Llama 分词器。 4. KoboldAI Classic / AI Horde:Llama 分词器。 5. KoboldCpp:模型 API 分词器。 如果您得到不准确的结果或想要实验,您可以设置一个_覆盖分词器_供 SillyTavern 在向 AI 后端发送请求时使用: 1. 无。每个 token 估计为 ~3.3 个字符,向上取整到最接近的整数。**如果您的提示词在高上下文长度时被截断,请尝试这个。** 这种方法被 KoboldAI Lite 使用。 2. Llama 分词器。由 Llama 1/2 模型家族使用:Vicuna、Hermes、Airoboros 等。**如果您使用 Llama 1/2 模型,请选择这个。** 3. Llama 3 分词器。由 Llama 3/3.1 模型使用。**如果您使用 Llama 3/3.1 模型,请选择这个。** 4. NerdStash 分词器。由 NovelAI 的 Clio 模型使用。**如果您使用 Clio 模型,请选择这个。** 5. NerdStash v2 分词器。由 NovelAI 的 Kayra 模型使用。**如果您使用 Kayra 模型,请选择这个。** 6. Mistral V1 分词器。由较旧的 Mistral 模型家族及其微调版本使用。**如果您使用较旧的 Mistral 模型,请选择这个。** 7. Mistral Nemo 分词器。由 Mistral Nemo 模型家族及其微调版本使用。**如果您使用 Mistral Nemo/Pixtral 模型,请选择这个。** 8. Yi 分词器。由 Yi 模型使用。**如果您使用 Yi 模型,请选择这个。** 9. Gemma 分词器。由 Gemini/Gemma 模型使用。**如果您使用 Gemma 模型,请选择这个。** 10. DeepSeek 分词器。由 DeepSeek 模型(如 R1)使用。**如果您使用 DeepSeek 模型,请选择这个。** 11. API 分词器。直接从模型查询生成 API 以获取 token 计数。已知支持的后端:Text Generation WebUI (ooba)、koboldcpp、TabbyAPI、Aphrodite API。**如果您使用支持的后端,请选择这个。** Chat Completion API **(不可覆盖)**: 1. OpenAI:通过 [tiktoken](https://github.com/openai/tiktoken) 的模型相关分词器。 2. Claude:通过 [WebTokenizers](https://github.com/mlc-ai/tokenizers-cpp) 的模型相关分词器。 3. OpenRouter:对应模型的 Llama、Mistral、Gemma、Yi 分词器。 4. Google AI Studio:Gemma 分词器。 5. Scale API:GPT-4 分词器。 6. AI21 API:Jamba 分词器(需要一次性下载)。 7. Cohere API:Command-R 分词器(需要一次性下载)。 8. MistralAI API:Mistral V1 或 V3 分词器(需要一次性下载)。 9. DeepSeek API:DeepSeek 分词器(需要一次性下载)。 10. 后备分词器:GPT-3.5 turbo 分词器。 #### 额外分词器 由于大小原因,这些分词器不包含在默认安装中。首次使用时需要一次性下载。 1. Qwen2 分词器。 2. Command-R 分词器。由 Chat Completion 中的 Cohere 源使用。 3. Mistral V3 (Nemo) 分词器。由 Chat Completion 中的 MistralAI 源使用(Nemo 和 Pixtral 模型)。 4. DeepSeek (deepseek-chat) 分词器。由 Chat Completion 中的 DeepSeek 源使用。 如果您不想使用互联网下载,可以在 config.yaml 中选择退出:`enableDownloadableTokenizers`。设置为 `false` 以禁用下载。 您也可以从 [SillyTavern-Tokenizers](https://github.com/SillyTavern/SillyTavern-Tokenizers) 仓库手动下载分词器。下载 JSON 文件并将它们放在数据根目录的 `_cache` 子目录中,默认路径是 `./data/_cache`。如果 `_cache` 目录不存在,请创建它。之后,重启 SillyTavern 服务器以重新初始化分词器。 如果所需的分词器模型未缓存且下载被禁用,将使用后备分词器(Llama 3)进行计数。 ### Token 填充 !!! 适用于:Text Completion API SillyTavern 将始终为 Chat Completion 模型使用匹配的分词器,因此不需要 token 填充。 !!! 除非 SillyTavern 使用由运行模型的远程后端 API 提供的分词器,否则在提示词生成期间假定的所有 token 计数都是基于所选[分词器](#分词器)类型的估计。 由于在接近模型定义的最大值的上下文大小上,分词结果可能不准确,提示词的某些部分可能会被修剪或删除,这可能会对角色定义的连贯性产生负面影响。 为了防止这种情况,SillyTavern 将上下文大小的一部分分配为填充,以避免添加超过模型容纳能力的聊天项。如果您发现即使选择了最匹配的分词器,提示词的某些部分仍被截断,请调整填充以确保描述不被截断。 您可以输入负值进行反向填充,这允许分配超过设定的最大 token 数量。 许可与致谢:https://xstavern.com/wiki/licensecredits/