简要回答
Tokenizer 负责文本↔token ID 转换。BPE 从字符级开始,反复合并语料中最频繁的相邻符号对,最终得到子词词表,能处理未登录词且词表可控。
标准回答
为什么需要子词
纯词级词表大、未登录词(OOV)多;纯字符级又会让序列过长、建模困难。子词(subword)在两者间折中:常见词整体成 token,罕见词拆成片段拼出,既控制词表规模又避免 OOV。
BPE 合并流程
- 初始化为字符级词表;
- 统计语料中相邻符号对的出现频率;
- 把最高频的相邻对合并成一个新符号,加入词表;
- 重复合并,直到词表达到目标大小。
实践要点
GPT 系列用 BPE(byte-level BPE 直接在字节上操作,天然无 OOV);SentencePiece 在原始字符流上学习、把空格也编码,便于多语言统一词表。Tokenizer 与模型权重绑定,换模型必须换对应 tokenizer。中文常被切成较多 token,影响计费与上下文占用。
常见误区
⚠️ 常见踩坑
别把 token 等同于「词」或「字」——英文里一个词可能是多个 token,中文一个汉字也常占 1~2 个 token,算 token 数不能按字数估。也别以为 BPE 是按语言学词根切分的,它纯按语料统计频率合并,切出的片段未必有语义。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📰 AI 资讯
🛠️ AI 工具
- vLLM
高吞吐 LLM 推理引擎,77,418+ stars。采用 PagedAttention 显存优化技术,吞吐量比 HuggingFace Transformers 高 24 倍,是生产环境部署大模型推理的首选方案,支持 OpenAI 兼容 API
- LangChain
最流行的 LLM 应用开发框架,137K+ stars。提供链式编排、RAG 检索增强生成、Agent 构建等核心能力,覆盖 Python 和 JavaScript 双语言生态,是构建 LLM 应用的基础设施
- Ollama
本地运行开源大语言模型的最简方案,支持 Llama、Qwen、DeepSeek 等主流模型,一键安装、自动下载模型、提供 OpenAI 兼容 API,是 AI 开发者本地部署的首选工具